Einzelnen Beitrag anzeigen

Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#1

Wörter in einer Datei finden

  Alt 25. Sep 2006, 14:57
Hi DP!

Ich muss mich demnächst mit allerlei Dateien und deren Inhalt auseinandersetzen. Bestimmte Werte in vielen unterschiedlichen Dateien müssen angepasst werden und das recht häufig. Deshalb mein Entschluss mir dafür eine kleine Anwendung zu schreiben.

Ich habe eine Textdatei da steht allerlei Krimskrams drin - unter anderem auch eine Versionsnummer. Diese möchte ich gerne auslesen. Über die Foren Suchfunktion bin ich über TStringlist gestolpert. Viel gearbeitet habe ich damit leider nicht.

Folgenden Code habe ich mir gebastelt:

Delphi-Quellcode:
//gleich nach Programmstart prüfen!
procedure TFmain.FormCreate(Sender: TObject);
var
version: string;
s1:TStringlist;
i, zeilennr:integer;
Begin
 //Prüfen ob die Datei bla.txt existiert
 if FileExists('C:\bla.txt') then
 begin
    s1:=TStringList.Create;
    s1.LoadFromFile('C:\bla.txt');
    i:=0;

    try

    for zeilennr:=0 to s1.Count-1 do begin //Schleife über alle Zeilen, Zählung
                                            //beginnt mit 0, die Eigenschaft Count
                                            //enthält die Gesamtzahl der Zeilen

    if s1[zeilennr]='Version =then //wenn der Text "Version" gefunden wurde,
        ShowMessage('Version gefunden in Zeile '+IntToStr(zeilennr+1)); //Meldung ausgeben
    end;
  finally
    s1.free; //Objekt wieder freigeben
  end;
    l_blaver.Caption:='Bla Version: ';
 end
 else
 begin
   l_faustver.Caption:='bla nicht gefunden'
 end;


End;
Was ich gerne hätte:
-Also nach dem Programmstrart prüfen ob die Datei existiert (wenn nicht: motzen)
-datei in Stringlist laden
-Stringlist nach 'Version =' durchsuchen
-Text nach dem '=' in variable speichern und am ende ausgeben


Das Problem:
In der Datei bla.txt steht die Version in der 3. Zeile allerdings in dieser Form: '_____Version = 1.0'
D.h. mit ein paar Leerzeichen dazwischen. (das Forum eliminiert die Leerzeichen, deshalb hab ich den Unterstrich verwendet).

Wie stell ich denn das nun an, dass meine Routine trotzdem das Wort 'Version' findet und nach dem = Zeichen sich die 1.0 merken kann?
  Mit Zitat antworten Zitat