string auslesen und vergleichen

dynamofan

Mitglied
Hallo! Ich hab schon wieder ein Problem....

Und zwar möchte ich einen Script schreiben der aus der "list.txt" mir die EINE Zeile ausliest und dann diesen String vergleicht ob er in der "datei.txt" schon vorhanden ist.
Wenn Ja dann soll er 30sec warten und erneut prüfen.
Wenn Nein soll aus der "list.txt" die nächste Zeile ausgelesen werden und das ganze beginnt wieder von vorn. ;-)

Habs jetzt soweit das er mir alle Zeilen der "list.txt" in einer msgbox ausgibt. (siehe Script)

Visual Basic:
Option Explicit
Dim FSO, DateiInhalt, Zeile, Inhalt
Const Dateiname="plist.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(DateiName) Then
    ' Ja, also eine Verbindung herstellen
    Set DateiInhalt = FSO.OpenTextFile(Dateiname)
    Do Until DateiInhalt.atEndOfStream
        Zeile = DateiInhalt.ReadLine + vbcrlf
        Inhalt=Inhalt + Zeile + vbcrlf
    Loop
    DateiInhalt.Close
    WScript.Echo Inhalt
Else
    WScript.Echo "Datei " & Dateiname & " nicht gefunden!"
End If

Die Abfrage ob die Datei vorhanden ist oder nicht muss nicht zwingend rein.
Hoffe ihr könnt mir weiterhelfen wie ich den rest auch noch hinbekomme!

Mfg der dynamofan
 
Zuletzt bearbeitet:
Wo ist denn deine Frage?

Benutze bitte für Code die Tags [code=vb][/code] oder [code][/code] sowie ein paar Einrückungen Dein Code ist extrem unleserlich.
Grüsse bb
 
Wo ist denn deine Frage?

Benutze bitte für Code die Tags [code=vb][/code] oder [code][/code] sowie ein paar Einrückungen Dein Code ist extrem unleserlich.
Grüsse bb

Vielen Dank für den Hinweis! Habs gleich korrigiert.
Und meine Frage ist die, ob mir jemand bei der lösung meines Problems behilflich sein könnte.
Auch wenn jemand eine Teillösung weiß bitte posten.
z.B. würde mich schon weiterhelfen, wenn jemand weiß wie man eine Zeile aus einer .txt auslesen kann.


Mfg der dynamofan
 
Zuletzt bearbeitet:
Wenn du deine Textdatei mit .ReadAll einliest hast du alles in einer Variablen drin (ist zwar vielleicht etwas Speicherintensiv kommt aber auf die art der textdatei an)

mit

instr

Kannst du dann schauen ob dein gesuchte Variable im zu durchsuchenden Text drin ist.

Für die 30 sec. Wartezeit solltest du dir die Sleep api anschauen und die Loops mit ja und nein sollten eigentlich nicht dein Problem sein oder? Wie bereits oben angedeutet ich habe dein exactes Problem noch nicht erkannt

Gruss bb
 
Wenn du deine Textdatei mit .ReadAll einliest hast du alles in einer Variablen drin (ist zwar vielleicht etwas Speicherintensiv kommt aber auf die art der textdatei an)

mit

instr

Kannst du dann schauen ob dein gesuchte Variable im zu durchsuchenden Text drin ist.

Für die 30 sec. Wartezeit solltest du dir die Sleep api anschauen und die Loops mit ja und nein sollten eigentlich nicht dein Problem sein oder? Wie bereits oben angedeutet ich habe dein exactes Problem noch nicht erkannt

Gruss bb

OK danke schonmal.
Das sleep ist nicht das Problem, eher würde ich gern wissen wollen ob es einen befehl gibt der mir nur die erste zeile der txt einliest.


Mfg der dynamofan
 
Wenn du das
Visual Basic:
 DateiInhalt.ReadLine

nur einmal machst hast du nur die erste Zeile

Grüsse bb
 
OK danke schonmal.
Das sleep ist nicht das Problem, eher würde ich gern wissen wollen ob es einen befehl gibt der mir nur die erste zeile der txt einliest.


Mfg der dynamofan

So, habs jetz hinbekommen das er mir nur eine Zeile ausgibt.
Der nächste Schritt ist der vergleich des ausgelesen Strings mit dem String aus der plist.txt . ;-)
 
Wie oben schon beschrieben instr:
Visual Basic:
If InStr(1, ersteZeile, "suche", vbTextCompare) = 0 Then
        MsgBox ("nix da!")
    Else
        MsgBox ("gefunden")
    End If

Grüsse bb
 
OK nochmals Vielen Dank! Jetzt bin Ich wieder einen Schritt weiter.
Muss trotzdem nochmal fragen:rolleyes:: Wie sieht die genaue Syntax für den Sleep Befehl aus? Ich hab dir mal meine If Abfrage gepostet, vll. könntest du den Sleep Befehl im Else-Zweig einarbeiten.

Visual Basic:
If InStr(1, strInhalt, "backup1.cmd", vbTextCompare) = suche Then
        MsgBox ("nix da!")
    Else
      WScript Sleep 3000 'so funktionierts nicht
    End If

Mfg der dynamofan
 
Deklaration im allgemeinen Teil
Visual Basic:
Public Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

und dann nur der Aufruf
Visual Basic:
Sleep 30 000 ' da du ja 30 Sec warten wolltest

Grüsse bb
 

Neue Beiträge

Zurück