- •Структуры даных і праца з імі сродкамі мовы Pascal Парадкавыя тыпы
- •Мноствы
- •Тыпізаваныя канстанты тыпу «мноства»
- •Дзеянні над масівамі
- •Дзеянні над элементамі масіву
- •Пераменныя тыпу «масіў» са стартавым значэннем, ці тыпізаваныя канстанты-масівы
- •Канстанты з тыпам «масіў»
- •Камбінаваны тып «запісы»
- •Змяненне (прывядзенне) тыпаў і значэнняў
- •Радкі сімвалаў
- •Наданне значэння радкам
- •Радковыя выразы
- •Рэдагаванне радкоў
- •Пераўтварэнне радкоў
Рэдагаванне радкоў
1. Функцыя Copy(S, Start, N) капіруе з радка S падрадок даўжынёй N сімвалаў, пачынаючы з пазіцыі Start (параметры Start, N – тыпу Integer).
Калі значэнне Start большае за даўжыню радка S, тады вынікам будзе пусты радок. Калі значэнне N большае, чым колькасць сімвалаў ад Start да канца радка S, тады вернецца рэшта радка S ад пазіцыі Start да канца радка.
Выкарыстанне функцыі Copy:
Прыклады.
SCopy := Copy('ABC***123', 4, 3); {SCopy='***'}
SCopy := Copy('ABC', 4, 3); {SCopy=''}
SCopy := Copy('ABC***123', 4, 11); {SCopy='***123'}
2. Функцыя Pos(Subs, S)зварочвае нумар сімвала ў радку S, пачынаючы з якога ў радок S уключаецца падрадок Subs (тып выніку Pos – Byte). Калі S не ўтрымлівае ў сабе Subs, тады функцыя верне 0.
Выкарыстанне функцыі Pos:
Няхай: S:='abcdef'.
Pos('de', S) 4.
Pos('r', S) 0.
3. Працэдура Delete(S, Start, N) выдаляе N сімвалаў радка S, пачынаючы з пазіцыі Start.
S := 'РАДОК';
Delete(S, 2, 3); {S='РК'}
Калі Start = 0 ці перавышае даўжыню радка S, тады радок не зменіцца; калі N = 0, тады радок не зменіцца; калі N большае за рэшту радка, будзе выдалены падрадок ад Start і да канца радка S.
Выкарыстанне функцыі Delete:
Delete(S, 16, 255) – укарочваюцца радкі, даўжэйшыя за 16 сімвалаў.
4. Працэдура Insert(Subs, S, Start) устаўляе падрадок Subs у радок S, пачынаючы з пазіцыі Start.
Выкарыстанне функцыі Insert:
S:='Пачатак-канец';
Insert('сярэдзіна -', S, 9);
Атрымаем вынік: S = 'Пачатак-сярэдзіна-канец'.
Калі даўжыня радка S аказваецца пры ўстаўцы большай за аб’яўленую, тады радок аўтаматычна ўкарочваецца да аб’яўленай даўжыні S (абсякаецца правы канец).
5. Працэдура запаўнення FillChar(V, Len, C), дзе V – пераменная любога тыпу, Len (тып Word) – лік байтаў пераменнай V, якія будуць запоўнены значэннем C (C – тыпу Byte ці Char).
Выкарыстанне працэдуры FillChar:
VAR S: STRING;
...
FillChar(S[1], 80, ' ');
S[0]:=chr(80);
Заўвага. У такім выпадку абавязкова трэба сказаць, якой даўжыні стаў радок.
Пераўтварэнне радкоў
1. Працэдура Str(V, S) пераўтварае лікавае значэнне V у радок S. Пасля V можа запісвацца фармат у такім выглядзе:
V:m або V:m:n,
дзе n < m, m, n – даныя цэлага тыпу; m – шырыня поля для ліку; n – колькасць знакаў пасля дзесятковай кропкі.
Для цэлых лікаў задаюць толькі поле m. Калі ж для сапраўдных лікаў задаюць толькі m, тады лік запішацца ў экспаненцыяльнай форме.
Выкарыстанне працэдуры Str:
Str(6.66:8:2, S); {S=' 6.66'}
Str(6.66:8:0, S); {S=' 7'}
Заўвага. Калі m > 0, тады лік выраўноўваецца па правым краі, а калі m < 0, тады выраўноўванне адбываецца па левым краі, а лішкі як бы сціраюцца: Str(6.66:-8:2, S); {S='6.66'}.
VAR F, n : Integer;
S : STRING;
...
F:=-5; n:=1;
Str(-123.426:F:n,S); {S='-123.5'}
Str(6.66:8:2, S); {S=' 6.66'}
2. Працэдура Val(S,V,ErrorCode) пераўтварае значэнне радка S у велічыню цэлалікавага ці сапраўднага тыпу і запісвае ў лікавую пераменную V. Пераменная ErrorCode – тыпу Integer. Калі пераўтварэнне магчыма, тады пераменная ErrorCode роўная 0, у адваротным выпадку яна мае нумар сімвала ў радку S, на якім працэдура спынілася.
Выкарыстанне працэдуры Val:
VAR V:Longint;
S:='14.2E+2'; Val(S,V,C); {V=1420; C=0}
S:='14.2A+2'; Val(S,V,C); {V=?; C=5}