Avatar billede deacon Nybegynder
12. marts 2002 - 14:08 Der er 26 kommentarer og
2 løsninger

????????????

Hvordan får man Delphi til at oprette et *.txt dokument ved FormCreate?
Den skal bare oprette et tomt *.txt dokument!
Avatar billede laffe Nybegynder
12. marts 2002 - 14:12 #1
Ikke forstået ?
Vil du oprette en .txt fil i OnForCreate Event'en ?
Avatar billede deacon Nybegynder
12. marts 2002 - 14:13 #2
Ja nemlig, og det kan ikke gøres ved en SaveToFile, da den bare skal oprette et tomt dokument!
Avatar billede morten_s Nybegynder
12. marts 2002 - 14:15 #3
Godt man ikke kan give negative point

var
  fil : File of SaveRec;

begin
  AssignFile(Fil, ExeStartUpPath + 'Heste.txt');
  Rewrite(Fil);
  Write(Fil,'Hesten er grøn');
  CloseFile(Fil);
end;
Avatar billede morten_s Nybegynder
12. marts 2002 - 14:15 #4
var
  fil : File of text;
Avatar billede deacon Nybegynder
12. marts 2002 - 14:43 #5
Den virker jo ikke!
Avatar billede jhc Nybegynder
12. marts 2002 - 14:54 #6
FileCreate(FileName)
Avatar billede jhc Nybegynder
12. marts 2002 - 14:55 #7
Ovenstående var ikke et svar pga. mangel
Avatar billede stoney Nybegynder
12. marts 2002 - 14:55 #8
morten_s>>

Er det ikke kun Borrisholt der må bruge "hest".

Jeg ville mene det burde koste 5-10 Ave Maria'er

:-)

Stoney
Avatar billede morten_s Nybegynder
12. marts 2002 - 17:12 #9
Prøv vedlagte

procedure TForm1.Button1Click(Sender: TObject);
var
  fil : File;
  ExeStartUpPath : String;

begin
  ExeStartUpPath := ExtractFilePath(Application.ExeName);
  AssignFile(Fil, ExeStartUpPath + 'Hunde.txt');
  Rewrite(Fil);
  CloseFile(Fil);
end;
Avatar billede morten_s Nybegynder
12. marts 2002 - 17:12 #10
det skulle gerne give en ton fil i det projekt som du starter i ved navn hunde
Avatar billede stone Forsker
12. marts 2002 - 17:53 #11
vil det ikke være en ide at den tjekkede, om filen existerede før den blev oprettet.
Avatar billede zerohero Nybegynder
12. marts 2002 - 18:13 #12
hvorfor ikke bare følgende...

procedure TForm1.FormCreate(Sender: TObject);
var
  t : tstringlist;
begin
  t := tstringlist.create;
  t.SaveToFile('c:\hej.txt');
end;

ZeroHero
Avatar billede morten_s Nybegynder
12. marts 2002 - 18:21 #13
stone> til 4 point kan der ikke checkes for om filen eksistere det koster ekstra *GGG*
Avatar billede stone Forsker
12. marts 2002 - 18:49 #14
ok ....*gg*
Avatar billede deacon Nybegynder
12. marts 2002 - 19:06 #15
morten_s> jeg kan da godt lægge flere points ud, men da jeg syntes det lød som et let svar, gad jeg ikke afsætte flere! :)
Avatar billede deacon Nybegynder
12. marts 2002 - 19:20 #16
hmmm... hvad siger du til jeg opretter nyt spm. og så svarer du mig på hvordan den tjekker om den allerede eksisterer og det som stone sagde??
Avatar billede morten_s Nybegynder
12. marts 2002 - 19:22 #17
du skal få det gratis

procedure TForm1.Button1Click(Sender: TObject);
var
  fil : File;
  ExeStartUpPath : String;

