Avatar billede d34c0n Praktikant
12. juni 2002 - 00:27 Der er 19 kommentarer og
2 løsninger

Indlæse en TXT-fil i en TEdit...

jeg har lavet en

var
f : textfile;

til at gemme min tedits tekst til en txt-fil, men hvordan får jeg indlæst teksten fra txt-filen ind i min tedit ?
Avatar billede doc404 Novice
12. juni 2002 - 01:42 #1
Går ud fra du har en TEdit pr. linie i din tekstfil

var
  s : string;
begin
  AssignFile(f,'c:\blabla.txt');
  Reset(f);
  ReadLn(f,s); Edit1.Text := s;
  ReadLn(f,s); Edit2.Text := s;
  CloseFile(f);
...
end;
Avatar billede zerohero Nybegynder
12. juni 2002 - 07:50 #2
i stedet for at bruge Textfile kan du også bruge Tstringlist:

//READ TO EDIT
var
  s : Tstringlist;
begin
  s := Tstringlist.create;
  s.loadfromfile('c:\blabla.txt');
  edit1.text := s.text;
  s.free;
end;

//READ TO RICHEDIT
var
  s : Tstringlist;
begin
  s := Tstringlist.create;
  s.loadfromfile('c:\blabla.txt');
  richedit1.lines := s;
  s.free;
end;


Held og Lykke fra

ZeroHero
Avatar billede d34c0n Praktikant
12. juni 2002 - 12:07 #3
doc404 laver du ikke et svar?
Avatar billede d34c0n Praktikant
12. juni 2002 - 12:34 #4
okay nu har jeg et problem!
nu kan jeg ikke huske hvordan jeg gemte min tedits tekst til den txt-fil?
jeg skal både læse og kunne skrive til den via tedit!!
Avatar billede d34c0n Praktikant
12. juni 2002 - 12:35 #5
forresten så skal jeg skrive til txt-filen flere stedder i mit project, f.eks. ved en buttonclick-event og en formclose-event..
Avatar billede d34c0n Praktikant
12. juni 2002 - 12:39 #6
altså!! den gider ikke gemme teksten mere, jeg ved ikke hvorfor!
Avatar billede d34c0n Praktikant
12. juni 2002 - 12:46 #7
Jeg har lavet:
OpenDialog1.Execute;
Edit1.Text := Opendialog1.FileName;

Og så har jeg lavet:
f : textfile;
begin
  assignfile(f, 'HL.txt');
  rewrite(f);
  writeln(f, edit1.text);
  closefile(f);

Men hvorfor gider den ikke gemme Edit1.text hvis man Opendialog1.Execute'er ?
Den gemmer kun hvis man selv skriver i Edit1!
Avatar billede zerohero Nybegynder
12. juni 2002 - 12:50 #8
prøv med...

assignfile(f, Opendialog1.FileName);

hvis det er det, du mener!
Avatar billede zerohero Nybegynder
12. juni 2002 - 12:52 #9
prøv at skrive hele stien til HL.txt!!!
Avatar billede hermandsen Juniormester
12. juni 2002 - 14:20 #10
For en god ordens skyld, så skriv lige if OpenDialog1.Execute then ... Hvis brugeren så ikke vælger noget får du ikke noget uventet. ;)
Avatar billede d34c0n Praktikant
12. juni 2002 - 17:35 #11
nej, OpenDialog1s FILENAME skal være den text i HL.txt!!!
Avatar billede d34c0n Praktikant
12. juni 2002 - 17:42 #12
her, kig lige på nedenstående:

procedure TForm1.Button5Click(Sender: TObject);

begin
if opendialog1.Execute then edit1.Text := opendialog1.FileName;

end;

...

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
f : textfile;
begin
  assignfile(f, 'HL.txt');
  rewrite(f);
  writeln(f, opendialog1.filename);
  closefile(f);
end;


HVORFOR gider den kun hvis man selv skriver i EDIT1 og ikke hvis man executer opendialog?!!!?
Avatar billede d34c0n Praktikant
12. juni 2002 - 17:43 #13
prøv derefter med:
procedure TForm1.Button5Click(Sender: TObject);

begin
if opendialog1.Execute then begin edit1.Text := opendialog1.FileName;
edit1.text := opendialog1.filename;
end;
end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
f : textfile;
begin
  assignfile(f, 'HL.txt');
  rewrite(f);
  writeln(f, edit1.text);
  closefile(f);
Avatar billede hermandsen Juniormester
12. juni 2002 - 18:13 #14
Ide:

private
  OpenDlgFileName: String;

procedure TForm1.Button5Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    OpenDlgFileName := OpenDialog1.FileName;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  F: TextFile;
begin
  AssignFile(F, 'HL.txt');
  Rewrite(F);
  Writeln(F, OpenDlgFileName);
  CloseFile(F);
end;
Avatar billede d34c0n Praktikant
12. juni 2002 - 18:32 #15
Okay jeg brugte så dette i stedet:

procedure TForm1.Button5Click(Sender: TObject);

begin
if OpenDialog1.Execute then begin
    OpenDlgFileName := OpenDialog1.FileName;
    Edit1.Text := OpenDlgFilename;
end;
end;



procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  F: TextFile;
begin
  AssignFile(F, 'HL.txt');
  Rewrite(F);
  Writeln(F, OpenDlgFileName);
  CloseFile(F);

end;

-------------------------------------------------

Til at læse HL.txt har jeg brugt:

var
  s : string;
  f : textfile;
begin

  AssignFile(f,'HL.txt');
  Reset(f);

  ReadLn(f,s); Edit1.Text := s;

  CloseFile(f);

Men der kommer intet i Edit1.. hvorfor??
Avatar billede hermandsen Juniormester
12. juni 2002 - 18:34 #16
Fordi der ikke står noget i din text-fil... :)

Hvad sker der når du åbner den i notepad eller noget?
Avatar billede d34c0n Praktikant
12. juni 2002 - 18:52 #17
Jamen dokumentet er tomt!
Fucking weird...
Avatar billede d34c0n Praktikant
12. juni 2002 - 18:54 #18
den skulle jo gemme edit1s tekst i dokumentet, men det gør den ikke!
Avatar billede hermandsen Juniormester
12. juni 2002 - 19:02 #19
Nu laver jeg lige noget fra bunden, og så prøver du det... Det SKAL virke!!!

procedure TForm1.Button1Click(Sender: TObject);
var
  S: String;
  F: TextFile;
begin
  S := Application.ExeName;
  AssignFile(F, ExtractFilePath(S) + 'HL.txt');
  Rewrite(F);
  WriteLn(F, S);
  CloseFile(F);
end;

Det SKAL virke!!! Ellers så prøv at bruge Write i stedet for Writeln...
Avatar billede d34c0n Praktikant
12. juni 2002 - 19:13 #20
Jeg vil jo have Edit1.text i TXT-dokumentet!
Avatar billede hermandsen Juniormester
12. juni 2002 - 19:39 #21
Jaaah, det var jo selvfølgelig et eksempel! :)

procedure TForm1.Button1Click(Sender: TObject);
var
  S: String;
  F: TextFile;
begin
  S := Edit1.Text;
  AssignFile(F, ExtractFilePath(S) + 'HL.txt');
  Rewrite(F);
  WriteLn(F, S);
  CloseFile(F);
end;

Vær'sko da! ;)
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