Here is something I Just whipped up for a simple line parser.. Educational purposes only
program Project1;
Const TheInputStr:String = '*Boeing767-300ER \P3d \plugins\757767Avionics\routes\';
var
WordCount,I :Integer;
Entries :Array[1..4] of string;
Function GetParserWord(Var parserindex:Integer; InStr:String):String;
begin
Result := '';
// First remove spaces.
While (ParserIndex <= Length(InStr))and(InStr[ParserIndex] in [#8,' '])
do Inc(ParserIndex);
While (ParserIndex <= Length(INStr))and (Not (InStr[ParserIndex] in[#8,' ']))
do
Begin
Result := Result+Instr[ParserIndex];
Inc(ParserIndex);
End;
End;
Function BuildWordArray(InStr:String):Integer;
Var
I:Integer;
Begin
For I := Low(Entries) to High(Entries) do Entries[I] := '';
Result := 1;
I := 1;
Repeat
Entries[Result] := GetParserWord(I,Instr);
Inc(Result);
until (Entries[Result-1] = '') or(Result > High(Entries));
Result := Result-1;
end;
begin
WordCount := BuildWordArray(TheInputStr);
For I := 1 To WordCount do
WriteLn(Entries[I]);
ReadLn;
end.