Karaktere-kate baten luzera fisikoa (luzera maximoa) mugatuta dago eta hori gainditzean ez da errorerik gertatzen ez exekuzio-denboran eta are gutxiago konpilazio-denboran. Muga gainditzean gainerako karaktereak ez dira gordetzen. Adibidez, hori gerta daiteke insert() prozedura aplikatzean:
{ Hasierako katearen itxura: - Izena eta abizena - Izena eta abizena letra larriz hasten dira - Adibidez: IbanIbabe Bukaerako katearen itxura: - Izena eta abizena - Izena eta abizena letra larriz hasten dira - Izena eta abizenaren artean 'txu' txikigarria - Adibidez: IbantxuIbabe } program txu_Txikigarria; uses crt; const iMAX = 15; { sarritan txikiegia gerta daiteke } type tsKatea = string[iMAX]; function fniAbizenaNonHastenDa(sIzenAbizena: tsKatea) : integer; var iKont: integer; begin iKont := 2; (* larria delako, ez konputatu izenaren lehen karakterea *) while sIzenAbizena[iKont] > 'Z' do iKont := iKont + 1; fniAbizenaNonHastenDa := iKont; end; var sIzenAbizena: tsKatea; iAbizenaNon: integer; begin clrscr; writeln('//////////////////////////////////////'); writeln; repeat write('Izena eta abizena eman (adibidez, IbanIbabe): '); readln(sIzenAbizena); if length(sIzenAbizena) > iMAX - length('txu') then writeln('Datu horientzat ez dago toki nahikorik memorian!!!'); until length(sIzenAbizena) <= iMAX - length('txu'); writeln; writeln(' Datua hauxe da: ///', sIzenAbizena, '///'); writeln('Luzera efektiboa: ///123456789012345///'); writeln; { Abizenaren lehen karakterea letra larria da } iAbizenaNon := fniAbizenaNonHastenDa(sIzenAbizena); insert('txu', sIzenAbizena, iAbizenaNon); writeln(' Emaitza hau da: ///', sIzenAbizena, '///'); writeln('Luzera efektiboa: ///123456789012345///'); writeln; writeln('//////////////////////////////////////'); readln; end.
iruzkinik ez:
Argitaratu iruzkina
Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.