home *** CD-ROM | disk | FTP | other *** search
- { ──────────────────────────────────────────────────────────────── }
- { TESTPROGRAMM SUCHROUTINEN STRINGS / ASTRINGS }
- { ──────────────────────────────────────────────────────────────── }
- { Baut einen (unsinnigen) PChar zusammen und sucht darin Worte }
- { mittels StrPos und StrSearch. }
- { Dabei wird auch demonstriert, wie auf normale Strings wie auf }
- { PChars zugegriffen werden kann. }
- { ──────────────────────────────────────────────────────────────── }
- { (c) 1992 by Aurora featuring M.J. Schwaiger }
- { ──────────────────────────────────────────────────────────────── }
- { History: }
- { Datum / Bearb. / Art }
- { 5. 5.1992 MS Implementierung. }
- { ──────────────────────────────────────────────────────────────── }
-
- PROGRAM Units06;
-
-
- USES
- AStrings,
- CRT;
-
- VAR
- Cnt : INTEGER;
- PC : PChar;
- Found : PChar;
-
-
- CONST
- Create1 : STRING = 'Stringanfang ';
- Create2 : STRING = 'Noch ''ne Änderung ... '#0;
- Create3 : STRING = 'Stringende'#0; { Nullbytes für }
- Search1 : STRING = 'Stringen'#0; { PChar-Kompatibilität }
- Search2 : STRING = 'StringEN'#0;
-
-
- BEGIN
- CLRSCR;
-
- WRITELN (MEMAVAIL);
-
- PC := Nil;
-
- PC := StrPasNew (Create1);
-
- FOR Cnt := 1 TO 3 DO
- StrCat (PC, @Create2 [1]);
- { Durch das #0 ein simulierter PChar }
-
- FOR Cnt := 1 TO 3 DO
- StrCat (PC, PC); { 2 ^ 3 = 8 - fache Länge }
-
- StrCat (PC, @Create3 [1]);
-
- FOR Cnt := 1 TO StrLen (PC) DO
- WRITE (StrGetChar (PC, Cnt));
-
- WRITELN (StrGetChar (PC, Cnt + 3000)); { Ungültig - mag er's ? }
-
- Found := StrPos (PC, @Search1 [1]); { Wird gefunden }
-
- IF Found <> Nil THEN
- BEGIN
- FOR Cnt := 1 TO StrLen (@Search1 [1]) DO
- WRITE (StrGetChar (Found, Cnt));
-
- WRITELN;
- END
- ELSE
- WRITELN ('Suchausdruck nicht gefunden !');
-
- Found := StrPos (PC, @Search2 [1]); { Wird nicht gefunden }
-
- IF Found <> Nil THEN
- BEGIN
- FOR Cnt := 1 TO StrLen (@Search2 [1]) DO
- WRITE (StrGetChar (Found, Cnt));
-
- WRITELN;
- END
- ELSE
- WRITELN ('Suchausdruck nicht gefunden !');
-
- Found := StrSearch (PC, @Search1 [1]); { Wird gefunden }
-
- IF Found <> Nil THEN
- BEGIN
- FOR Cnt := 1 TO StrLen (@Search1 [1]) DO
- WRITE (StrGetChar (Found, Cnt));
-
- WRITELN;
- END
- ELSE
- WRITELN ('Suchausdruck nicht gefunden !');
-
- Found := StrSearch (PC, @Search2 [1]); { Wird diesmal }
- { auch gefunden }
- IF Found <> Nil THEN
- BEGIN
- FOR Cnt := 1 TO StrLen (@Search2 [1]) DO
- WRITE (StrGetChar (Found, Cnt));
-
- WRITELN;
- END
- ELSE
- WRITELN ('Suchausdruck nicht gefunden !');
- StrDispose (PC);
-
- WRITELN;
-
- WRITELN (MEMAVAIL);
-
- WRITELN;
- WRITELN ('Weiter ...');
- READKEY;
- END. { PROGRAM Units06 }