home *** CD-ROM | disk | FTP | other *** search
- PROGRAM test;
-
- {Toto je testovaci program pro rozsirujici operace s retezci, ktere
- jsou obsazeny v jednotce Strings.
-
-
- ExtractForCount
-
- Deklarace
- target_str :=
- ExtractForCount(source_string, sizeof(target_string, start_pos)
-
- Popis:
- Tato funkce p⌐enese 'n' znakû ze zdrojového do cílového
- ⌐etêzce. P⌐ená¿ené znaky zaçínají ukazatelem start_pos ve
- zdrojovém ⌐etêzci. Po p⌐enesení jsou p⌐íslu¿né znaky vypu¿têny
- ze zdrojového ⌐etêzce.
-
- ExtractToChar
-
- Deklarace
- target_str :=
- ExtractToChar(source_str, sizeof(target_str), search_char)
-
- Popis:
- Tato funkce p⌐ená¿í znaky ze zdrojového do cílového
- ⌐etêzce aæ do té doby, dokud nenalezne znak stejnÿ s
- search_char. Jakmile je tento znak nalezen, p⌐enos skonçí,
- p⌐içemæ se search_char nep⌐ená¿í. P⌐enesené znaky jsou vypu¿têny
- ze zdrojového ⌐etêzce.
-
-
- Translate
-
- Deklarace
- Translate(str_to_translate, translate_table);
-
- Popis:
- Tato procedura ⌐etêzec str_to_translate podle 256-ti
- znakové p⌐ekladové tabulky translate_table. P⌐ekladová tabulka
- je 256 bytû dlouhá.
-
-
- PadLeft
-
- Deklarace
- PadLeft(string, sizeof(string), new_length, pad_char);
-
- Popis:
- Tato procedura vkládá znak pad_char na první pozici
- ⌐etêzce tak dlouho, dokud se jeho délka nerovná new_length nebo
- dokud ⌐etêzec nedosáhne své maximální moæné délky.
-
-
- PadRight
-
- Deklarace
- PadRight(string, sizeof(string), new_length, pad_char);
-
- Popis:
- Tato procedura vkládá znak pad_char na poslední pozici
- ⌐etêzce tak dlouho, dokud se jeho délka nerovná new_length nebo
- ⌐etêzec nedosáhne své maximální délky.
-
-
- Uppercase
-
- Deklarace
- target_str := Uppercase (source_str);
-
- Popis:
- Tato funkce konvertuje kaædÿ znak v rozsahu 'a..z' ze
- zdrojového ⌐etêzce source_string na p⌐íslu¿né velké písmeno a
- umístí ho do cílového ⌐etêzce target_string.
-
-
- StringOf
-
- Deklarace
- target_str := StringOf (pad_char, string_len);
-
- Popis:
- Tato funkce vytvo⌐í ⌐etêzec obsahující pad_char. }
-
-
-
- uses strings,
- crt;
-
-
-
- VAR
- str0 : STRING[20];
- v1 : STRING[20];
- str1 : STRING[20];
- v2 : STRING[20];
- str2 : STRING[20];
- v3 : STRING[20];
- str3 : STRING[20];
- v4 : STRING[20];
- table : STRING[255];
- i : integer;
-
-
-
- BEGIN
- v1 := '12345678901234567890';
- v2 := v1;
- v3 := v1;
- v4 := v1;
- str1 := 'this is STRING 1';
- str2 := '*';
- str3 := 'this is STRING 3';
- WRITELN;
- WRITELN('Testing PadLeft............');
- WRITELN;
- REPEAT
- padleft(str2,sizeof(str2),(length(str2)+1),' ');
- IF (v2 <> '12345678901234567890') OR
- (v3 <> '12345678901234567890') THEN BEGIN
- WRITELN('Error: boundary validation failed');
- HALT;
- END;
- WRITELN('l str2 = ',length(str2):2,' str2 = [',str2,']');
- UNTIL length(str2) = 20;
- DELAY(3000);
-
-
- WRITELN;
- WRITELN('Testing ExtractForCount.......');
- WRITELN;
- REPEAT
- str3 := ExtractForCount(str2,sizeof(str3),1);
- IF (v2 <> '12345678901234567890') OR
- (v3 <> '12345678901234567890') THEN BEGIN
- WRITELN('Error: boundary validation failed');
- HALT;
- END;
- IF (v3 <> '12345678901234567890') OR
- (v4 <> '12345678901234567890') THEN BEGIN
- WRITELN('Error: boundary validation failed');
- HALT;
- END;
- WRITE('l str3 = ',length(str3):2,' str3 = [',str3,']');
- WRITELN('l str2 = ',length(str2):2,' str2 = [',str2,']');
- UNTIL length(str2) = 0;
- DELAY(3000);
-
-
- WRITELN;
- WRITELN('Testing ExtractForCount.......');
- WRITELN;
- str2 := '*';
- padleft(str2,sizeof(str2),20,' ');
- str3 := ExtractForCount(str2,sizeof(str3),25);
- IF (v3 <> '12345678901234567890') OR
- (v4 <> '12345678901234567890') THEN BEGIN
- WRITELN('Error: boundary validation failed');
- HALT;
- END;
- WRITE('l str3 = ',length(str3):2,' str3 = [',str3,']');
- WRITELN('l str2 = ',length(str2):2,' str2 = [',str2,']');
- DELAY(3000);
-
-
- str2 := '1 2 3 4 5 6 7 8 9';
- WRITELN;
- WRITELN('Testing ExtractToChar.....');
- WRITELN;
- REPEAT
- str3 := ExtractToChar(str2,sizeof(str3),' ');
- delete(str2,1,1);
- IF (v3 <> '12345678901234567890') OR
- (v4 <> '12345678901234567890') THEN BEGIN
- WRITELN('Error: boundary validation failed');
- HALT;
- END;
- WRITE('l str3 = ',length(str3):2,' str3 = [',str3,']');
- WRITELN('l str2 = ',length(str2):2,' str2 = [',str2,']');
- UNTIL length(str3) = 0;
- DELAY(3000);
-
-
- str2 := '!';
- WRITELN;
- WRITELN('Testing PadRight......');
- WRITELN;
- REPEAT
- padright(str2,sizeof(str2),(length(str2)+1),'*');
- IF (v2 <> '12345678901234567890') OR
- (v3 <> '12345678901234567890') THEN BEGIN
- WRITELN('Error: boundary validation failed');
- HALT;
- END;
- WRITELN('l str2 = ',length(str2):2,' str2 = [',str2,']');
- UNTIL length(str2) = 15;
- DELAY(3000);
-
-
- FOR i := 0 to 255 DO
- table[i] := CHR(ORD(i));
- str0 := '..../....1..../....2';
- table[ORD('.')] := ' ';
- WRITELN;
- WRITELN('Testing Translate.....');
- WRITELN;
- WRITELN('Original STRING = ',str0);
- translate(str0, table);
- WRITELN('Translated STRING = ',str0);
- end.
-