Avatar billede michael-schou Novice
28. juli 2008 - 13:56 Der er 6 kommentarer og
1 løsning

Hvordan gemmer man 2 edit felter til en TXT fil?

Hej.

Da det er et stykke tid siden jeg har programmeret i delphi, kan jeg ikke huske hvordan det er at man gemmer og loader 2 eller flere edit felter fra en txt fil så håber at der er nogen herinde der ved det.

Jeg har prøvet at lavet en GEM procedure men kan ikke få den til at virke :

Procedure Gem;
Var
OutFile : Text;
FileName : String;
Begin
FileName := 'C:\Temp\Test.txt';
AssignFile(FileName, OutFile);
ReWrite(OutFile);
WriteLn(Form1.Edit1.Text, OutFile);
WriteLn(Form1.Edit2.Text, OutFile);
CloseFile(OutFile);
end;

Håber at der er nogen der kan hjælpe.

Mvh.

Michael.
Avatar billede kroning Nybegynder
28. juli 2008 - 13:59 #1
Procedure Gem;
Var
OutFile : Text;
FileName : String;
Begin
FileName := 'C:\Temp\Test.txt';
AssignFile(OutFile, FileName);
ReWrite(OutFile);
WriteLn(OutFile, Form1.Edit1.Text);
WriteLn(OutFile, Form1.Edit2.Text);
CloseFile(OutFile);
end;
Avatar billede vallemanden Nybegynder
28. juli 2008 - 14:11 #2
eller

Procedure Gem;
Var
f1: System.text;
FileName, exptext : String;
Begin
FileName := 'C:\Temp\Test.txt';
system.assign(f1, FileName);
try
  system.Append(f);
except
  system.rewrite(f);
end;
exptext := Form1.Edit1.Text)+#13+#10;
exptext := exptext + Form1.Edit2.Text)+#13+#10;
System.Writeln(f1, exptext);
system.Close(f1);
end;
Avatar billede vallemanden Nybegynder
28. juli 2008 - 14:12 #3
ups

Procedure Gem;
Var
f1: System.text;
FileName, exptext : String;
Begin
FileName := 'C:\Temp\Test.txt';
system.assign(f1, FileName);
try
  system.Append(f1);
except
  system.rewrite(f1);
end;
exptext := Form1.Edit1.Text)+#13+#10;
exptext := exptext + Form1.Edit2.Text)+#13+#10;
System.Writeln(f1, exptext);
system.Close(f1);
end;
Avatar billede michael-schou Novice
28. juli 2008 - 14:29 #4
Smid et svar kroning :-)

Takker, det virker nu :-)
Avatar billede kroning Nybegynder
28. juli 2008 - 15:17 #5
fint
Avatar billede hrc Mester
28. juli 2008 - 15:35 #6
Kan ikke lade være med at blande mig. Jeg vil ikke negligere en god gammel tekstfil. De bruges jo stadig og findes bl.a. også i TStringList.SaveToFile()

... men jeg bruger streams for de er sjovere at nedarve i klasser. Desuden så har du bedre muligheder for at styre adgangen til filen. Desuden er det dødnemt at sende data andetsteds hen, eksempelvis til en socket. Jeg bruger altid TReader og TWriter til at læse og gemme værdierne.

De streamede varianter af Gem og Laes ser således ud:

procedure Gem(const aFilename, aText1, aText2: string);
var
  Writer: TWriter;
  FileStream: TFileStream;
begin
  FileStream := TFileStream.Create(aFilename,fmCreate);
  Writer := TWriter.Create(FileStream,1024);
  try
    Writer.WriteString(aText1);
    Writer.WriteString(aText2);
    Writer.FlushBuffer; // Glem aldrig den for så bliver alt ikke skrevet
  finally
    Writer.Free;
    FileStream.Free;
  end;
end;

procedure Gem(const aFilename: string; var aText1, aText2: string);
var
  Reader: TWriter;
  FileStream: TFileStream;
begin
  FileStream := TFileStream.Create(aFilename,fmOpenRead);
  Reader := TReader.Create(FileStream,1024);
  try
    aText1 := Reader.ReadString;
    aText2 := Reader.ReadString;
  finally
    Reader.Free;
    FileStream.Free;
  end;
end;

 

procedure Gem
Avatar billede michael-schou Novice
29. juli 2008 - 10:11 #7
Tak til alle for jeres indslag og kommentare :-)
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