Procedure TForm1.BldListbox2WitAptDotDat(aFile : String);
Var
DataFile : TextFile;
Item : String = '';
LineIn : String = '';
TDI : TSTYPE = tNil;
ID : String[4] = '';
iHash : Integer = 0;
Process : Boolean = False;
ICAO : String[8] = '';
ThisICAO : String[8] = 'Nil';
SW100 : Boolean = False;
Bit1 : String = '';
Bit2 : String = '';
FMT : String = '';
Begin
if Not FileExists(aFile) then begin exit; end;
AssignFile(DataFile, aFile);
try
Reset(DataFile);
while not eof(DataFile) do begin
Readln(DataFile, LineIn);
INC(iHash);
LineIn := Trim(LineIn);
ID := Copy2Space(LineIn);
Process := CheckLine(LineIn);
if Not Process then begin Continue; end;
Bit1 := IntToStr(iHash);
ICAO := ExtractWord(5,LineIn,[' ']);
ICAO :=Trim(ICAO);
Case ID of
'1' : begin
TDI := tLand;
SW100 := False;
FMT := FormatRCD(ICAO, TDI, Bit1, LineIn);
AddToListbox2(TDI,FMT);
ThisICAO := ICAO;
Continue;
end;
'14' : begin {Tower Lat and Lon}
TDI := T14RCDLat;
Bit2 := ExtractWord(2,LineIn,[' ']);
Bit1 := 'T14RCDLat ' + Bit2;
FMT := FormatWorkLine(TDI, ThisICAO, Item, Bit1);
AddToListbox2(TDI,FMT);
TDI := T14RCDLon;
Bit2 := ExtractWord(3,LineIn,[' ']);
Bit1 := 'T14RCDLon ' + Bit2;
FMT := FormatWorkLine(TDI, ThisICAO, Item, Bit1);
AddToListbox2(TDI,FMT);
end;
'16' : begin
TDI := tSeaBase;
ThisICAO := ICAO;
SW100 := False;
FMT := FormatRCD(ICAO, TDI, Bit1, LineIn);
AddToListbox2(TDI,FMT);
Continue;
end;
'17' : begin
TDI := tHeliPort;
SW100 := False;
ThisICAO := ICAO;
FMT := FormatRCD(ICAO, TDI, Bit1, LineIn);
AddToListbox2(TDI,FMT);
Continue;
end;
'100' : begin {Runway Center Line}
if SW100 then begin Continue; end;
SW100 := True;
Item := ExtractWord(10,LineIn,[' ']);
TDI := t100RCDLat;
Bit1 := 'T100RCDLat ' + Item;
FMT := FormatWorkLine(TDI, ThisICAO, LineIn, Bit1);
AddToListbox2(TDI,FMT);
TDI := t100RCDLon;
Item := ExtractWord(11,LineIn,[' ']);
Bit1 := 'T100RCDLon ' + Item;
FMT := FormatWorkLine(TDI, ThisICAO, LineIn, Bit1);
AddToListbox2(TDI,FMT);
end;
'101' : begin {Waterway Center Line for Sea Planes}
Item := ExtractWord(5,LineIn,[' ']);
TDI := t101RCDLat;
Bit1 := 'T101RCDLat ' + Item;
FMT := FormatWorkLine(TDI, ThisICAO, LineIn, Bit1);
AddToListbox2(TDI,FMT);
TDI := t101RCDLon;
Item := ExtractWord(6,LineIn,[' ']);
Bit1 := 'T101RCDLon ' + Item;
FMT := FormatWorkLine(TDI, ThisICAO, LineIn, Bit1);
AddToListbox2(TDI,FMT);
end;
'102' : begin
TDI := tNil;
Item := ExtractWord(3,LineIn,[' ']);
TDI := T102RCDLat;
Bit1 := 'T102RCDLat ' + Item;
FMT := FormatWorkLine(TDI, ThisICAO, LineIn, Bit1);
AddToListbox2(TDI,FMT);
TDI := T102RCDLon;
Item := ExtractWord(4,LineIn,[' ']);
Bit1 := 'T102RCDLon ' + Item;
FMT := FormatWorkLine(TDI, ThisICAO, LineIn, Bit1);
AddToListbox2(TDI,FMT);
end;
'1302' : begin
TDI := tNil;
TDI := GetTSType(LineIn);
Case TDI of
tRegion : begin
Item := GetItem(TDI,LineIn);
if Item.IsEmpty then begin Continue; end;
FMT := FormatWorkLine(TDI, ThisICAO, LineIn, '');
AddToListbox2(TDI,FMT);
end;
tCity : begin
Item := GetItem(TDI,LineIn);
if Item.IsEmpty then begin Continue; end;
FMT := FormatWorkLine(TDI, ThisICAO, LineIn, '');
AddToListbox2(TDI,FMT);
end;
tCountry : begin
Item := GetItem(TDI,LineIn);
if Item.IsEmpty then begin Continue; end;
FMT := FormatWorkLine(TDI, ThisICAO, LineIn, '');
AddToListbox2(TDI,FMT);
end;
tLat : begin
Item := GetItem(TDI,LineIn);
if Item.IsEmpty then begin Continue; end;
FMT := FormatWorkLine(TDI, ThisICAO, LineIn, '');
AddToListbox2(TDI,FMT);
end;
tLon : begin
Item := GetItem(TDI,LineIn);
if Item.IsEmpty then begin Continue; end;
FMT := FormatWorkLine(TDI, ThisICAO, LineIn,'');
AddToListbox2(TDI,FMT);
end;
tNil : ;
end;
end;{end 1302}
end; {end of Case}
Edit1.Text := IntToStr(iHash);
Edit1.Text := Format('%.0n',[StrToFloat(Edit1.Text)]);
Application.ProcessMessages;
end;{end While Loop}
CloseFile(DataFile);
except on E: EInOutError do begin ShowMessage('Error with: ' + 'apt.Dt'); end;
end;
end;