[Back to STRINGS SWAG index]  [Back to Main SWAG index]  [Original]

{
FRED JOHNSON

After noticing the compiler error,  Arthur Choi said...

>How do I upcase a String, For use With
>a ReadLn?
AC>Simple as possible, please... thanx

{More than you wanted, but very useful}
Uses String_h;

Var
  sData : String;
begin
  sData := 'fred';
  Writeln('toupper  ', toupper(@sData)^);
  Writeln('original ', sData);
  Writeln('strupr   ', strupr(@sData)^);
  Writeln('original ', sData);

  Writeln('tolower  ', tolower(@sData)^);
  Writeln('original ', sData);
  Writeln('strlwr   ', strlwr(@sData)^);
  Writeln('original ', sData);
end.

{---- String_h.pas.tpu ---}
{*******************************************************************!HDR**
** Module Name: String_h.pas
** $LogFile:$
** $Revision:$
** $Author:$
** System Module Purpose:
** Public Functions Within this module:
** Global usage:
** Special notes:
** $Log$
** Initial revision.
** Initial revision. 10/05/93 19:35
********************************************************************!end*}
Unit String_h;

Interface
Type
   spStringPtr = ^String;

{-------------------------------------------------------------------!HDR--
** Function Name: toupper();
** Description  : converts String to upper case
** Returns      : Pointer to an uppercase String
** Calls        : length, upcase
** Special considerations:
** Modification history:
** Created: 10/05/93 19:28}
Function toupper(String_or_Char : spStringPtr) : spStringPtr;

{-------------------------------------------------------------------!HDR--
** Function Name: tolower();
** Description  : converts a String to lower case
** Returns      : Pointer to a lower Case String
** Calls        : length, ord, length
** Special considerations:
** Modification history:
** Created: 10/05/93 19:28}
Function tolower(String_or_Char : spStringPtr) : spStringPtr;

{-------------------------------------------------------------------!HDR--
** Function Name: strupr
** Description  : converts String and alters contents to uppercase
** Returns      : Pointer to uppercase String
** Calls        : upcase, length
** Special considerations:
** Modification history:
** Created: 10/05/93 19:28}
Function strupr (String_or_Char : spStringPtr) : spStringPtr;

{-------------------------------------------------------------------!HDR--
** Function Name: strlwr
** Description  : converts String and alters contents to lower case
** Returns      : Pointer to lower Case String
** Calls        : ord, Char, length
** Special considerations:
** Modification history:
** Created: 10/05/93 19:28}
Function strlwr (String_or_Char : spStringPtr) : spStringPtr;

Implementation

Function toupper(String_or_Char : spStringPtr) : spStringPtr;
Var
  byCounter : Byte;
begin
  toupper^[0] := String_or_Char^[0];
  For byCounter := 1 to length(String_or_Char^) do
    toupper^[byCounter] := upcase(String_or_Char^[byCounter]);
end;

Function tolower(String_or_Char : spStringPtr) : spStringPtr;
Var
  byCounter : Byte;
begin
  tolower^[0] := String_or_Char^[0];
  For byCounter := 1 to length(String_or_Char^) do
  begin
    if ord(String_or_Char^[byCounter]) in [65..90] then
      tolower^[byCounter] := Char(ord(String_or_Char^[byCounter])+32);
    else
      tolower^[byCounter] := String_or_Char^[byCounter];
  end;
end;

Function strupr(String_or_Char : spStringPtr) : spStringPtr;
Var
  byCounter : Byte;
begin
  strupr^[0] := String_or_Char^[0];
  For byCounter := 1 to length(String_or_Char^) do
  begin
    strupr^[byCounter] := upcase(String_or_Char^[byCounter]);
    String_or_Char^[byCounter] := upcase(String_or_Char^[byCounter]);
  end;
end;

Function strlwr(String_or_Char : spStringPtr) : spStringPtr;
Var
  byCounter : Byte;
begin
  strlwr^[0] := String_or_Char^[0];
  For byCounter := 1 to length(String_or_Char^) do
  begin
    if ord(String_or_Char^[byCounter]) in [65..90] then
    begin
      strlwr^[byCounter] := Char(ord(String_or_Char^[byCounter])+32);
      String_or_Char^[byCounter] := Char(ord(String_or_Char^[byCounter])+32);
    end
    else
    begin
      strlwr^[byCounter] := String_or_Char^[byCounter];
      String_or_Char^[byCounter] := String_or_Char^[byCounter];
    end;
  end;
end;

end.


[Back to STRINGS SWAG index]  [Back to Main SWAG index]  [Original]