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?