home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol064 / mid.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1984-04-29  |  851 b   |  45 lines

  1. PROGRAM MIDX; {$P,C-,M-,F-}
  2. {$I+}
  3.  
  4. TYPE
  5. $STRING80=STRING 80;
  6. $STRING0 = STRING 0;
  7. $STRING255 = STRING 255;
  8. BYTE = 0..255;
  9. VAR
  10. DATA:$STRING255;
  11. START,STOP:INTEGER;
  12.  
  13.  
  14. FUNCTION LENGTH(X:$STRING255):INTEGER;EXTERNAL;
  15. PROCEDURE SETLENGTH(VAR X:$STRING0;Y:INTEGER);EXTERNAL;
  16.  
  17. {function to extract characters from within a string, starting at
  18. position "y" and ending at position "z"..
  19. corresponds to BASIC command  MID$(A$,X,Y) } 
  20.  
  21. FUNCTION MID(X:$STRING255; Y,Z:BYTE):$STRING255; 
  22.  
  23. {y = starting position and z = the ending position in string x}
  24.  
  25. LABEL 1;
  26. VAR
  27. LEN,I:INTEGER;
  28. MIDDLE:$STRING255;
  29.  
  30. BEGIN
  31. SETLENGTH(MIDDLE,0);
  32. LEN:=LENGTH(X);
  33.  
  34. IF (Y < 1) OR (Y > Z) OR ( Y > LEN) OR (LEN = 0) OR (Z > 255) THEN GOTO 1; 
  35. IF Z > LEN THEN Z:=LEN;
  36.  
  37. FOR I:= Y TO Z DO APPEND(MIDDLE,X[I]);
  38.  
  39. 1:
  40. MID:=MIDDLE;
  41. END;
  42.  
  43. BEGIN
  44. END.
  45.