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

    {
    > 2: And with a string I want to read a specific string and
    > get the first to letter of the 1st and last names.
    > So for example: Mike Enos ==> ME-DATA.DAT.
    >
    > Function GetDatName : String;
    [deleted]

     To get the first letter of a surname, it might be better to scan
     from the end of the string -- in case the person also uses their
     middle name or initial...
    }

    PROGRAM Monogram;

    VAR
      PersonName  : STRING[64];             (* person's name(s)   *)
      FileName    : STRING[12];             (* file name          *)
      Index       : WORD;                   (* character pointer  *)

    BEGIN
      FileName := '??-DATA.DAT';                (* common file name   *)

      PersonName := 'Jack B. Nimble';           (* example name       *)

      (* the person's name MUST contain at least one space...         *)

      IF (Length(PersonName)=0) OR (Pos(' ',PersonName)=0) THEN BEGIN
        WriteLn; WriteLn ('First AND Last names, please...');
        Halt(1);
      END;

      (* assume there's no leading white spaces...                    *)

      FileName[1] := UpCase (PersonName[1]);    (* pick up 1st char   *)

      (* scan from the end of PersonName, looking for white space...  *)

      Index := Length (PersonName);
      WHILE (Index > 0) AND (PersonName[Index] > ' ') DO DEC (Index);

      INC (Index);    (* ... 'cause we went one too many              *)

      FileName[2] := PersonName[Index];   (* get 1st char of surname  *)

      WriteLn;
      WriteLn ('File name for "',PersonName,'" is ',FileName);
      WriteLn;

    END.

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