Fórumok
turbo pascal 7.0
elkezdtem írni egy kvízjátékot.
a kérdéseket egymás után íratnám ki egy konstans string tömbbol.
a probléma, hogy a string értékének megadásakor vagy line too long hibát jelez, vagy ha több sorba írom akkor meg string constant exceeds line hibát jelez.
légyszi segítsetek, elore is thx ja és sorry a kisbetuk miatt de vnc-n keresztül nem tudok nagybetut írni, de ez már rgy másik topic témája lehetne.
Hozzászólások
GIYF
http://en.wikibooks.org/wiki/Pascal_Programming/Arrays
(Amugy meg ha most probalkozol programozas tanulasaval, akkor inkabb menj a Qt fele ... hasznosabb lesz szamodra)
köszi a segítséget, megnézem.qt-rol még nem sokat tudok...
Qt egy multiplatformos C++ fuggvenykonyvtar. Ha a kodot jol irod meg, akkor fordihato Linuxra, Windowsra, MacOS-ra es olyan hardvereken is futtathato, mint a Nokia N900 telefon.
Innen indulj:
http://doc.qt.nokia.com/4.6/how-to-learn-qt.html
Ez ugye a fooldal (amiota megvette a Trolltechet a Nokia)
http://qt.nokia.com/
Itt vannak examples forraskodok:
http://doc.qt.nokia.com/4.6/examples.html
Ha elakadsz, akkor kerdezz :)
(ui, bocs, hogy elteritettem ezt a threadet. Anno meg en is Turbo Pascallal inditottam a programozasi ismereteimet, de a Pascal nyelv mara mar kikopott IMHO. Erdemesedd inkabb C++ vagy Java fele orientalodni. De ez szigoruan maganvelemeny.)
A Pascal nagyon jo tanulonyelv, de az eredeti Turbos felallasban nagyon sok kotottseget tartalmaz (mar nem emlekszem miket, de anno rengeteget kellett szivni a 64KB-os korlatozasok, egavga.bgi meg ilyenek miatt) es nem nagyon tamogatja (sot egyaltalan nem) az objektumorientalt programozast.
turbo pascal 5.5-tol benne van az oop is (most a programozzunk tp nyelven konyv a 'bibliam' ) de tényleg elég sok dos specifikus meg egyéb megkötés van benne, az igaz.
igazából azért ezzel kezdtem mert ehhez van rendes könyvem...
köszi a linkeket, megnézem, hátha ez is van olyan 'szerethetö' mint a tp.
Megkovetem magam. Valamivel nagyon osszekevertem. Reg volt mar na ... :)
Úgy emlékszem, hogy max 255 karakter lehet a string hossza!
A string[0] tárolja a hosszt.
Használj inkább más típust. pl.: array of byte, vagy valami hasonló.
egy kérdés szövegét kellene eltárolni egy stringtömbbben.
a kiíratás ciklussal történne valahogy így
var
sorszam:byte;
stringtomb:ARRAY[1..14] OF STRING = ('jó hosszú szöveg ami legalább 200 karakter is van ha nem több na itt már string constant exceeds line volt francba'többi string jön még aztán');
FOR sorszam:=1 TO 14 DO
begin
WRITE(stringtomb[sorszam]);
sorszam:=sorszam+1;
end;
tehat fontos hogy szoveges valtozo vagy konstans legyen es tomb, probálkoztam már karaktertömbbel is, de ugyanebbe a hibába ütköztem.
Node, ha nem elég a 255 hossz a stringben, akkor kénytelen vagy dinamikus adatstruktúrát használni.
Alternatív megoldás, viccből azért leírom:
sTomb: array[1..n][1..4] of string;
Így már 1020 karaktered lehet 1 "stringben" ;)
hosszusztring = writeln(sTomb[1][1]+sTomb[1][2]+sTomb[1][3]+sTomb[1][4]);
disclaimer: csak elmélkedem, mert ~10 éve nem pascaloztam.
bocs közben átszrekesztettem, most már 1..14 lett
köszi, ezt kipróbálom.
Erre van a PChar.
Ugyan nem megoldás a problémádra, de talán jobb lenne fájlban tárolni az adatokat. A tipizált konstans remek dolog, mert a kódszegmenst használja, viszont ilyen szöveget hardkódolni a programba olyasmi, ami miatt én már max. kettest adnék.
A fenti példa meg furán fog működni, mert minden második sort fog csak kiírni :)
Valóban. A kódszegmensre van a 64ks szabály, nem? Vagy ez ár valami nagyon ósdi dolog?
Nagyon ósdi, valóban, de ha nem protected módban fut amit írtál, nincs más. 8086-os (?) örökség.
Hát már hogyne volna. Overlay unit. :) Ezzel szépen kihasználható legalább alsó 640K, nem csak adatnak, hanem kódnak is. De méginkább: valami 32/64 bites fordító. Mondjuk Free Pascal. :)
-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-
Huu ... bakker ... de regen volt mar az. Alig emlekszem.
Én szerettem a tp-t. A móriczkaprogramokhoz tökéletes volt, az ojjektumorientáltságot pedig jól tanulhatóan implementák benne.
Persze azóta eltelt pár év.
ja közben leesett, sorszám inkrementálás nem kell, for ciklus
minden iteráció során végrehajtja a succ(ciklusvaltozo) függvényt...
A Turbo Pascal editorában van ha jól emlékszem egy 138(?) vagy akkörüli karakterszám-limit, aminél több nem lehet egy sorban. Erre vonatkozik a string exceeds line hibaüzenet. Egyszerűen tördeld be a stringedet, és a darabokat add össze plusz jellel pl:
Ha rövidebb az összeadott stringed mint 255 karakter, akkor ennek működnie kell.
A "B" megoldás hogy elfelejted végre a Turbo Pascalt és legalább valami távolról 21. századira emlékeztető fordítót használsz, pl. Free Pascalt, ami tud wide (64k hosszú) és C-style zéró terminated stringeket is, amiben gyakorlatilag nincs hosszlimit.
-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-
összeadva sztem rövidebb csak a sor hossza miatt kiabál meg ha tördelem.
köszi a segítséget.
szerk; úgy néz ki hogy ez a tördelési mószer lesz a megoldás.
mégegyszer köszönöm a segítséget.
Esetleg a pchar, 7.0-ban vannak hozzá fgv.-ek is
Ez
Javaslom, hogy akár emberélet árán is, de szerezz Pirkó féle pascal könyvet.
Kezdhetek testőr után nézni? :)