Èçó÷åíèå äàííûõ ñòðóêòóðèðîâàííîãî òèïà íà÷íåì ñî ñòðîêîâîãî òèïà äàííûõ (ñòðîê). Ñòðîêà – ýòî ïîñëåäîâàòåëüíîñòü ñèìâîëîâ ASCII. Ïðè èñïîëüçîâàíèè â âûðàæåíèÿõ ñòðîêà çàêëþ÷àåòñÿ â àïîñòðîôû. Êîëè÷åñòâî ñèìâîëîâ â ñòðîêå (äëèíà ñòðîêè) ìîæåò äèíàìè÷åñêè èçìåíÿòüñÿ â ïðåäåëàõ îò 0 äî 255. Äëÿ îïðåäåëåíèÿ äàííûõ ñòðîêîâîãî òèïà èñïîëüçóåòñÿ èäåíòèôèêàòîð string, çà êîòîðûì ñëåäóåò çàêëþ÷åííîå â êâàäðàòíûå ñêîáêè çíà÷åíèå ìàêñèìàëüíî äîïóñòèìîé äëèíû ñòðîêè äàííîãî òèïà. Åñëè ýòî çíà÷åíèå íå óêàçûâàåòñÿ, òî ïî óìîë÷àíèþ äëèíà ñòðîêè ïðèíèìàåòñÿ ðàâíîé 255 áàéòàì.
Ïåðåìåííóþ ñòðîêîâîãî òèïà ìîæíî îïðåäåëèòü ÷åðåç îïèñàíèå òèïà â ðàçäåëå îïðåäåëåíèÿ òèïîâ èëè íåïîñðåäñòâåííî â ðàçäåëå îïèñàíèÿ ïåðåìåííûõ. Ñòðîêîâûå äàííûå ìîãóò èñïîëüçîâàòüñÿ â ïðîãðàììå òàêæå â êà÷åñòâå êîíñòàíò. Íå äîïóñêàåòñÿ ïðèìåíåíèå ñòðîêîâûõ ïåðåìåííûõ â êà÷åñòâå ñåëåêòîðà â îïåðàòîðå case.
Îïðåäåëåíèå ñòðîêîâîãî òèïà óñòàíàâëèâàåò ìàêñèìàëüíîå êîëè÷åñòâî ñèìâîëîâ, êîòîðîå ìîæåò ñîäåðæàòü ñòðîêà. Ôîðìàò:
type
<èìÿ òèïà> = string [ìàêñèìàëüíàÿ äëèíà ñòðîêè];
var
<èäåíòèôèêàòîð....> : <èìÿ òèïà>:
Ïåðåìåííóþ òèïà string ìîæíî çàäàòü è áåç îïèñàíèÿ òèïà:
var èäåíòèôèêàòîð... .> : string [ìàêñèìàëüíàÿ äëèíà ñòðîêè];
Ïðèìåð:
const
Address = 'óë. Ïåðåâåðòêèíà. 25': {Ñòðîêîâàÿ êîíñòàíòà}
type
Flot = string[125];
var
Fstr : Flot: {Îïèñàíèå ñ çàäàíèåì òèïà}
Stl : string; {Ïî óìîë÷àíèþ äëèíà ñòðîêè = 255}
St2.St3 : string[50];
Nazv : string[280]; {Îøèáêà, äëèíà Nazv ïðåâûøàåò 255}
Ñòðîêà â ÿçûêå Turbo Pascal òðàêòóåòñÿ êàê öåïî÷êà ñèìâîëîâ. Äëÿ ñòðîêè èç N ñèìâîëîâ îòâîäèòñÿ N + 1 áàéò: N áàéò äëÿ õðàíåíèÿ ñèìâîëîâ ñòðîêè, à îäèí áàéò – äëÿ çíà÷åíèÿ òåêóùåé äëèíû ñòðîêè.
Ê ëþáîìó ñèìâîëó â ñòðîêå ìîæíî îáðàòèòüñÿ, óêàçàâ åãî íîìåð.  ñàìîì íà÷àëå ñòðîêè (ïîä íóëåâûì íîìåðîì) ðàñïîëîæåí áàéò, ñîäåðæàùèé çíà÷åíèå òåêóùåé äëèíû ñòðîêè.
Ïîýòîìó äëÿ îïðåäåëåíèÿ îáúåìà ïàìÿòè â áàéòàõ, òðåáóåìîé äëÿ ðàçìåùåíèÿ ñòðîêè, ê çíà÷åíèþ åå ìàêñèìàëüíîé äëèíû ïðèáàâëÿåòñÿ 1. Íàïðèìåð, äëÿ ðàçìåùåíèÿ â ïàìÿòè ïåðåìåííûõ Fstr, Stl, St2 òðåáóåòñÿ ñîîòâåòñòâåííî 126, 35 è 51 áàéò. Ðàññìîòðèì ñòðóêòóðó ðàçìåùåíèÿ ñòðîêè â ïàìÿòè íà ñëåäóþùåì ïðèìåðå. Ïóñòü Ì – ìàêñèìàëüíàÿ äëèíà ñòðîêè, L — òåêóùàÿ äëèíà, À — ÿ÷åéêà ïàìÿòè. Òîãäà:
À – ñîäåðæèò âåëè÷èíó òåêóùåé äëèíû;
À + 1 – ïåðâûé ñèìâîë ñòðîêè;
À + L – ïîñëåäíèé çíà÷àùèé ñèìâîë;
A + L + 1
... – íåçàíÿòûå ÿ÷åéêè ïàìÿòè
À + Ì
|