Hallo,
ich Lese eine Text Datei Zeilenweise aus, dabei würde ich aber gern einen Filter verwenden. Also wenn ich in ein Textfeld ein WOrt schreibe soll jede Zeile ausgegeben werden die dieses Wort enthält.
Bis jetzt habe ich immer die ersten 9 Stellen durchsucht. Die Zeilen haben aber unsterschiedlche länge.
mfg jonny
ff = FreeFile
n = 0
Open "d:\CTDI.txt" For Input As #ff
While Not EOF(ff)
Line Input #ff, textvar
If Left(textvar, 9) = Text1.Text Then
List1.Additem textvar
End If
n = n + 1
Wend
Close #ff
So muss es aussehen.
If InStr(LCase(textvar), LCase(Text1.Text)) Then
Danke.
Hallo Joe, gib mal noch die 1 an. Das bedeutet das er ab der 1 Stelle sucht. Desweiteren kannst du als 3 Parameter welcher vbTextcompare ist, angeben wie er suchen soll! ein a ist nicht gleich ein A !
Was ich noch brauche ist eine IF Anweisung die Prüft ob Text1.Text grösser als 2 Zeichen ist bevor er die Text Datei scannt.
damit er nicht schon beim eingeben von einem a oder au alle 1000 einträge durchklappert.
Danke dir mfg joe
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Jedem Buchstaben ist eine Zahl zugeordnet. Das a hat die Zahl 97, dagegen das A den wert 65! Die Grossbuchstaben sind immer 32 kleiner
Wenn du nun ein Vergleich startest und abfragst if a=A bekommst du False zurueckgeliefert. Das waere ja das selbe als wenn du abfragen würdest if 97=65 !
Bei der Instr Function kannst du als letzten Parameter die Vergleichsart festlegen.
Dazu hast du 3 Optionen mit folgender Bedeutung
vbBinaryCompare =Führt einen binären Vergleich durch.
vbDatabaseCompare=Nur Microsoft Access. Führt einen Vergleich durch, der auf Informationen in einer Datenbank basiert.
vbTextCompare=Führt einen Textvergleich durch.
Als Beipiel
instr(1,"Hallo","h",vbBinaryCompare)-\> Wird nicht gefunden da binaer verglichen wird
instr(1,"Hallo","h",vbTextCompare) -\> Wird gefunden da auf textbasis verglichen wird
Binaerer Vergleich. Es werden die Ordinalzahlen vom Zeichen verglichen. Und da dort nicht das a(97) A(65) ist wird nichts gefunden.
TextVergleich. Hierbei macht er keine Unterschiede. In dem Falle ist ein a=A
Was ich noch brauche ist eine IF Anweisung die Prüft ob
Text1.Text grösser als 2 Zeichen ist bevor er die Text Datei
scannt.
if len(text1.text)0 then ...
end if
damit er nicht schon beim eingeben von einem a oder au alle
1000 einträge durchklappert.
Danke dir mfg joe
Nichts zu danken
So muss es aussehen.
If InStr(LCase(textvar), LCase(Text1.Text)) Then
Du kannst natuerlich auch als Argumente die Daten alle in kleinbuchstaben wandeln
Hallo Alex,
Genau so hatte ich mir das forgestellt
Danke. Es läuft…
mfg Joe
Hallo Joe,
Wie meinst du das :?
ein a ist
nicht gleich ein A !
Jedem Buchstaben ist eine Zahl zugeordnet. Das a hat die Zahl
97, dagegen das A den wert 65! Die Grossbuchstaben sind immer
32 kleiner
Wenn du nun ein Vergleich startest und abfragst if a=A
bekommst du False zurueckgeliefert. Das waere ja das selbe als
wenn du abfragen würdest if 97=65 !
Bei der Instr Function kannst du als letzten Parameter die
Vergleichsart festlegen.
Dazu hast du 3 Optionen mit folgender Bedeutung
vbBinaryCompare =Führt einen binären Vergleich durch.
vbDatabaseCompare=Nur Microsoft Access. Führt einen Vergleich
durch, der auf Informationen in einer Datenbank basiert.
vbTextCompare=Führt einen Textvergleich durch.
Als Beipiel
instr(1,„Hallo“,„h“,vbBinaryCompare)-> Wird nicht gefunden
da binaer verglichen wird
instr(1,„Hallo“,„h“,vbTextCompare) -> Wird gefunden da auf
textbasis verglichen wird
Binaerer Vergleich. Es werden die Ordinalzahlen vom Zeichen
verglichen. Und da dort nicht das a(97) A(65) ist
wird nichts gefunden.
TextVergleich. Hierbei macht er keine Unterschiede. In dem
Falle ist ein a=A
Was ich noch brauche ist eine IF Anweisung die Prüft ob
Text1.Text grösser als 2 Zeichen ist bevor er die Text Datei
scannt.
if len(text1.text)0 then …
end if
damit er nicht schon beim eingeben von einem a oder au alle
1000 einträge durchklappert.
Danke dir mfg joe
Nichts zu danken
So muss es aussehen.
If InStr(LCase(textvar), LCase(Text1.Text)) Then
Du kannst natuerlich auch als Argumente die Daten alle in
kleinbuchstaben wandeln