turbo pascal stringtömb

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

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.

Ú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.

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 :)

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:


'ez egy hosszu string elso resze' +
'masodik resze' +
'vegevanmar';

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?" -=-

Javaslom, hogy akár emberélet árán is, de szerezz Pirkó féle pascal könyvet.