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?
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
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.
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).
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.
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".
Aihe on jo aika vanha, joten et voi enää vastata siihen.