Kezdőoldal » Számítástechnika » Programozás » Pascal: nem fix hosszúságú...

Pascal: nem fix hosszúságú string rekordban történő használatára van lehetőség?

Figyelt kérdés

Gondolok itt arra a problémára, hogy például egy címjegyzék-nyilvántartó esetén a név tárolására egy string 255 bájtot foglal, ha nincs bekorlátozva bizonyos hosszúságúra.

Ez esetben meg a kérdés felmerül, hogy ha a fix hossznál hosszabb nevet írnak be akkor az nem fér ki.

A mai tárkapacitás mellett persze nem gond az ilyen helyfoglalás, csak érdekelne, hogy más programnyelvek ezt miként oldják meg, illetve Free Pascal esetén lenne -e rá megoldás hogy az adathossznak megfelelő karakterszám legyen lefoglalva string esetén.



2016. dec. 11. 06:11
 1/3 anonim válasza:
String tipussal nincs mod ilyenre. Mutato tipussal, úgynevezett null-terminált stringgel lehet megvalositani, dinamikus változók, pointerek ismeretére van szükség hozzá, és Delphiben meg lehet csinálni, ott van beépített pString tius.
2016. dec. 11. 09:27
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:
Ez esetben honnan tudja az egész rekord beolvasásánál hogy milyen hosszúra lettt beírva az adott string a fájlba?
2016. dec. 11. 13:41
 3/3 anonim ***** válasza:

Freepascal-ban a string kétféle lehet: shortstring (ez a turbo pascalos stringnek felel meg) vagy ansistring (ez már dinamikusan foglalja a memóriát).


A második kérdésedre: nem tudja, ezt nem is lehet így kiírni és beolvasni. Ha egy rekordot írsz ki a memóriából fájlba, akkor az ansistring-ból csak a pointert írná ki, a pointer által meghatározott memóriacímtől kezdődő tartalmat nem, pedig maga a szöveg ott lenne.

2016. dec. 11. 14:04
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!