Suche und Ersetzen bzw. Anzeigen VB6
Hallo ich habe folgendes Problem:
ich habe eine Textdatei mit etwa folgendem Inhalt
NETWORK
TITLE =Taktgeber
SET ;
U "M200.0"; Takt Periode 0,1 sec
FP "M202.0";Flankenmerker
= "M201.0"; Flanke 0,1 sec
U "M200.3";Takt Periode 0,5 sec
FP "M202.1"; Flankenmerker
= "M201.1";Flanke 0,5 sec
U "M200.5"; Takt Periode 1 sec
FP "M202.2";Flankenmerker
= "M201.2"; Flanke 1 sec
NETWORK
TITLE =Takt 6 sec
SET ;
U "M201.2";Flanke 1 sec
SPBN fl6t;
L "DB_Kommunikation OP".Taktgeber.Wert_6_sec; //Sekunden zählen
Diese Textdatei möchte ich Zeilenweise in VB einlesen.
(soweit kein Problem)
Jetzt möcht ich aber wenn zwei Slash in einer Zeile hintereinander sind den Text zwischen den Doppel-Slash und dem am Zeilenende befindlichen CrLf auf einem Label oder in einer Textbox ausgeben und nach einem Click zur nächsten Zeile mit dem Doppel-Slash gelangen und wieder anzeigen.
Geht das - nach ASCII-Zeichen suchen?
Eventuell kleines Bespiel wäre echt super.
Vielen Dank schon mal im voraus.
Gruß Frank
## Ich mache keine rechtscheibfehler, ich bin euch nur paar reformen voraus...
ich habe eine Textdatei mit etwa folgendem Inhalt
NETWORK
TITLE =Taktgeber
SET ;
U "M200.0"; Takt Periode 0,1 sec
FP "M202.0";Flankenmerker
= "M201.0"; Flanke 0,1 sec
U "M200.3";Takt Periode 0,5 sec
FP "M202.1"; Flankenmerker
= "M201.1";Flanke 0,5 sec
U "M200.5"; Takt Periode 1 sec
FP "M202.2";Flankenmerker
= "M201.2"; Flanke 1 sec
NETWORK
TITLE =Takt 6 sec
SET ;
U "M201.2";Flanke 1 sec
SPBN fl6t;
L "DB_Kommunikation OP".Taktgeber.Wert_6_sec; //Sekunden zählen
Diese Textdatei möchte ich Zeilenweise in VB einlesen.
(soweit kein Problem)
Jetzt möcht ich aber wenn zwei Slash in einer Zeile hintereinander sind den Text zwischen den Doppel-Slash und dem am Zeilenende befindlichen CrLf auf einem Label oder in einer Textbox ausgeben und nach einem Click zur nächsten Zeile mit dem Doppel-Slash gelangen und wieder anzeigen.
Geht das - nach ASCII-Zeichen suchen?
Eventuell kleines Bespiel wäre echt super.
Vielen Dank schon mal im voraus.
Gruß Frank
## Ich mache keine rechtscheibfehler, ich bin euch nur paar reformen voraus...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 155126
Url: https://administrator.de/forum/suche-und-ersetzen-bzw-anzeigen-vb6-155126.html
Ausgedruckt am: 13.04.2025 um 14:04 Uhr
6 Kommentare
Neuester Kommentar
Moin H5N1,
sorry, bei der eigentlichen Frage kann ich nicht helfen - ich kenn mich sowohl mit VB wie auch mit 6 nur rudimentär aus.
Aber damit die geneigten Fachschroter erahnen können, wo du denn als Einziger an diesem Montag Doppel-Slashes meinst zu sehen,
deshalb mach ich die mal sichtbar mit ein paar Codetag-Restposten. Die liegen eh wie Blei in den Regalen hier
Dein Text sieht wie bereits gepostet so aus :
NETWORK
TITLE =Taktgeber
SET ;
U "M200.0"; Takt Periode 0,1 sec
FP "M202.0";Flankenmerker
= "M201.0"; Flanke 0,1 sec
U "M200.3";Takt Periode 0,5 sec
FP "M202.1"; Flankenmerker
= "M201.1";Flanke 0,5 sec
U "M200.5"; Takt Periode 1 sec
FP "M202.2";Flankenmerker
= "M201.2"; Flanke 1 sec
NETWORK
TITLE =Takt 6 sec
SET ;
U "M201.2";Flanke 1 sec
SPBN fl6t;
L "DB_Kommunikation OP".Taktgeber.Wert_6_sec; //Sekunden zählen
..sieht mit Code-Formatierung ohne Zeilennummern ( < code type=plain > ) so aus:
...und mit Codeformatierung mit Zeilennummern ( < code > )so aus:
Vielleicht kann die ja einer der VB-Bruzzler jetzt besser helfen.
Grüße
Biber
sorry, bei der eigentlichen Frage kann ich nicht helfen - ich kenn mich sowohl mit VB wie auch mit 6 nur rudimentär aus.
Aber damit die geneigten Fachschroter erahnen können, wo du denn als Einziger an diesem Montag Doppel-Slashes meinst zu sehen,
deshalb mach ich die mal sichtbar mit ein paar Codetag-Restposten. Die liegen eh wie Blei in den Regalen hier
Dein Text sieht wie bereits gepostet so aus :
NETWORK
TITLE =Taktgeber
SET ;
U "M200.0"; Takt Periode 0,1 sec
FP "M202.0";Flankenmerker
= "M201.0"; Flanke 0,1 sec
U "M200.3";Takt Periode 0,5 sec
FP "M202.1"; Flankenmerker
= "M201.1";Flanke 0,5 sec
U "M200.5"; Takt Periode 1 sec
FP "M202.2";Flankenmerker
= "M201.2"; Flanke 1 sec
NETWORK
TITLE =Takt 6 sec
SET ;
U "M201.2";Flanke 1 sec
SPBN fl6t;
L "DB_Kommunikation OP".Taktgeber.Wert_6_sec; //Sekunden zählen
..sieht mit Code-Formatierung ohne Zeilennummern ( < code type=plain > ) so aus:
NETWORK
TITLE =Taktgeber
SET ;
U "M200.0"; //Takt Periode 0,1 sec
FP "M202.0"; //Flankenmerker
= "M201.0"; //Flanke 0,1 sec
U "M200.3"; //Takt Periode 0,5 sec
FP "M202.1"; //Flankenmerker
= "M201.1"; //Flanke 0,5 sec
U "M200.5"; //Takt Periode 1 sec
FP "M202.2"; //Flankenmerker
= "M201.2"; //Flanke 1 sec
NETWORK
TITLE =Takt 6 sec
SET ;
U "M201.2"; //Flanke 1 sec
SPBN fl6t;
L "DB_Kommunikation OP".Taktgeber.Wert_6_sec; //Sekunden zählen
...und mit Codeformatierung mit Zeilennummern ( < code > )so aus:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
NETWORK
TITLE =Taktgeber
SET ;
U "M200.0"; //Takt Periode 0,1 sec
FP "M202.0"; //Flankenmerker
= "M201.0"; //Flanke 0,1 sec
U "M200.3"; //Takt Periode 0,5 sec
FP "M202.1"; //Flankenmerker
= "M201.1"; //Flanke 0,5 sec
U "M200.5"; //Takt Periode 1 sec
FP "M202.2"; //Flankenmerker
= "M201.2"; //Flanke 1 sec
NETWORK
TITLE =Takt 6 sec
SET ;
U "M201.2"; //Flanke 1 sec
SPBN fl6t;
L "DB_Kommunikation OP".Taktgeber.Wert_6_sec; //Sekunden zählen
Vielleicht kann die ja einer der VB-Bruzzler jetzt besser helfen.
Grüße
Biber
Hallo H5N1!
Der folgende VBS-Schnipsel sollte sich einigermaßen schmerzfrei nach VB6 (derartiges habe ich dann doch nicht mehr bei der Hand
) portieren lassen (und macht hoffentlich das, was Du erreichen wolltest
):
Zum Testen an der Kommandozeile mit
starten ...
Grüße
bastla
PS.: @Biber: Thanks
- auf Basis des formatierten Beispiels ließ sich dann doch etwas mit dem Ganzen anfangen ...
Der folgende VBS-Schnipsel sollte sich einigermaßen schmerzfrei nach VB6 (derartiges habe ich dann doch nicht mehr bei der Hand
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Set fso = CreateObject("Scripting.FileSystemObject")
Set File = fso.OpenTextFile("D:\Textdatei.txt")
Do Until File.AtEndOfStream
Line = File.ReadLine
Pos = InStrRev(Line, "//")
If Pos > 0 Then
InterestingPart = Mid(Line, Pos + 2)
WScript.Echo InterestingPart
End If
Loop
File.Close
cscript //nologo Schnipsel.vbs
Grüße
bastla
PS.: @Biber: Thanks
Zitat von @bastla:
Hallo H5N1!
Der folgende VBS-Schnipsel sollte sich einigermaßen schmerzfrei nach VB6 (derartiges habe ich dann doch nicht mehr bei der
Hand
) portieren lassen (und macht hoffentlich das, was Du erreichen wolltest
):
Zum Testen an der Kommandozeile mit
starten ...
Grüße
bastla
PS.: @Biber: Thanks
- auf Basis des formatierten Beispiels ließ sich dann doch etwas mit dem Ganzen anfangen ...
Nicht immer nur fertige Sachen suchen, sondern auch selbst mal Hirnschmalz einsetzen, deshalb mein VB 6 Code zur AnregungHallo H5N1!
Der folgende VBS-Schnipsel sollte sich einigermaßen schmerzfrei nach VB6 (derartiges habe ich dann doch nicht mehr bei der
Hand
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Set fso = CreateObject("Scripting.FileSystemObject")
> Set File = fso.OpenTextFile("D:\Textdatei.txt")
>
> Do Until File.AtEndOfStream
> Line = File.ReadLine
> Pos = InStrRev(Line, "//")
> If Pos > 0 Then
> InterestingPart = Mid(Line, Pos + 2)
> WScript.Echo InterestingPart
> End If
> Loop
> File.Close
>
cscript //nologo Schnipsel.vbs
>
Grüße
bastla
PS.: @Biber: Thanks
Public break As Boolean
Private Sub Command1_Click()
break = True
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Dim data As String 'Auffangvariable für den einzulesenden String definieren
Dim v() As String 'Splitstring dimensionieren ist ein Array ohne Dimensions Dimensions werden durch die Split-Fuunktion zugewiesen
Form1.Show
Open "c:\temp\test.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, data
v = Split(data, "//")
If UBound(v) > 0 Then
Text1.Text = v(1)
Do
DoEvents
Loop Until break = True
Debug.Print Text1.Text
break = False
End If
Loop
End
End Sub
Gruß
Nadm4you
Hallo Nadm4you!
"
... allerdings wäre
genauer als
BTW:
Grüße
bastla
P.S.: Damit Du nicht suchen musst
: -Formatierung ...
"
Split()
" ist auch schön ... ... allerdings wäre
Text1.Text = v(UBound(v))
Text1.Text = v(1)
Nicht immer nur fertige Sachen suchen, sondern auch selbst mal Hirnschmalz einsetzen
Wer ist denn der Adressat dieser Aufforderung?Grüße
bastla
P.S.: Damit Du nicht suchen musst
[OT, aber völlig]
Jetzt endlich hab ich Pointe verstanden... sozusagen scheibchenweise ....
Menno, fast eine vollen Tag später...*grmpfff*
[/OT, aber völlig]
Jetzt endlich hab ich Pointe verstanden... sozusagen scheibchenweise ....
Menno, fast eine vollen Tag später...*grmpfff*
[/OT, aber völlig]