Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Tiedostoon tallennus (Pascal)

ttuoppi [05.10.2004 08:51:09]

#

Olen tässä jonkin aikaa yrittänyt keksiä miten pystyy tallentamaan tiedostoon jne, mutta epäonnistuin surkeasti. Minusta se Pascal opaskin selittää tuon asian liian sekavasti, aletaan puhua heti ties mistä vaikkei edes kerrota ensin yksinketaisesti että miten onnistuu tekemään tiedoston, tallentamaan sille tekstiä, muokkaamaan sitä ja poistamaan sen.

Elikkäs, voisiko joku teistä, vaikka ihan esimerkin voimilla kertoa että miten onnistu tekemään esim. tiedoston A:\Ohjelmat\Tallennus.tmm, tallentamaan sille tekstiä (tai vaikka muuttujia) ja muokkaamaan sitä (ehkäpä vielä poistamaan). Kiitän jo etukäteen kaikkia jotka viitsivät valaista asiaa.

PS. Kääntäjäni antoi sählätessäni ilmoituksen "ERROR: indentifier not found ASSIGNFILE" Voiko tämä johtua jostain ohjelmassani olleesta virheestä vai eiko muka freepascal tunne käskyä assignfile?

Wukkopi [05.10.2004 09:18:28]

#

Tietääkseni Delphi käyttää pääsijaisesti pascal kieltä, joten

procedure Tform1.kokeilu;
var tiedosto: textfile;
begin
assignfile(tiedosto,'testitiedosto.txt');
rewrite(tiedosto);
writeln(tiedosto,'tämä tulee tiedostoon...');
closefile(tiedosto); //tämä viimeistelee tiedoston...
end;

Tämä on delphin esimerkki, että en ole varma toimiiko tämä pelkässä pascalissa. Mutta luulempa että tämä on suuntaa antavaa, jos ei muuta.

edit: niin tuo toimii varmaan myös näin jos en ole elänyt vääräuskoisena:

procedure kokeilu;
var tiedosto: textfile;
begin
assignfile(tiedosto,'testitiedosto.txt'); // ja sitten tällä määritetään tiedosto...
rewrite(tiedosto); //sanotaan että siihen kirjoitetaan jotain
writeln(tiedosto,'tämä tulee tiedostoon...'); // sitten kirjoitetaan
closefile(tiedosto); //tämä viimeistelee tiedoston...
end;

Jokseenkin nuin... en ole varma

Metabolix [05.10.2004 14:43:29]

#

Kyllä se on siinä aivan suoraan selitetty. Tässä muutama lainaus:

Ei se nyt niin mutkikas voi olla. Ja vaikka en ole FreePascalia käyttänyt, niin kyllä silläkin pitäisi varmaan Pascalin perustoimintojen kääntyä. Kokeile vaihtaa tilalle pelkkä Assign.

Newbielle huomauttaisin, että Delphi käyttää nimenomaan (Object) Pascalia eikä mitään muuta. Poikkeuksena mainittakoon, että Delphi hyväksyy myös C++ -tyylisen kommentin. Oikea kommentti merkitään { Tähän } tai (* tähän. *) Muuten meni kyllä ihan oikein.

User137 [09.10.2004 23:14:10]

#

Pitkään delphillä koodanneena käytän // ja { } kommentointeja :p

Mutta itse ongelmaan. Luulisin että uses-lauseesta puuttuu jotain jos AssignFile funktiota ei löydy. Se jokin voisi olla joku FileCtrl tai muu... Kannattaa varmaan perehtyä freepascalin ohjeisiin tai esimerkkeihin tiedostonkäsittelystä (jos niitä löytyy).

Metabolix [09.10.2004 23:35:45]

#

User137: AssignFile-funktio löytyy System-unitista, jonka jokainen kääntäjä sisällyttää automaattisesti jokaiseen ohjelmaan. Tämä on Pascal, ei Delphi, ja mitään FileCtrl-unittia ei varmasti ole Delphin ulkopuolella olemassakaan. Eikös se sisällä lähinnä jonkin TFileListBoxin ja muita sellaisia?

Näiden seikkojen ja tuon virheilmoituksen perusteella pitäisin todennäköisenä, että virhe löytyy koodista.

ttuoppi [10.10.2004 12:24:26]

#

Tuota noin, se vika selkisi jo aikoja sitten, unohdin vain kertoa siitä. Elikkäs "Assignfile" ei kelpaa mutta "Assign" kelpaa. Samoin "Closefile":n pitää olla "Close".

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta