[Delphi] Probleem met textfile *

Pagina: 1
Acties:

  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
Ik ben bezig met het proggen van een app waarbij je 3 exefiles moet aangeven dmv een opendialog. Dit lukt allemaal. Ik wil deze waarden daarna opslaan in een textfile wat ook lukt, alleen heb ik een probleem als deze file nog niet bestaat. Als ik rewrite gebruik gooit hij deze file eerst leeg voor hem opnieuw aan te maken, en dit moet ik niet hebben. Hij moet (wat ook werkt) de tekstfile steeds opnieuw inlezen als het prog gestart wordt.

Heeft iemand een idee, ik heb op google zitten zoeken, maar hier vind ik alleen dat hij met rewrite een nieuw bestand aanmaakt.

Met try except werkt het ook niet, hij loopt dit evengoed odoor.

Help plx (geen script, alleen hintje ofzo).

My personal videoteek: -Clique-; -NMe- is een snol!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20:27

gorgi_19

Kruimeltjes zijn weer op :9

Ik mis een stukje van je titel :) Kan je via Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/icon_hand.gif aangeven wat je volledige titel moet zijn? :)

[ Voor 18% gewijzigd door gorgi_19 op 22-06-2004 16:26 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Kijk eens naar de append functie. ;)

* NMe moet eens leren lezen... :X

[ Voor 41% gewijzigd door NMe op 22-06-2004 16:43 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
Iemand die em wel weet?

My personal videoteek: -Clique-; -NMe- is een snol!


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Ik snap geen bal van je vraag :) Geef eens wat code hoe je die file nu schrijft, dan zien we wel wat er al of niet aan klopt.

Professionele website nodig?


  • SysRq
  • Registratie: December 2001
  • Laatst online: 24-05 16:04
Kun je niet dmv een TStringlist een .loadfromfile en savetofile doen? Wel controleren of het bestand bestaat natuurlijk... :)

-


  • Elissen
  • Registratie: Januari 2000
  • Laatst online: 12-03 16:55
code:
1
2
3
4
if FileExists(OpenDialog1.Filename) then
    Reset(F)
else
    Rewrite(F);


Dit iets?

  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
SysRq schreef op 22 juni 2004 @ 16:48:
Kun je niet dmv een TStringlist een .loadfromfile en savetofile doen? Wel controleren of het bestand bestaat natuurlijk... :)
Het gaat juist om het controleren of het bestand bestaat...

Wat ik nu heb:
Delphi:
1
2
3
4
5
6
7
8
9
10
procedure TForm1.FormCreate(Sender: TObject);
var i: integer;
   regel: string;
begin
   assignfile(bestand, 'tibiarunner.cfg');
   reset(bestand);
   readln(bestand, regel);
   edtTibia.Text := regel;
   readln(bestand, regel);
   en verdere readln's

[ Voor 4% gewijzigd door gorgi_19 op 22-06-2004 16:51 ]

My personal videoteek: -Clique-; -NMe- is een snol!


  • Leon T
  • Registratie: Juni 2001
  • Niet online

Leon T

Ni!

Wat grappig :)
Gisteren delphi tentamen gehad en jouw vraag kwam daar ook in terug.

Mijn oplossing:

assignfile(textfile, bestandje.txt);
if not (fileexists(filenaam)) then
rewrite(textfile); //maak een nieuwe file
append(textfile);
writeln(textfile, 'blaaaaaat enzo');
//hier kan je dus jouw code neerzetten
closefile(textfile;

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Tweakertje schreef op 22 juni 2004 @ 16:51:
Wat grappig :)
Gisteren delphi tentamen gehad en jouw vraag kwam daar ook in terug.

Mijn oplossing:

Delphi:
1
2
3
4
5
6
7
assignfile(textfile, bestandje.txt);
if not (fileexists(filenaam)) then
  rewrite(textfile); //maak een nieuwe file
append(textfile);
writeln(textfile, 'blaaaaaat enzo');
//hier kan je dus jouw code neerzetten
closefile(textfile);
Die append hoeft dus niet meer he? ;)
Delphi:
1
2
3
4
5
6
7
8
assignfile(textfile, bestandje.txt);
if not (fileexists(filenaam)) then
  rewrite(textfile); //maak een nieuwe file
else
  append(textfile);
