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

  1. PROGRAM LEFTX;{$P,C-,M-,F-}
  2. {$I+}
  3. TYPE
  4. $STRING80 = STRING 80;
  5. $STRING0 = STRING 0;
  6. $STRING255 = STRING 255;
  7. BYTE = 0..255;
  8. VAR
  9. DATA:$STRING255;
  10. NUMBER:INTEGER;
  11.  
  12. function length(x:$string255):INTEGER;external;
  13. PROCEDURE setlength(var x:$string0; y : INTEGER); external;
  14.  
  15. {function to return the "y" left most characters of a string "x"
  16. where y is an integer value up to 255, and x is a string of maximum
  17. length 255 characters.  Corresponds to BASIC command LEFT$(A$,x)..
  18. requires pascal/z's external functions setlength and length.. }
  19.  
  20. FUNCTION LEFT(X:$STRING255; Y:BYTE):$STRING255;
  21.  
  22. {returns the first or left-most y characters in a string x}
  23.  
  24. LABEL 1;
  25. VAR
  26. LEN,I:INTEGER;
  27. L:$STRING255;
  28.  
  29. BEGIN
  30. SETLENGTH(L,0);
  31. LEN:=LENGTH(X);
  32.  
  33. IF (LEN = 0) OR (Y < 1) THEN GOTO 1;
  34. IF Y >= LEN THEN 
  35.     BEGIN
  36.     L:=X;
  37.     GOTO 1;
  38.     END;
  39.  
  40. {IF Y = 1 THEN 
  41.     BEGIN
  42.     L:=X[1];
  43.     GOTO 1;
  44.     END;}
  45.  
  46. FOR I:= 1 TO Y DO APPEND(L,X[I]);
  47.  
  48. 1:
  49. LEFT:=L;
  50. END;
  51.  
  52. BEGIN
  53. END.