begin
  ExeStartUpPath := ExtractFilePath(Application.ExeName);
  if not FileExists(ExeStartUpPath + 'Hunde.txt') then
  begin
    AssignFile(Fil, ExeStartUpPath + 'Hunde.txt');
    Rewrite(Fil);
    CloseFile(Fil);
  end;
end;
Avatar billede deacon Nybegynder
12. marts 2002 - 19:35 #18
det er faktisk meningen, at ved formcreate så skal den loade en txt fil hvis den eksisterer, og hvis ikke den eksisterer så skal den oprettes!
Avatar billede zerohero Nybegynder
12. marts 2002 - 23:31 #19
procedure TForm1.FormCreate(Sender: TObject);
var
  t : tstringlist;
begin
  t := tstringlist.create;
  if not fileexists('c:\hej.txt') then
  t.savetofile('c:\hej.txt')
  else
    t.loadfromfile('c:\hej.txt');
end;

Så kan det vist heller ikke gøres mere enkelt ;)
husk at frigøre den et passende sted i dit kode med... t.free;

ZeroHero
Avatar billede borrisholt Novice
13. marts 2002 - 08:02 #20
zerohero >> HVAD MED AT FRIGIVE DIT OBJEKT ?

her kommer lige zerohero's forslag uden mem leak :

procedure TForm1.FormCreate(Sender: TObject);
var
  t : tstringlist;
begin
  t := tstringlist.create;
  if not fileexists('c:\hej.txt') then
    t.savetofile('c:\hej.txt')
  else
    t.loadfromfile('c:\hej.txt');
  FreeAndNil(t);
end;
Avatar billede stone Forsker
13. marts 2002 - 09:26 #21
og hvis du vil have gemt din txt fil i det bibliotek som exefilen er,
sletter du bare c:\.
Avatar billede deacon Nybegynder
13. marts 2002 - 09:45 #22
Det ved jeg godt!

Hvad mener du med det, Borrisholt?
Avatar billede borrisholt Novice
13. marts 2002 - 10:08 #23
jeg mener hvis du har oprettet et objekt, i dette tilfælde en TStringList (aåtså t := TStringList.create) så skal du også selv frigive hukommelsen igen ....

Det gøres i Delphi 6ff med FreeAndNil(t) .. Og i tidligere versioner blot med
t.free;


Jens B
Avatar billede hermandsen Juniormester
13. marts 2002 - 12:37 #24
uses
  Windows;

procedure CreateNewFile(FileName: String);
begin
  CreateFile(PChar(FileName),0,0,nil, CREATE_NEW,0,0);
end;

Så får du bare en ny tom fil...
Avatar billede deacon Nybegynder
13. marts 2002 - 12:46 #25
Borrisholt> Du glemte begin efter else...
Avatar billede deacon Nybegynder
13. marts 2002 - 12:47 #26
Alligevel åbner den ikke den txt fil!
Avatar billede borrisholt Novice
13. marts 2002 - 13:42 #27
problemet er du ikke kan gemme en to TStringlist ..

Det her virker :
procedure TForm1.FormCreate(Sender: TObject);
var
  t : tstringlist;
begin
  t := tstringlist.create;
  t.Add('');
  if not fileexists('c:\hej.txt') then
    t.savetofile('c:\hej.txt')
  else
    t.loadfromfile('c:\hej.txt');
  t.free;
end;


Jens B
Avatar billede zerohero Nybegynder
13. marts 2002 - 14:58 #28
Hej Borrisholt - Jeg havde da også vist at t skulle frigøres via t.free :) ...

"Så kan det vist heller ikke gøres mere enkelt ;)
husk at frigøre den et passende sted i dit kode med... t.free;"

...

Noget helt andet er at jeg stadig har problemer med at hente mesh'en frem med 3DS Import Library. Jeg har brugt masser af tid på at gennem se alt kilde-kode for at finde det sted der skulle kunne gøre det! Så hvis du har tid, vil du så prøve at kigge på det?

(Du skal nok få en points for det)

med venlig hilsen

ZeroHero
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