writeln(textfile, 'blaaaaaat enzo');
//hier kan je dus jouw code neerzetten
closefile(textfile);

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
Ik haal em niet uit een opendialog, maar die filexsists kan ik wel gebruiken:


Delphi:
1
2
3
4
5
6
7
   if fileexists('tibiarunner.cfg') then
      begin
         reset(bestand);
         readln's enzo
      end
   else
      rewrite(bestand);


THX!!!

[ Voor 10% gewijzigd door Kayshin op 22-06-2004 17:12 ]

My personal videoteek: -Clique-; -NMe- is een snol!


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Hmm blijkbaar ben ik gek idd :) Volgende keer aub iets duidelijker vraag ;)

[ Voor 90% gewijzigd door curry684 op 22-06-2004 17:00 ]

Professionele website nodig?


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
Hoe doe je btw die code hier formatten?

My personal videoteek: -Clique-; -NMe- is een snol!


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Professionele website nodig?


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Waarom maak je eigenlijk niet gebruik van streams ipv die oude (deprecated/legacy) manieren? Het lijkt misschien alsof het niets uitmaakt, maar ga de TFileStream maar es gewoon gebruiken, en gij zult het Licht zien ;)

日本!🎌


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

Topicstarter
_Thanatos_ schreef op 23 juni 2004 @ 16:28:
Waarom maak je eigenlijk niet gebruik van streams ipv die oude (deprecated/legacy) manieren? Het lijkt misschien alsof het niets uitmaakt, maar ga de TFileStream maar es gewoon gebruiken, en gij zult het Licht zien ;)
Hint plz???

My personal videoteek: -Clique-; -NMe- is een snol!


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:52
De hint is toch al gegeven?
TFileStream.

https://fgheysels.github.io/


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Overigens wil ik nog graag even toevoegen dat dit:
Delphi:
1
assignfile(bestand, 'tibiarunner.cfg');
niet de juiste manier is om een bestand aan te spreken. Je gaat er namelijk van uit dat je applicatie naar de juiste map wijst. Wanneer er echter een snelkoppeling gebruikt wordt voor het starten, en de 'Starten in' wordt niet goed ingesteld, wordt er naar de verkeerde directory verwezen. Dit is ook het geval wanneer je applicatie de directory wijzigt, bijvoorbeeld door een OpenDialog.

Kijk eens naar de functie ExtractFilePath in combinatie met application.exename

[ Voor 12% gewijzigd door OZ-Gump op 24-06-2004 10:30 ]

My personal website


  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

NMe84 schreef op 22 juni 2004 @ 16:55:
[...]

Die append hoeft dus niet meer he? ;)
Delphi:
1
2
3
4
5
6
7
8
assignfile(textfile, bestandje.txt);
if not (fileexists(filenaam)) then
  rewrite(textfile); //maak een nieuwe file
else
  append(textfile);
writeln(textfile, 'blaaaaaat enzo');
//hier kan je dus jouw code neerzetten
closefile(textfile);
Die ; achter de rewrite kun je dus niet zetten, omdat hij dan je if then else statement afsluit en je else dan geen effect meer heeft.

Dus het word dan:
Delphi:
1
2
3
4
5
6
7
8
assignfile(textfile, ExtractFilePath(Application.ExeName) + 'bestandje.txt');
if not fileexists(filenaam) then
  rewrite(textfile) //maak een nieuwe file
else
  append(textfile);
writeln(textfile, 'blaaaaaat enzo');
//hier kan je dus jouw code neerzetten
closefile(textfile);

Ik weet alleen niet of extractFilePath de laatste \ meeneemt, dus daarbij moet je ff testen.

[ Voor 8% gewijzigd door eghie op 24-06-2004 19:17 ]


  • NaliXL
  • Registratie: Maart 2002
  • Laatst online: 01-05 19:30
De hint is toch al gegeven?
TFileStream.
Mijn persoonlijke voorkeur gaat uit naar FileOpen, FileRead en FileSeek als je alleen maar even 'n file wilt inlezen. 't is trouwens bedoeld als zomaar 'n suggestie....

Genoeg is meer dan veel, en tart den overvloed


  • Monga
  • Registratie: Mei 2002
  • Laatst online: 22:48
Nog goedkoper is om een TStringList te gebruiken met LoadFromFile/SaveToFile (mits het om max enkele tientallen regels gaat) :+

Verwijderd

Wat dacht van gewoon een inifile of het register te gebruiken ?
Pagina: 1