Avatar billede damon Nybegynder
23. august 2005 - 13:02 Der er 10 kommentarer

Skrive til filer

Jeg har lavet et program som skal læse en sti fra en flad fil og derefter ændre stien og skrive den nye sti ned til den samme flade fil

her kommer det mystiske.
Jeg kan sagtens læse filer fra current dir, ved følgende linier.

var
sWTFfile : TextFile;
text : string;

begin
Assignfile(sWTFfile, 'PF.dat');
Reset(sWTFfile);


while not Eof(sWTFfile) do
  begin
  ReadLn(sWTFfile, text);
  edit1.Text := text;
  end;
closefile(sWTFfile);

Her læses PF.dat fra current dir uden problemer.

når jeg så vil skrive den nye adresse ned i filen således

var
WTFfile : TextFile;

begin
AssignFile(WTFfile, 'PF.dat');
ReWrite(WTFfile);
WriteLn(WTFfile, edit1.text);
CloseFile(WTFfile);

Her opretter den en ny fil ved navenet PF.dat i roden af C:/ istedet for current dir?????

hvorfor hvorfor dit og hvorfor dat?
hjælp mig med dette inden jeg får spat.
Avatar billede damon Nybegynder
23. august 2005 - 13:47 #1
Det sjove er at hvis jeg udskrifter
WriteLn(WTFfile, edit1.text);
med
WriteLn(WTFfile, 'C:\\whatever\\PF.dat');
så gemmer den ikke på C:\\ men istedet i current dir i den PF.dat jeg ønsker den skal gemme i
Avatar billede borrisholt Novice
23. august 2005 - 17:44 #2
Hold op med at bruge TextFile. Det er 10 år siden den blev skiftet ud !

Dit eksempel giver ikke meget mening, med mindre du kun har en linje i din tekstfil, men lad nu det ligge.

Du skal bruge TStringList.

with TStringList.Create do
try
  LoadFormFile('pf.dat')
  Edit1.Text := Text;
finally
  Free;
end;

og Save :

with TStringList.Create do
try
  Text := Edit1.Text;
  SaveToFile('pf.dat')
finally
  Free:
end;

Jens B
Avatar billede damon Nybegynder
24. august 2005 - 09:59 #3
Ok det virker rigtigt godt bortset fra en ting,
Når jeg læser fra pf.dat så læser den 2 extra tegn hver gang, således at outputtet i edit1.text bliver c:/test||
Avatar billede borrisholt Novice
24. august 2005 - 10:45 #4
Mit eksempel giver dig nøjagtigt hvad du ville få hvis du ånnede din fil i notepad.
Avatar billede nop Nybegynder
12. september 2005 - 11:00 #5
Ja borrisholt hvis du havde brugt en memo så havde det lignet notepad, nu vil damon få linje skift som ||.
Avatar billede borrisholt Novice
12. september 2005 - 11:19 #6
nop>> Du får det til at lyde som et problem. Er der ikke bare at bruge mit eksempel, og så lave en StringReplace hhv. før og efter ?

Med andre ord er det hurtigere at løse problemet selv, end at hyle på eksperten !

Jens B
Avatar billede nop Nybegynder
12. september 2005 - 11:22 #7
Det var åbentbart et problem for damon siden han ikke selv bare gjorde dit og dat.
Avatar billede nop Nybegynder
12. september 2005 - 11:27 #8
borrisholt>>du af alle burde vide at her på eksperten (du har endda taget afstand og sagt fra...brug dog hjælpen) spørges der mest om text filer og string search/replace. Så det med at hyle her på eksperten (hvordan er det du taler om dine med-menesker?) er vist for din egen regning.
--nop
Avatar billede borrisholt Novice
12. september 2005 - 11:38 #9
nop>> Jeg kan se nu at jeg havde misforstået damon kommentar fra august. Der skulle jeg have givet han løsningen med StringReplace.

Den der med at hyle var mønted på dig, fordi jeg synes måske DU skulle give ham løsningen, og dermed konstruktivt havde deltaget i debatten.

Den med at hyle var en kommentar til din kommentar fra kl 11.

Jens B
Avatar billede nop Nybegynder
12. september 2005 - 11:40 #10
Fint.
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