[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]