home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 September
/
Simtel20_Sept92.cdr
/
msdos
/
txtutl
/
filecmp.arc
/
PFILENAM.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1988-03-03
|
1KB
|
50 lines
{program PFILEN;}
TYPE
Str80 = String[80];
Str64 = String[64];
Str8 = String[8];
Str4 = String[4];
FUNCTION ParseFileName (var InStr:Str80;
VAR DriveAndQual:Str64; var FName:Str8; var FVersion:Str4) : boolean;
LABEL BAD;
VAR I,J : Byte;
BEGIN
IF Length(InStr)>63 THEN GOTO BAD;
FOR I:=1 TO Length(InStr) DO InStr[I]:=UpCase(InStr[I]);
ParseFileName:=True;
{get drive or qual}
I := POS(':', InStr);
IF I>2 THEN GOTO BAD;
REPEAT
J := POS('\', Copy(InStr,I+1,255));
IF J>9 THEN GOTO BAD;
I := I+J;
UNTIL J=0;
DriveAndQual := Copy(InStr,1,I);
I := I+1; {to after qual}
J := POS('.', Copy(InStr,I,255)); {J is num chars +1 in file name}
IF J=0 THEN J:=length(InStr)-I+2;
IF J>9 THEN GOTO BAD;
Fname := Copy(InStr,I,J-1);
IF Length(InStr)-I-J > 2 THEN GOTO BAD;
FVersion := Copy(InStr,I+J-1,255);
IF FALSE THEN
BAD: ParseFileName:=False;
END {ParseFileName};
{VAR S : STR80;
Q : STR64;
N : STR8;
V : STR4;
R : Boolean;
BEGIN
WHILE TRUE DO
BEGIN
WRITE('ENTER : '); readln(s);
R := parsefilename(s,q,n,v);
Writeln('*', q, '*', n, '*', v, '* ', R);
END; END.}