Avatar billede mmfrandsen Nybegynder
30. august 2003 - 16:36 Der er 6 kommentarer og
1 løsning

Gemme til en StringList og videre til en text fil

jeg har en kode, der ser sådan her ud:

procedure TForm1.Button1Click(Sender: TObject);
var
str: string;
sl: TStringList;
begin
sl := TStringList.Create;
try
  sl.LoadFromFile('data\people.txt');
  str := sl[2400]; // linje 2401
  edit1.text := str;
finally
  sl.Free;
end;
end;

Så med andre ord loader linje 2401 fra people.txt ind i edit1. Men nu kommer mit spørgsmål: De ændringer jeg laver i edit1, hvordan gemmer jeg dem tilbage i people.txt?

På forhånd tak, MM
Avatar billede Slettet bruger
30. august 2003 - 16:40 #1
Man kan bruge SaveToFile:

procedure TForm1.Button2Click(Sender: TObject);
var
str: string;
sl: TStringList;
begin
sl := TStringList.Create;
try
  sl.LoadFromFile('data\people.txt');
  sl[2400] := edit1.text
  sl.SaveToFile('data\people.txt');
finally
  sl.Free;
end;
end;
Avatar billede Slettet bruger
30. august 2003 - 16:41 #2
Der mangler lige et ; efter sl[2400] := edit1.text :-)
Avatar billede mmfrandsen Nybegynder
30. august 2003 - 16:51 #3
Tak for det hurtige svar, men der er lige en lille ting jeg gerne vil have uddybet: Kan jeg flytte sl.SaveToFile over i en anden fil så jeg kan loade ved, at trykke på én knappe og gemme med en anden?

Jeg prøvede:
procedure TForm1.Button1Click(Sender: TObject);
var
str: string;
sl: TStringList;
begin
sl := TStringList.Create;
try
  sl.LoadFromFile('data\people.txt');
  sl[2400] := edit1.text;
finally
  sl.Free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
sl: TStringList;
begin
  sl.SaveToFile('data\people2.txt');

Men det duede ikke. Kan du forklare hvad jeg gør galt?
Avatar billede mmfrandsen Nybegynder
30. august 2003 - 16:51 #4
Sorry... Jeg mener ikke flytte den over i en anden fil, men flytte den over i en anden knap :)
Avatar billede Slettet bruger
30. august 2003 - 16:57 #5
Det er i en anden knap :-)..

Ellers virker det her måske:

procedure TForm1.Button1Click(Sender: TObject);
begin
  edit1.text := sl[2400];
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  sl[2400] := edit1.text;
  sl.SaveToFile('c:\people.txt');

end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
sl.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
sl := TStringList.Create;
sl.LoadFromFile('c:\people.txt');
end;
Avatar billede mmfrandsen Nybegynder
30. august 2003 - 17:09 #6
Ahh... Jeg misforstod dit første svar (det undrede mig også lidt hvorfor du pludselig kaldte den button2 i stedet for button1), men nu forstår jeg det, tak :)
Avatar billede Slettet bruger
30. august 2003 - 17:14 #7
:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester