ERLEDIGT
NEIN
NEIN
ANTWORTEN
12
12
ZUGRIFFE
1028
1028
EMPFEHLEN
-
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 :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
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
-
danke
nur noch end sub ;p
-
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!Der Weg ist das Ziel!
-
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
Der Weg ist das Ziel!
-
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 SubGeändert von schwendes (27.09.05 um 14:37 Uhr)
-
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 ThenDer Weg ist das Ziel!
-
Leider auch net...
-
Hallo, so wie Du das prüfst muss "Unterschiedlich : 0" und "Bytes : 1" in einer Zeile stehen. Das ist wahrscheinlich nicht der Fall und deshalb bekommst Du ein falsches Ergebnis.
Versuch´s mal so:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Dim Text As String Dim Nr As Integer Nr = FreeFile Open "D:\Test.txt" For Binary As #Nr Text = Space(LOF(Nr)) Get #Nr, , Text Close #Nr If InStr(1, Text, "Unterschiedlich : 0") And InStr(1, Text, "Bytes : 1") Then MsgBox "Sicherung OK !", , "BOX" Else MsgBox "Sicherung nicht OK", , "BOX" End If
-
Hi win,
danke für die schnelle Antwort. Hab mal das ganze auf deine Weise
angepasst, jedoch geht es leider immer nocht nicht. Das einzige
was er jetzt richtig macht ist das er die MSG Box "Sicherung nicht
ok" richtig ausgibt. Und du hast recht, die 2 Wörte stehen in der Textdatei
nicht in einer Zeile, sondern sind im Text verteilt.
Hoffe du hast vieleicht noch nen heißen Tip.
-
Hi win,
hab den Fehler gefunden. Die beiden Wörter standen im Text in
der falschen Reihenfolge. Jetzt geht es.
Danke nochmals
Ähnliche Themen
-
auslesen einer textdatei und in eine neue textdatei schreiben
Von prinzessin4444 im Forum C/C++Antworten: 3Letzter Beitrag: 10.12.08, 12:01 -
Nur ein teil einer Textdatei einlesen.
Von solae im Forum Visual Basic 6.0Antworten: 13Letzter Beitrag: 09.04.07, 22:32 -
Nicht nur Teil, sondern Gesamten Inhalt von Textdatei in Array lesen
Von -GS-Master im Forum PHPAntworten: 2Letzter Beitrag: 02.08.06, 15:51 -
Aus Textdatei nur einen Teil auslesen (nach Vorgabe)
Von Tharos im Forum PHPAntworten: 3Letzter Beitrag: 24.05.04, 18:43 -
Teil einer URL auslesen
Von low-group im Forum PHPAntworten: 4Letzter Beitrag: 20.02.04, 19:12





Zitieren
Login





