home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
pascal
/
tplib21.zip
/
INSTALL.EXE
/
EXSTR.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-05-30
|
7KB
|
194 lines
(* Example program: STRINGS unit *)
PROGRAM EXSTR;
USES
STRINGS;
VAR
s,s1,s2,s3: STRING;
PROCEDURE ExOpt1;
BEGIN
WriteLn('Try entering different strings at the prompt and observe');
WriteLn('effect of each function. For this demonstration the width');
WriteLn('parameter passed to each function except TrimL and TrimR is');
WriteLn('always 8. Enter "Q" to exit.');
REPEAT
WriteLn;
Write('Enter string : ');
ReadLn(s);
IF UpperCase(s)='Q' THEN EXIT;
WriteLn;
WriteLn('Source string = "', s, '"');
WriteLn('TrimL (s) = "', TrimL(s),'"');
WriteLn('TrimR (s) = "', TrimR(s),'"');
WriteLn('PadL (s,8) = "', PadL(s,8),'"');
WriteLn('PadR (s,8) = "', PadR(s,8),'"');
WriteLn('TruncL(s,8) = "', TruncL(s,8),'"');
WriteLn('TruncR(s,8) = "', TruncR(s,8),'"');
WriteLn('JustL (s,8) = "', JustL(s,8),'"');
WriteLn('JustR (s,8) = "', JustR(s,8),'"');
WriteLn('JustC (s,8) = "', JustC(s,8),'"');
WriteLn;
UNTIL FALSE;
END; { ExOpt1 }
PROCEDURE ExOpt2;
BEGIN
WriteLn('Try entering different strings at the prompts and observe');
WriteLn('the effect of each function. Enter "Q" to exit.');
WriteLn;
REPEAT
WriteLn;
Write ('Enter string : ');
ReadLn(s1);
IF UpperCase(s1)='Q' THEN EXIT;
Write ('Enter target : ');
ReadLn(s2);
WriteLn;
WriteLn ('Source string = "', s1, '"');
WriteLn ('Target string = "', s2, '"');
WriteLn ('Precede(s1,s2) = "', Precede(s1,s2),'"');
WriteLn ('Follow(s1,s2) = "', Follow(s1,s2),'"');
WriteLn;
UNTIL FALSE;
END; { ExOpt2 }
PROCEDURE ExOpt3;
BEGIN
WriteLn('Break and Span emulate the functions of the same name found');
WriteLn('in the SNOBOL programming language. For this demonstration');
WriteLn('assume that a list of numbers must be parsed and broken');
WriteLn('down into separate elements. Enter a string of numbers, ');
WriteLn('separating them with a random assortment of any other');
WriteLn('characters, including spaces, commas, semi-colons, and even');
WriteLn('alphabetic characters. Press RETURN to see how each');
WriteLn('call to Break and Span changes the strings involved.');
WriteLn('Break is used to remove punctuation and Span is used to ');
WriteLn('extract the individual numbers.');
WriteLn;
Write('Enter string : ');
ReadLn(s);
REPEAT
WriteLn;
WriteLn ('Break (s, DecDigits) = "', Break (s, DecDigits), '"');
WriteLn ('Break has changed s to "', s, '"');
Write('Press RETURN to continue...');
ReadLn(s1);
WriteLn;
WriteLn ('Span (s, DecDigits) = "', Span (s, DecDigits), '"');
WriteLn ('Span has changed s to "', s, '"');
Write('Press RETURN to continue...');
ReadLn(s1);
UNTIL s='';
END; { ExOpt3 }
PROCEDURE ExOpt4;
BEGIN
WriteLn('At each prompt enter a string to work on, a search string,');
WriteLn('and the replacement string. Remove uses only the search');
WriteLn('string to strip all matching characters. Replace');
WriteLn('substitutes a character from the replacement string, repl.');
WriteLn('Enter string as "Q" to exit.');
REPEAT
WriteLn;
Write('Enter string : ');
ReadLn(s1);
IF UpperCase(s1)='Q' THEN EXIT;
Write ('Enter Srch : ');
ReadLn(s2);
Write('Enter Repl : ');
ReadLn(s3);
WriteLn;
WriteLn('Searching the string "', s1, '"');
WriteLn('for any of the characters in "', s2, '"');
WriteLn('Remove (s, Srch) = "', Remove(s1,s2), '"');
WriteLn('Replace (s, Srch, Repl) = "', Replace(s1,s2,s3), '"');
UNTIL FALSE;
END; { ExOpt4 }
PROCEDURE ExOpt5;
BEGIN
WriteLn('Assume that the following strings are passed as parameters:');
WriteLn;
WriteLn('path = ''C:\PATH\'' name = ''FILENAME'' extn = ''.EXT''');
WriteLn;
WriteLn('Try entering different path and filenames, sometimes omitting');
WriteLn('one or more sections. Enter "Q" to exit.');
REPEAT
WriteLn;
Write ('Enter string : ');
ReadLn(s1);
IF UpperCase(s1)='Q' THEN EXIT;
WriteLn;
WriteLn('Supplied string = "', s1, '"');
WriteLn('FileSpecDefault (s, path, name, extn) = "',
FileSpecDefault (s1, 'C:\PATH\', 'FILENAME', '.EXT'), '"');
UNTIL FALSE;
END; { ExOpt5 }
PROCEDURE ExOpt6;
BEGIN
WriteLn('Try entering different format control strings at each prompt.');
WriteLn('For each string you enter a sample of output for different');
WriteLn('values will be shown. Enter "Q" to exit.');
REPEAT
WriteLn;
Write('Enter format string : ');
ReadLn(s);
IF UpperCase(s)='Q' THEN EXIT;
WriteLn;
WriteLn('Input value of: Gives a result of:');
WriteLn(' 50 "', Format (50,s), '"');
WriteLn(' -35 "', Format (-35,s), '"');
WriteLn(' 2,490 "', Format (2490,s), '"');
WriteLn(' 47.26 "', Format (47.26,s), '"');
WriteLn(' -503.9621 "', Format (-503.9621,s), '"');
WriteLn(' 0 "', Format (0,s), '"');
UNTIL FALSE;
END; { ExOpt6 }
BEGIN { ExStr }
WriteLn('EXSTR - STRINGS UNIT EXAMPLE PROGRAM');
WriteLn;
REPEAT
WriteLn;
WriteLn('Select the features you wish to try:');
WriteLn;
WriteLn(' 1. Trim, pad, truncate, and justify.');
WriteLn(' 2. Precede & Follow.');
WriteLn(' 3. Break & Span.');
WriteLn(' 4. Replace, Remove.');
WriteLn(' 5. FileSpecDefault.');
WriteLn(' 6. Format');
WriteLn;
Write('Enter option or zero to quit : ');
ReadLn(s);
s:=TrimL(s);
WriteLn;
CASE s[1] OF
'1': ExOpt1;
'2': ExOpt2;
'3': ExOpt3;
'4': ExOpt4;
'5': ExOpt5;
'6': ExOpt6;
END;
UNTIL s[1]='0';
END.