procedure TForm1.ReadButtonClick(Sender: TObject); var WinIni: TIniFile; begin WinIni := TIniFile.Create(\'Win.Ini\'); with WinIni do begin TestStr := ReadString(\'Test\', \'TestStr\', \'Default text her\'); end; WinIni.Free; end;
procedure TForm1.WriteButtonClick(Sender: TObject); var WinIni: TIniFile; begin WinIni := TIniFile.Create(\'Win.Ini\'); with WinIni do begin WriteString(\'Test\', \'TestStr\', TestStr); end; WinIni.Free; end;
Man starter, selvfølgeligt, med AssignFile(f, fName);
For at tilføje til filen, åbner man den med "Append(f)";
For at slette alt i en fil, bruger man "Rewrite(f)";
De andre to er mere tricky. Man kan åbne filen med "Reset(f)" og derefter gennemløbe filen i en løkke "while not f.EOF do Readln(f, myString)". For hver linie kan man kalde "Pos(valueString, myString)" for at lede efter den ønskede værdi (valueString). Ved at ændre i den indlæste streng (myString) og skrive den tilbage til filen kan man så erstatte eller slette værdien.
Nedenstående er ikke en rigtig procedure, men en liste over de funktioner, man bruger til at læse fra, skrive til og tilføje til en fil.
procedure TForm.Button1Click(Sender: TObject); var fil : textfile; txtTemp, sti : String; begin txtTemp := 'Et eller andet.'; sti := 'c:\sti\navn.ext'; assignfile(fil, sti);
//LÆS FRA FIL reset(fil); //åbner filen for læsning readln(fil, txtTemp); //læs fra fil Flush(fil); //sikrer at der er skrevet til disk (ifald der skal opereres på filen straks herefter) closefile(fil);
//SKRIV TIL NY FIL Rewrite(fil); //åbner ny fil for skrivning Writeln(fil, txtTemp); //skriv til fil closefile(fil);
//TILFØJ TIL FIL Rewrite(fil); //åbner ny fil for skrivning Append(fil); //placerer fil pointer i enden af filen, klar til at TILFØJE noget til den Writeln(fil, txtTemp); //skriv til fil closefile(fil); end;
Det jeg skal lave, er et program der propper punktummer ind i en fil indtil der ikke er mere plads på hdd'en... Og jeg kan ikke finde ud af at indsætte det i skriver i et projekt... Så den den uploader / sender et funktionelt PROJEKT i delphi render med de 150 point... (den skal skrive dem så hurtigt som muligt...)
...den overskriver fandt jeg lige ud af ved at skrive noget andet som "txtTemp"
jeg bruger denne:
Rewrite(fil); //åbner ny fil for skrivning Append(fil); //placerer fil pointer i enden af filen, klar til at TILFØJE noget til den Writeln(fil, txtTemp); //skriv til fil closefile(fil);
//TILFØJ TIL FIL Rewrite(fil); //åbner ny fil for skrivning << drop denne linje den sletter den gamle fil og laver en ny.... ;)
men så vil de komme med fejl hvis filen ikke eksistere, men du kan bruge følge løsning.
//tilføj var f:TextFile; begin assignFile(F,'dit.filnavn'); if FileExists('dit.filnavn') then append(F) else ReWrite(F); writeln(F,'something'); CloseFile(F); end;
reset()= sætter fil pointeren i starten af filen. append()= sætter fil pointeren i sluningen af filen. ReWrite()= sætter fil pointeren til både start og slut. Det vil sige den laver en ny fil...
Nogen der ved om det er muligt at undlade at skrive en direkte sti til filen i assignFile? Jeg havde håbet på at Delphi selv kunne finde ud af, at filen lå sammen med programmet hvis man skrev assignFile(F, 'fil.txt'); Men det virker kun, hvis jeg skriver den komplette sti. Absolutte sti. Feks: assignFile(F, 'C:\Dokumenter\Delphi\projekt\Filprogram\fil.txt'); Hvor C:\Dokumenter\Delphi\projekt\Filprogram\ er der hvor .pas m.m. ligger... Det jeg savner er en relativ sti.
Synes godt om
Ny brugerNybegynder
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.