aus textdatei auslesen teil II

pking

Gesperrt
Hallo

Ich hab bereits schonmal gefragt und schon OFT GENUG in dem Forum gesucht jedoch wurde ich nicht fündig und dafür reichen leider meine VB kentnisse nicht aus!

Und zwar:

Wenn ich eine textdatei öffne möchte ich nach einem gewissen Wort suchen "blub"
das Wort sieht z.B so aus:

hihieihreiblubfeiwfw darin befindet sich das Wort blub unter viele anderen Zeilen! jedoch möchte ich nur suchen ob das Wort blub vorhanden ist.
Wenn das Wort blub vorhanden ist dann soll er es in eine Textdatei schreiben mit der GANZEN zeile von anfang bis zum ende ich such schon echt lang nach sowas!

Ich weis ich muss jede Zeile einlesen aber wie geht sowas davon hab ich leider keine Ahnung wenn mir jemand so ein kleines programm basteln bzw. sowas wird doch oft gebraucht hier mal reinkopieren könnte!?


mfg
pking
 
Hallo, versuch´s mal hiermit:
Code:
Private Sub Command1_Click()
Dim Zeile As String
Dim Nr As Integer
Dim Nr2 As Integer

Nr = FreeFile

Open "D:\Test.txt" For Input As #Nr
    
  Nr2 = FreeFile
  
  While Not EOF(Nr)
    Line Input #Nr, Zeile
      If InStr(1, Zeile, "blub") Then
        Open "d:\Gefunden.txt" For Append As #Nr2
         Print #Nr2, Zeile
        Close #Nr2
      End If
  Wend
  
Close #Nr
 
Hi,

hab mir den Code mal zu Nutze gemacht, da ich soetwas ähnliches
brauche. Hab da allerdings noch ein kleines Problem und zwar
liest er mir immer nur die erste Zeile aus. Ich möchte aber
zum Beispiel auch die Zeile 2 oder 10 prüfen.Aber egal ob ich
bei If InStr(1, Zeile, "Test") Then ne 2 einfüge er prüft diese nicht ab.
Bin nicht so derVB Profi, vieleicht kann mir ja mal einer helfen, der sich
damit auskennt und mir sagen wo hier mein Fehler liegt.

Danke schonmal im voraus.

Hier mal der Code :

Private Sub Command1_Click()
Dim Zeile As String
Dim Nr As Integer


Nr = FreeFile

Open "C:\Test.txt" For Input As #Nr

Line Input #Nr, Zeile
If InStr(1, Zeile, "Test") Then
MsgBox "Hallo", , "Test"
End If

Close #Nr
End Sub
 
Dein Problem ist, du brauchst wie beim Obigen Code eine Schleife um deinen Line Input Befehl! Mit dem InStr hat das nix zu tun! Das obige beispiel ist gut, weil er die Schleife so lange durchführt bis du am Ende der Textdatei angelangt bist.
Versuchs mal mit der Schleife oben!
 
Hey danke für die prompte Antwort, dachte das hat was damit zu tun.

So hab jetz den neuen Code. Dieser funtzt auch einwandfrei. Nur eine
kleine Frage wäre da noch, ist es möglich mehrer Zeilen zu prüfen.
Ob zum Beispiel Test1 und Test2 vorhanden sind und erst dann die
MsgBox ausgegeben wird. Wenn ja welche Änderungen müsste ich
dann am Code vornehmen. Ich danke schonmal im voraus.

So hier mal der aktuelle Code :

Private Sub Command1_Click()
Dim Zeile As String
Dim Nr As Integer
Dim Nr2 As Integer

Nr = FreeFile

Open "C:\Test.txt" For Input As #Nr

Nr2 = FreeFile

While Not EOF(Nr)
Line Input #Nr, Zeile
If InStr(1, Zeile, "Test") Then
MsgBox "Isch do !", , "BOX"
End If
Wend

Close #Nr

End Sub
 
Dann müsstest du die Zeile

If InStr(1, Zeile, "Test") Then

durch

If InStr(1, Zeile, "Test1") and InStr(1, Zeile, "Test2") Then

ersetzen
 
Sorry, hat leider doch noch nicht ganz geklaptt. Er bring mir
zwar keinen Fehler, jedoch scheint er trotzdem nur eines
der Wörter zu prüfen.

Private Sub Command1_Click()
Dim Zeile As String
Dim Nr As Integer
Dim Nr2 As Integer

Nr = FreeFile

Open "C:\Test.txt" For Input As #Nr

Nr2 = FreeFile

While Not EOF(Nr)
Line Input #Nr, Zeile
If InStr(1, Zeile, "Test") And InStr(1, Zeile, "Test2") Then
MsgBox "Isch do !", , "BOX"
End If
Wend

Close #Nr

End Sub
 
Zuletzt bearbeitet:
Dann probiers mal statt so:

If InStr(1, Zeile, "Test") And InStr(1, Zeile, "Test2") Then

So:

If InStr(1, Zeile, "Test") > 0 And InStr(1, Zeile, "Test2") > 0 Then
 

Neue Beiträge

Zurück