Entwickler-Ecke

Dateizugriff - Datei aendern und speichern


JiimmyC - Di 06.05.08 15:02
Titel: Datei aendern und speichern
Wie koennte man dies tun ohne es in ein Memo zu lesen?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Form1.Memo1.Lines.LoadFromFile('d:\test.txt');
source:=Form1.Memo1.Text;
position:=Pos(GesuchteLine,source);
position:=position + Length(GesuchteLine);
while source[position] <> ' ' do begin
      Delete(source,position,1);
end;
Insert('CHANGE',source,position);
Form1.Memo1.Text:= source;
Form1.Memo1.Lines.SaveToFile(d:\test.txt);


Ich habe ein paar Seiten durchgelesen doch vertehe ich vieles nicht. Ich komme aus der Win32 Api Welt und bin es gewohnt eine File in ein Buffer zu lesen und von dort aus alles zu machen. Der Umweg ueber das Memo funktioniert doch scheint es mir etwas doof. :-/


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 06.05.2008 um 15:10


Narses - Di 06.05.08 15:31
Titel: Re: Datei aendern und speichern
Moin!


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
  var
    SL: TStringList;
    Position: Integer;
begin
  SL := TStringList.Create;
  try
    SL.LoadFromFile('d:\test.txt');
    Position := SL.IndexOf(GesuchteZeile);
    if (i >= 0then begin
      ShowMessage(SL.Strings[Position]);
      // Dinge tun...
      SL.SaveToFile('d:\test.txt');
    end
    else
      ShowMessage('Zeile nicht gefunden!?');
  finally
    SL.Free;
  end;
cu
Narses


Yogu - Di 06.05.08 15:43
Titel: Re: Datei aendern und speichern

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
  var
    SL: TStringList;
    Position: Integer;
begin
  SL := TStringList.Create;
  try
    SL.LoadFromFile('d:\test.txt');
    Position := SL.IndexOf(GesuchteZeile);
    if (Position >= 0then begin
      ShowMessage(SL.Strings[Position]);
      // Dinge tun...
      SL.SaveToFile('d:\test.txt');
    end
    else
      ShowMessage('Zeile nicht gefunden!?');
  finally
    SL.Free;
  end;

;)


Narses - Di 06.05.08 15:53

:oops:


JiimmyC - Mi 07.05.08 17:45

Danke recht herzlich. Musste SL.IndexOfName benutzen das mir irgendwie limitiert erscheint. Doch ging es mit etwas muehe.