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

  1. PROGRAM UCASE;{$P,C-,M-,F-}
  2. {$I+}
  3. TYPE
  4. $STRING0 = STRING 0;
  5. $STRING80 =STRING 80;
  6. $STRING255 = STRING 255;
  7.  
  8. VAR
  9. DATA:$STRING80;
  10. FUNCTION LENGTH(x:$STRING255):INTEGER;EXTERNAL;
  11. PROCEDURE SETLENGTH(VAR X:$STRING0; Y:INTEGER);EXTERNAL;
  12.  
  13. {function to convert a string of maximum length = 255 to all upper
  14. case letters, and return the converted string..corresponds to the BASIC
  15. command UCASE$.  
  16. requires pascal/z's external functions, length and setlength}
  17.  
  18. FUNCTION UCASE(X:$STRING255):$STRING255;
  19. LABEL 1;
  20. VAR
  21. I,LEN,ASCII:INTEGER;
  22. UCASEX:$STRING255;
  23.  
  24. BEGIN
  25. SETLENGTH(UCASEX,0);
  26. LEN:=LENGTH(X);
  27. IF (LEN = 0) OR (LEN > 255)  THEN GOTO 1;
  28.  
  29. FOR I:=1 TO LEN DO
  30.     
  31.     IF (ORD(X[I]) > 96) AND (ORD(X[I]) < 123) THEN 
  32.     APPEND(UCASEX,CHR(ORD(X[I])-32)) ELSE
  33.     APPEND(UCASEX,X[I]);
  34.  
  35. {97 represents a little 'a' and 122 a little 'z'..32 is the offset between
  36.   a capital and a little letter in ascii code}
  37.  
  38. UCASE:=UCASEX;
  39. 1: {immediate exit upon fatal error}
  40.  
  41. END;
  42.  
  43. Begin
  44. end.