'|00CA||7826300||Barstow||United States||K2||35.349333||-116.893333|'This is how ExtractDelimited works.
1 2 3 4 5 6 7 8 9 10 11 12 13
maybe it isn't the 6th and 7th more 11th and 13s word?
...
'|00CA||7826300||Barstow||United States||K2||35.349333||-116.893333|'This is how ExtractDelimited works.
1 2 3 4 5 6 7 8 9 10 11 12 13
maybe it isn't the 6th and 7th more 11th and 13s word?
...
https://www.freepascal.org/docs-html-3.0.0/rtl/strutils/extractdelimited.html
'|00CA||7826300||Barstow||United States||K2||35.349333||-116.893333|'This is how ExtractDelimited works.
1 2 3 4 5 6 7 8 9 10 11 12 13
maybe it isn't the 6th and 7th more 11th and 13s word?
...
https://www.freepascal.org/docs-html-3.0.0/rtl/strutils/extractdelimited.html
Help says:
This means that if 2 delimiter characters appear next to each other, there is an empty part between it.
in my interpretation above countwise is right!
2 delimiter characters appear next to each other counts!
or am i totaly wrong?
i'm using TStringlist with delimiter in such cases and this "||" will give two parts...
'|00CA||7826300||Barstow||United States||K2||35.349333||-116.893333|'This is how ExtractDelimited works.
1 2 3 4 5 6 7 8 9 10 11 12 13
maybe it isn't the 6th and 7th more 11th and 13s word?
...
https://www.freepascal.org/docs-html-3.0.0/rtl/strutils/extractdelimited.html
Unlike ExtractDelimited, an empty string is not a valid return value, i.e. is not a word. If an empty string is returned, the index N was out of range.
|00CA||7826300||Barstow||United States||K2||35.349333||-116.893333|'
1 2 3 4 5 6 7
as demonstrated by the fact that it works when you test directly with that string.Info: line 1 have bit1 valid float value = 35.35
Info: line 1 have bit2 valid float value = -116.89
Error: not know line 2 and have 6 word
Info: line 3 have bit1 valid float value = 35.35
Info: line 3 have bit2 valid float value = -116.89
Error: have error data bit1. Not have validate float "fun" line = 4
Error: have error data bit2. Not have validate float "calculate" line = 4
Info: line 5 have bit1 valid float value = 35.35
Info: line 5 have bit2 valid float value = -116.89
Info: line 6 have bit1 valid float value = 35.35
Info: line 6 have bit2 valid float value = -116.89
RCD.ICAO := ExtractWord(3,ED2String ,['['..']']);
is the same as doing:RCD.ICAO := ExtractWord(3,ED2String ,['[', '\', ']']);
which may or may not matter to you...ShowMessage('"' + ED2String + '"');
just before the previous line to see what, if anything, ED2String contains (the double quotes are there for you to see something even if the string is empty).Attached simple application, that extract the encapsulated strings and puts them into an array.
The array data will start in the array at index 1.
Works fine with your data line.
--------------------------------
proc file ByAirport.txt
--------------------------------
Error: not know line 1 and have 8 word
Info: line 2 have bit1 valid float value = 35.35
Info: line 2 have bit2 valid float value = -116.89
Info: line 3 have bit1 valid float value = 33.49
Info: line 3 have bit2 valid float value = -111.64
Info: line 4 have bit1 valid float value = 45.47
Info: line 4 have bit2 valid float value = -105.46
Info: line 5 have bit1 valid float value = 28.85
Info: line 5 have bit2 valid float value = -82.35
Info: line 6 have bit1 valid float value = 27.23
Info: line 6 have bit2 valid float value = -80.97
Info: line 7 have bit1 valid float value = 19.83
Info: line 7 have bit2 valid float value = -155.98
Info: line 8 have bit1 valid float value = 40.29
Info: line 8 have bit2 valid float value = -82.74
Info: line 9 have bit1 valid float value = 41.64
Info: line 9 have bit2 valid float value = -87.12
Info: line 10 have bit1 valid float value = 41.98
Info: line 10 have bit2 valid float value = -89.56
Info: line 11 have bit1 valid float value = 40.03
Info: line 11 have bit2 valid float value = -89.13
Info: line 12 have bit1 valid float value = 38.18
Info: line 12 have bit2 valid float value = -89.81
Info: line 13 have bit1 valid float value = 38.73
Info: line 13 have bit2 valid float value = -94.93
Info: line 14 have bit1 valid float value = 31.95
Info: line 14 have bit2 valid float value = -89.24
Info: line 15 have bit1 valid float value = 43.95
Info: line 15 have bit2 valid float value = -86.42
Info: line 16 have bit1 valid float value = 46.30
Info: line 16 have bit2 valid float value = -95.71
--------------------------------
proc file Composite.txt
--------------------------------
Error: not know line 1 and have 8 word
Info: line 2 have bit1 valid float value = 45.47
Info: line 2 have bit2 valid float value = -105.46
Info: line 3 have bit1 valid float value = 28.85
Info: line 3 have bit2 valid float value = -82.35
Info: line 4 have bit1 valid float value = 27.23
Info: line 4 have bit2 valid float value = -80.97
Info: line 5 have bit1 valid float value = 41.64
Info: line 5 have bit2 valid float value = -87.12
Info: line 6 have bit1 valid float value = 41.98
Info: line 6 have bit2 valid float value = -89.56
Info: line 7 have bit1 valid float value = 40.03
Info: line 7 have bit2 valid float value = -89.13
EF BB FF 5B 30 30 .....
That "EF BB FF" is make error and confuse extractword or TStrings ... i not know why there ? is unicode ?
On the first record I get 8 fields and then it goes to 7 (which is right).
#$EF + #$BB + #$FF
but#$EF + #$BB + #$BF
@JLWest:
you have file with many data for test ? Example my work also when not data good.
i ask: why change delimiter any time ?
Attached simple application, that extract the encapsulated strings and puts them into an array.
The array data will start in the array at index 1.
Works fine with your data line.
I need the data converted from the following line to a record:Code: [Select]ICAO Haash City Country Code Lat Lon
[00CA][7826300][Barstow][United States][K2][35.349333][-116.893333]
To: a record:Code: [Select]TData = record
ICAO : String[8];
Region : String[3];
Hash : Double;
HashStr : String[12];
Lat : Double;
LatStr : String[12];
Lon : Double;
LonStr : String[12];
RCDLine : String[95];
Distance : Double;
DistanceStr : String[18];
end;
Data.WhateverField := ExtractWord(X, TheLine)
and then generating the other (calculated?) fields.
ETA By the way, the UTF-8 BOM is not:I sorry lucamar. I make copy-paste error :-[ (is better write read-write error because hexy-edit no have copy-paste).Code: [Select]#$EF + #$BB + #$FF
butCode: [Select]#$EF + #$BB + #$BF
Let's be precise with these kind of things :)
Once the problems with loading the files are solved, that should be easy; just a matter ofI have question. If data utf-8 then record string short and extractword not work. so make ansi. Then away utf-8 codec and not can write fancy letter greek, hyroglyph etc ?Code: [Select]Data.WhateverField := ExtractWord(X, TheLine)
and then generating the other (calculated?) fields.
On the first record I get 8 fields and then it goes to 7 (which is right).
As I surmised: not a problem of code but of data.
You're reading an UTF8 BOM along with the first record which gets taken as the first field (after all, it ends in a '['), so all the rest are off-by one and when you were trying to read the 6th word, it was, from its point of view correctly, returning "K2".
Don't save files with UTF8 BOM, it's an absurd convention invented by Microsoft to avoid having to check if a file really contains UTF-8 data.
If you can't avoid having the files with the UTF-8 BOM, you can load them first in a TMemo and assign the Memo.Lines tio the listbox items.
One other, unimportant, thing: why are you loading the files by hand (with assing, readln, etc.) instead of using ListBox.Items.LoadFromFile()?
ETA By the way, the UTF-8 BOM is not:Code: [Select]#$EF + #$BB + #$FF
butCode: [Select]#$EF + #$BB + #$BF
Let's be precise with these kind of things :)
Once the problems with loading the files are solved, that should be easy; just a matter ofI have question. If data utf-8 then record string short and extractword not work. so make ansi. Then away utf-8 codec and not can write fancy letter greek, hyroglyph etc ?Code: [Select]Data.WhateverField := ExtractWord(X, TheLine)
and then generating the other (calculated?) fields.
UTF8 BOM <--- No Idea what that is.
The data is extracted from a file of 7.9 million records. And I guess the 7.9 million records are UTF8 BOM.
"If you can't avoid having the files with the UTF-8 BOM, you can load them first in a TMemo and assign the Memo.Lines tio the listbox items."
Don't understand the "and assign the Memo.Lines to the listbox items.
Listbox1.Items.Add(Line) := Memo.Lines ???
Listbox1.Items.AddStrings(Memo.Lines, True)
If I load the 38,000 records into a Memo1 and then load them into a listbox and the save them to a text file.
Will that get rid of the UTF-8 BOM in the text file?
Not against pre-processing the file into ASCII if there is a way.
I'm going to write a program to load the the 38,000 records into a memo1 box lucamar's LoadListFromFile procedure and then into a listbox and finally write to an ASCII text file.
I have question. If data utf-8 then record string short and extractword not work. so make ansi. Then away utf-8 codec and not can write fancy letter greek, hyroglyph etc ?
CorrectFile('ByAirport.original', 'ByAirport.txt')
i write more wrong all ways skip :D
... FileStream:= TFileStream.Create(Filename, fmOpenRead); FileStream.Position:= 3; Lines.Clear; Lines.LoadFromStream(FileStream); FileStream.Free; ...
Thank you for answer and explain lucamar. Ok, then i know :)I have question. If data utf-8 then record string short and extractword not work. so make ansi. Then away utf-8 codec and not can write fancy letter greek, hyroglyph etc ?
No, the problem here is that the file has a BOM that is not being taken account of. FPC and Lazarus, in general, can deal perfectly with mixing strings of various types in differents encodings. If anything, the compiler will warn that some automatic conversion or other may result in lost data which means that yes: assigning hieroglyphics to a short string may not work well.
If the need arises one can always convert the UTF8 string to a string declared with an appropiate codepage, from which conversion to a short string is normally direct, char to char. Of course, if the short string has to be stored to a file (for example) one should take care of storing some sort of reminder of the codepage in which it's stored ... or convert it again to UTF-8 and store that.
Oops! Didn't see this:Is good I add many later to post :)
The problem with the above code (besides not checking if there is actually a BOM) is that FileStream.Position should be set to four (4), not three (3). :)??
Yes the conversion from UTF8 BOM worked and now I make the call to
RCD := Decompose(RCD); and it passes me back a RCD with all of the fields filled in perfectly with correct data.
Quote from: lucamarThe problem with the above code (besides not checking if there is actually a BOM) is that FileStream.Position should be set to four (4), not three (3). :)??
file JLWest BOM have 3 bytes
byte 1, position 0
byte 2, position 1
byte 3, position 2
then ansi start position 3, then position is index (start 0) ?
I have learned that the Hero Members are experts. What takes me days they do in 10 min. The difficult they do in a minute, the very difficult they do with ease and the impossible takes 15 minutes.
Hmm ... you're right, Stream.Position is zero-based, so three is the correct value.I think i not understand that i write. Many time i not think about and write wrong. Then i can make shake hand :D
Don't know what I was thinking about :-[
Yes the conversion from UTF8 BOM worked and now I make the call tothat many good !! i make congratulation. Now can make more program :)
RCD := Decompose(RCD); and it passes me back a RCD with all of the fields filled in perfectly with correct data.
I would like to thank all for the help I received.Make help is good me for learn :) Then i thank you for post problem :)
I don't mind the criticism, I know I'm not very good and at my age not likely to improve much. But I do read the code and try my best to understand it.I think is improve if learn that it no matter what you have result and our have result and not have same data. Have good data and know data is many important. I think that if result you and help not same then give data for test :)
:) Basically, dos2unix is a *nix tool to remove the junk some MS tools like to add. https://www.liquidweb.com/kb/dos2unix-removing-hidden-windows-characters-from-files/
Apparently there is a version for Windows that can be run in your powershell or whatever it is called on windows. https://sourceforge.net/projects/dos2unix/
Can I write a program using your
procedure CorrectFile( const ASrcName: String; const ADestName: String); to convert the 7.9 Million records in the Apt.Dat file to ASCII.
Well I got it running and and it loaded about 45% of the 7.9 mil records and then quit.
The records are in the list box and the program is still running.
If your code gets any smarter it will be able to write by it;s self without our.
I'm more than wiling to post this on my GDrive if someone is willing to look at it.
[...] wanted to include some documentation on your copyright [...]
....Is good no have error any more :)
It has a few bugs I need to fix and resolve the data issue.
NOTE:----------------------------------------------------
So after writing this up I got to thinking.
All data comes from Apt.Dat. I generate a 36,000 ByAirports.txt file in a seperate program.
I change the MstRegions program to load the ByAirports.txt and then populate the Listbox1, Listbox3, and Listbox5 from Listbox2.
So far I no longer get the error on the first record in listbox2.
I can't get Cleanbom to work. I Have never run the DOS box programs. (Years a go)
I think I get in a dos box cd to where the Cleanbom resides and do the following
Cleanbom E:\files\Regions\MstRegions.txt E:\files\Regions\MstRegions.bak
E:
cd E:\files\Regions
cleanbom MstRegions.txt
exit
So I'm thinking about taking the ExtractWord Demo and add the procedure to it.
That way I could bring up a file, see if it is extracting ok, if not then save it as an ASCII.
I change the MstRegions program to load the ByAirports.txt and then populate the Listbox1, Listbox3, and Listbox5 from Listbox2.
So far I no longer get the error on the first record in listbox2.
I may be offline for a day. Doctors, Hospital. The last time I went in for this I was there for a week.
At the time my kid got some program that would allow me to operate my computer from his laptop using the hospital's network log in as a guest. Pretty neat.
I have to take a look at @Thausand latest.Oh, i sorry. I forget attach (i make now).
I may be offline for a day. Doctors, Hospital. The last time I went in for this I was there for a week.I make wish well for you.
Please no upload me apt.dat if zip more big 1GB. Is text so make > 10-20GB unpack and no have space for test now.
It's not so big, just about 300 MiB and as it's text it compresses well: down to around 100 MiB.Hi hello lucamar,
@TausandHi hello JLWest,
If it's to big then open with Notepad and cut out a hundred records of so.
You can do that with all the text file.
@Thausand Link to my GoogleDrive.Thanksy !
...
...Thanksy for suggest ! Is more windows and i not windows :P
It is very basic. but fast.
./aptidat apt.dat
Processing file "apt.dat"
Line Airport Land Sea Heli Land_R Water_R Helipad Time
7970312 35242 28458 585 6199 34893 784 9719 88 sec (89996.98 lines/second)
Is mean:The Lat and Lon should be the same. Indicates something is wrong with the data.
Line ICAO
34680 34680
Airport
35242
If have any airport unique ICAO then 35242 <> 34680 so if make me program "Airports.dat" then not same you "ByAirports.dat". My program make many more ICAO then have "ByAirports.dat" ICAO.The Lat and Lon should be the same. Indicates something is wrong with the data.Then is possible many airport have same lon or have same lat. No lon and lat same (that real world no possible)
I think he meant that there should be the same total number of Longitude values than of latitude values; otherwise, some data lines have only longitude (or only latitude), which is an error.Yes and then you be low write is good write. I make alone unique count (alone for lat and alone for lat, no combine).
But looking closer, you seem to be computing the total of different values for each, isn't it?, so they might in fact be different if some airports have the same longitude and diffferent latitude or viceversa.Yes, that correct. Is count different lat and count different lon separate/different so is count alone unique.
... show unique count:)
The number OF Lat's and Lon's have to be the same.
The Lat number and Lon number have to be different.
The number OF Lat's and Lon's have to be the same.I make count unique so i have no same count. i write be low also.
The Lat number and Lon number have to be different.
That is, unless you know for sure that there no two airport with the same latitude or no two airports with the same longitude. If so, then there is an error somewhere.That correct.
$ ./aptidat apt.dat Airport.txt
Processing file "apt.dat"
Line Airport Land Sea Heli Land_R Water_R Helipad Time
7970312 35242 28458 585 6199 34893 784 9719 95 sec (83210.44 lines/second)
$ ./flyby Airport.txt
Processing file "Airport.txt"
... show unique count
Line Error ICAO hash City Country Region Lat lon Time
35241 0 35241 35241 14272 259 248 35109 35135 35 sec (983.01 lines/second))
No errors encountered during processing data
Statistics dtICAO :
Shortest = "00C" (3 characters)
Longest = "XCYCDL8" (7 characters)
Lowest count = "00C" (1 times)
Highest count = "00CA" (1 times)
Statistics dtHash :
Shortest = "4" (1 characters)
Longest = "1022949" (7 characters)
Lowest count = "1021615" (1 times)
Highest count = "1022949" (1 times)
Statistics dtCity :
Shortest = "Ie" (2 characters)
Longest = "Charlotte Amalie - Harry S. Truman Airport" (42 characters)
Lowest count = "(Cagayan De Oro)" (1 times)
Highest count = "Nil" (9552 times)
Statistics dtCountry :
Shortest = "CA" (2 characters)
Longest = "United States Minor Outlying Islands" (36 characters)
Lowest count = "Anguilla" (1 times)
Highest count = "United States" (14971 times)
Statistics dtRegion :
Shortest = "AG" (2 characters)
Longest = "Nil" (3 characters)
Lowest count = "AN" (1 times)
Highest count = "Nil" (23023 times)
Statistics dtLat :
Shortest = "0.00000000" (10 characters)
Longest = "-10.00499742" (12 characters)
Lowest count = "-0.02069980" (1 times)
Highest count = "-23.59055556" (6 times)
Statistics dtLon :
Shortest = "0.00000000" (10 characters)
Longest = "-100.00039500" (13 characters)
Lowest count = "-0.00094400" (1 times)
Highest count = "-46.65805556" (4 times)
---------- List dtCountry ----------
1 : (10) "Afghanistan"
2 : (5) "Albania"
3 : (47) "Algeria"
4 : (3) "American Samoa"
5 : (27) "Angola"
6 : (1) "Anguilla"
7 : (9) "Antarctica"
8 : (3) "Antigua and Barbuda"
9 : (164) "Argentina"
10 : (1) "Arizona"
11 : (5) "Armenia"
12 : (1) "Aruba"
13 : (1492) "Australia"
14 : (54) "Austria"
15 : (9) "Azerbaijan"
16 : (38) "Bahamas"
17 : (2) "Bahrain"
18 : (13) "Bangladesh"
19 : (1) "Barbados"
20 : (9) "Belarus"
21 : (43) "Belgium"
22 : (1) "Belize"
23 : (2) "Benin"
24 : (1) "Bermuda"
25 : (3) "Bhutan"
26 : (38) "Bolivia"
27 : (4) "Bosnia and Herzegovina"
28 : (28) "Botswana"
29 : (3758) "Brazil"
30 : (1) "British Indian Ocean Territory"
31 : (2) "British Virgin Islands"
32 : (2) "Brunei"
33 : (22) "Bulgaria"
34 : (2) "Burkina Faso"
35 : (1) "Burkina Faso7"
36 : (36) "Burma"
37 : (1) "Burundi"
38 : (15) "CA"
39 : (6) "Cambodia"
40 : (10) "Cameroon"
41 : (704) "Canada"
42 : (9) "Cape Verde"
43 : (3) "Caribbean Netherlands"
44 : (1) "Carroll"
45 : (3) "Cayman Islands"
46 : (2) "Central African Republic"
47 : (5) "Chad"
48 : (176) "Chile"
49 : (102) "China"
50 : (1) "Christmas Island"
51 : (1) "Cocos (Keeling) Islands"
52 : (92) "Colombia"
53 : (3) "Comoros"
54 : (4) "Congo (Brazzaville)"
55 : (27) "Congo (Kinshasa)"
56 : (10) "Cook Islands"
57 : (26) "Costa Rica"
58 : (18) "Croatia"
59 : (31) "Cuba"
60 : (1) "Curaçao"
61 : (3) "Cyprus"
62 : (99) "Czechia"
63 : (7) "Côte d'Ivoire"
64 : (87) "Denmark"
65 : (1) "Djibouti"
66 : (2) "Dominica"
67 : (15) "Dominican Republic"
68 : (50) "Ecuador"
69 : (56) "Egypt"
70 : (4) "El Salvador"
71 : (2) "Equatorial Guinea"
72 : (3) "Eritrea"
73 : (13) "Estonia"
74 : (22) "Ethiopia"
75 : (2) "Falkland Islands"
76 : (8) "Faroe Islands"
77 : (23) "Fiji"
78 : (92) "Finland"
79 : (3) "FR"
80 : (441) "France"
81 : (5) "French Guiana"
82 : (48) "French Polynesia"
83 : (11) "Gabon"
84 : (1) "Gambia"
85 : (9) "Georgia"
86 : (505) "Germany"
87 : (8) "Ghana"
88 : (1) "Gibraltar"
89 : (56) "Greece"
90 : (17) "Greenland"
91 : (1) "Greenville"
92 : (2) "Grenada"
93 : (5) "Guadeloupe"
94 : (2) "Guam"
95 : (10) "Guatemala"
96 : (2) "Guernsey"
97 : (4) "Guinea"
98 : (3) "Guinea-Bissau"
99 : (16) "Guyana"
100 : (6) "Haiti"
101 : (10) "Honduras"
102 : (1) "Hong Kong"
103 : (76) "Hungary"
104 : (81) "Iceland"
105 : (195) "India"
106 : (181) "Indonesia"
107 : (88) "Iran"
108 : (16) "Iraq"
109 : (36) "Ireland"
110 : (1) "Isle of Man"
111 : (21) "Israel"
112 : (120) "Italy"
113 : (6) "Jamaica"
114 : (130) "Japan"
115 : (1) "Jersey"
116 : (8) "Jordan"
117 : (1) "K1"
118 : (21) "Kazakhstan"
119 : (14) "Kenya"
120 : (20) "Kiribati"
121 : (1) "Kosovo"
122 : (3) "Kuwait"
123 : (4) "Kyrgyzstan"
124 : (8) "Laos"
125 : (7) "Latvia"
126 : (3) "Lebanon"
127 : (5) "Lesotho"
128 : (2) "Liberia"
129 : (41) "Libya"
130 : (1) "Liechtenstein"
131 : (7) "Lithuania"
132 : (3) "Luxembourg"
133 : (1) "Macau"
134 : (12) "Macedonia"
135 : (28) "Madagascar"
136 : (7) "Malawi"
137 : (43) "Malaysia"
138 : (6) "Maldives"
139 : (8) "Mali"
140 : (2) "Malta"
141 : (7) "Marshall Islands"
142 : (1) "Martinique"
143 : (10) "Mauritania"
144 : (2) "Mauritius"
145 : (1) "Mayotte"
146 : (132) "Mexico"
147 : (4) "Micronesia"
148 : (3) "Moldova"
149 : (1) "Monaco"
150 : (22) "Mongolia"
151 : (3) "Montenegro"
152 : (1) "Montserrat"
153 : (26) "Morocco"
154 : (18) "Mozambique"
155 : (1) "Myanmar"
156 : (55) "Namibia"
157 : (1) "Namibia."
158 : (1) "Nauru"
159 : (41) "Nepal"
160 : (34) "Netherlands"
161 : (17) "New Caledonia"
162 : (109) "New Zealand"
163 : (10) "Nicaragua"
164 : (7) "Niger"
165 : (27) "Nigeria"
166 : (7294) "Nil"
167 : (1) "Niue"
168 : (1) "Norfolk Island"
169 : (1) "North Korea"
170 : (9) "Northern Mariana Islands"
171 : (142) "Norway"
172 : (6) "Oman"
173 : (68) "Pakistan"
174 : (3) "Palau"
175 : (2) "Palestinian Territory"
176 : (22) "Panama"
177 : (75) "Papua New Guinea"
178 : (11) "Paraguay"
179 : (1) "Peoples Republic of China"
180 : (1) "Peru"
181 : (79) "Perú"
182 : (73) "Philippines"
183 : (92) "Poland"
184 : (52) "Portugal"
185 : (32) "Puerto Rico"
186 : (3) "Qatar"
187 : (1) "Republic of Ireland (Eire)"
188 : (39) "Romania"
189 : (167) "Russia"
190 : (7) "Russian Federation"
191 : (1) "Russin Federation"
192 : (5) "Rwanda"
193 : (2) "Réunion"
194 : (1) "Saint Barthélemy"
195 : (2) "Saint Helena"
196 : (2) "Saint Kitts and Nevis"
197 : (2) "Saint Lucia"
198 : (1) "Saint Martin"
199 : (2) "Saint Pierre and Miquelon"
200 : (5) "Saint Vincent and the Grenadines"
201 : (4) "Samoa"
202 : (2) "Sao Tome and Principe"
203 : (62) "Saudi Arabia"
204 : (10) "Senegal"
205 : (7) "Serbia"
206 : (8) "Seychelles"
207 : (1) "Sierra Leone"
208 : (6) "Singapore"
209 : (30) "Slovakia"
210 : (16) "Slovenia"
211 : (23) "Solomon Islands"
212 : (6) "Somalia"
213 : (109) "South Africa"
214 : (77) "South Korea"
215 : (4) "South Sudan"
216 : (107) "Spain"
217 : (10) "Sri Lanka"
218 : (11) "Sudan"
219 : (8) "Suriname"
220 : (1) "Swaziland"
221 : (164) "Sweden"
222 : (1) "Swiss"
223 : (70) "Switzerland"
224 : (23) "Syria"
225 : (21) "Taiwan"
226 : (6) "Tajikistan"
227 : (14) "Tanzania"
228 : (61) "Thailand"
229 : (6) "Timor-Leste"
230 : (2) "Togo"
231 : (6) "Tonga"
232 : (2) "Trinidad and Tobago"
233 : (13) "Tunisia"
234 : (74) "Turkey"
235 : (10) "Turkmenistan"
236 : (7) "Turks and Caicos Islands"
237 : (1) "Tuvalu"
238 : (6) "U.S. Virgin Islands"
239 : (1) "U.S.A."
240 : (18) "Uganda"
241 : (26) "Ukraine"
242 : (19) "United Arab Emirates"
243 : (251) "United Kingdom"
244 : (1) "United Sates"
245 : (14971) "United States"
246 : (4) "United States Minor Outlying Islands"
247 : (2) "United States of America"
248 : (11) "Uruguay"
249 : (25) "US"
250 : (26) "USA"
251 : (15) "Uzbekistan"
252 : (23) "Vanuatu"
253 : (100) "Venezuela"
254 : (24) "Vietnam"
255 : (2) "Wallis and Futuna"
256 : (3) "Western Sahara"
257 : (13) "Yemen"
258 : (8) "Zambia"
259 : (17) "Zimbabwe"
First i see i have wrong count airport (i not know why. I make quick export so think have small error. I look later).Statistics dtLat :
Shortest = "0.00000000" (10 characters)
Longest = "-10.00499742" (12 characters)
Lowest count = "-0.02069980" (1 times)
Highest count = "-23.59055556" (6 times)
Lowest count = 1 times, Highest count is 6 times. Statistics dtLon :
Shortest = "0.00000000" (10 characters)
Longest = "-100.00039500" (13 characters)
Lowest count = "-0.00094400" (1 times)
Highest count = "-46.65805556" (4 times)
Lowest count = 1 times, Highest count is 4 times.Country
259
245 : (14971) "United States"
Country name ""United States" is count 14971 and Country count is 259. My program no write Country count = 35242 because have ICAO 35242. Have 259 unique name country :)
I guess it possibly or my data extraction program is wrong.Is can my program extract wrong. So maybe not you program error. That why i ask question :)
The difference in the number of airports is due to the fact that I don't build a record for Heliport but I do Sea Plane bases.For basic is simple. My program have count (unique) airport 35242 and (unique) count Heli 6199. If apt.dat have unique ICAO airport (and any Airport apt.dat have (unique) ICAO) then count = 35242 - 6199 = 29043 unique airport (and ICAO).
I don't know. Not getting a apt.bak file
04/27/2019 10:08 PM 292,818,538 apt.dat
$ ls -l apt.dat
-rw-r--r-- 1 pi pi 292818538 Apr 27 22:08 apt.dat
If read good then see is same size. @lucmar
I don't know. Not getting a apt.bak file
I not know program lucamar cleanbom but when have not BOM then why write file ? Then maybe program cleanbom read no BOM and then no write file new and no need file "apt.bak" ?
01MN
03M
05B
08MN
09Y
0FD6
0G5
0MI5
0MN0
0MN2
0MN4
0O0
0TN1
0W0
0W7
0Z3
10MA
11MN
12MN
13S
13Z
14MN
16MN
16WI
16Z
17MN
19Y
1AL9
1FD1
1IS9
1MI0
1MN4
1MN9
1MU1
1O0
1WI5
1Z9
21H
21MN
22MN
28MN
2MA6
2MA7
2MN5
2N7
2OG3
2Q4
2R3
2Y3
2Z1
2Z6
30W
34MN
3FD9
3LA2
3MD9
3MI9
3TN2
3Z8
3Z9
42FL
43FD
44NJ
45D
48B
4FD4
4FD5
4LA9
4MN1
4NC9
4NJ2
4NY2
4Z7
50MI
51MI
51Y
52B
52Z
53LA
54NJ
58NJ
5BL
5CA9
5J2
5KE
5L6
5LA6
5MA8
5N6
5N9
5X3
5Z1
5Z9
60B
61FD
62FD
63A
68A
6FL5
6MA0
6MA8
6MA9
6MD6
6MN4
6N6
6N7
6NJ7
6NY6
70B
70MY
71C
75B
75PN
78B
78U
78Z
7K2
7N3
7VA7
7W8
7WI1
7Y6
80B
81W
83B
83FD
83Q
85B
85VA
87B
89FD
8AK4
8IL7
8IL9
8K9
8MN0
8NA1
8X0
91FL
94D
96WI
96Z
98FD
98FL
99Z
9C0
9FD0
9M0
9MN3
9MN8
9N2
9X6
9Y5
9Y6
9Z3
9Z4
AK16
AK19
AK27
AK29
AK34
AK36
AK43
AK56
AK57
AK58
AK62
AK81
AK84
AL46
ALZ
AQS
B18
BNF
BQV
BXL
C39
C54
CA2E
CA2S
CAA9
CAML
CAN6
CAN8
CAU6
CGA
CJB7
CJD9
CJX8
CJY9
CJZ6
CJZ9
CKB4
CKB5
CKC2
CKE4
CKG6
CKP5
CKU3
CKW5
CML1
CN20
CNC8
CND9
CNH7
CNQ7
CNS2
CPB6
CPT7
CSKC
CT16
CT30
CT78
CT82
CT87
CTM2
CWB1
CXBB
CYBH
CYDX
CYHC
CYIG
CZSW
DE13
E20
EDUY
ES05
ES06
ES07
EXI
F57
FA05
FA17
FA23
FD12
FD79
FD80
FD98
FL04
FL26
FL42
H11
H63
HWI
HYL
I04
ID28
IN59
IS79
K40
K45
KAE
KBE
KCC
KCDD
KCN
KIB
KKB
KKI
KKL
KKPB
KMY
KOY
KPH
KPR
KPY
KQA
KTB
KVU
KWF
KWK
KWP
KXA
L85
LA16
LA64
LEGO
M00
M14
M49
M57
M69
MA01
MA06
MA12
MA25
MA36
MA65
MA74
MA78
MA82
MA87
MD80
ME01
ME04
ME09
ME11
ME12
ME27
ME30
ME43
ME50
ME51
ME63
ME67
ME80
ME90
MI03
MN03
MN05
MN09
MN21
MN29
MN30
MN35
MN72
MN73
MN78
MN80
MO07
MY21
MY22
MY23
MY31
MY32
MY33
MY34
MY36
MY38
MY48
MY73
MY74
MY83
MY96
NFCS
NH36
NH37
NH64
NH71
NJ07
NK13
NK30
NK59
NK60
NY47
NY61
O06
O12
OOH
ORV
PA90
PAAP
PAEL
PAFK
PAHY
PAMM
PANR
PAQC
PEC
PN19
PN24
PN65
PR03
PS88
PWR
PYL
Q83
Q86
Q87
QAHO
QEVG
QFFS
QHNA
QILO
QJON
QKKI
QKRE
QLAN
QLEH
QLHA
QLTO
QMDY
QOHE
QONA
QPLM
QPUU
QPYM
QPYN
QULA
QWLK
QXMS
QZFJ
RI06
S60
SCGR
SP00
SP01
SP02
SP03
SP04
SP05
SP06
SP07
SP08
SP09
SP10
SP11
SP12
SP13
SP14
SP15
SP16
SP17
SP18
SP19
SP20
SP21
SP22
SP23
SP24
SP25
SP26
SP27
SPRH
SYBD
SYPW
SYRI
T38
TKL
TLG1
TTL
VA48
VT57
VT58
W26
W36
W37
W49
W55
WA39
WA83
WI27
WI35
WN19
WN66
WS01
WS24
WSB
WSJ
WV35
WV37
WV38
WV39
WV40
WV41
WV42
WV43
WV44
WV46
WWT
X66
X67
X96
XCKC5
XSA
XXEI
YAIN
YAIS
YARF
YBAT
YBDA
YBEX
YBVR
YBWK
YBWS
YCGP
YCON
YCRE
YDDI
YDHM
YDLR
YDOL
YDRY
YEST
YFLF
YFLY
YFRA
YGN
YGNI
YGUU
YHC
YHED
YHOW
YHPB
YHRN
YHSR
YHYN
YJEB
YKRI
YKT
YLMI
YMBS
YMCY
YMID
YMIE
YMKH
YMRR
YMSD
YNBY
YNOI
YNOM
YOPH
YOPY
YOSI
YOYS
YPAU
YPAW
YPBM
YPBY
YPLB
YPSB
YPTD
YRAP
YRAY
YRMA
YROD
YRPT
YSAY
YSEI
YSEZ
YSHS
YSML
YSMP
YSND
YSTI
YSUD
YSYY
YTB
YTBY
YTFR
YTG
YTHO
YTND
YTRI
YUPC
YVAN
YVND
YWHN
YWLD
YWTE
YWTI
YYDY
Z20
Z33
Z43
Z58
Z59
Z71
Z78
Z87
ZNU
ZOF
X-Plane claims they have over 35,000 Airports.Yes. have 35242 airport :)
I need the following info in ByAirports.txt:My program have make read from apt.dat and have any ID "1" and have any ID "16"
All Land base airports.
All Sea plane bases.
Some Heliports (Those that are not located at an airport but like at a Hospital or on top of a building)My Airport.dat have count any heliport apt.dat. Have program check ID "17". My program not have 'remove'. I not know how decide remove. Specificate write Heliport unique and not combine land/sea port. Make sure i write my program not count helipads.
[City] City where the airport is located. Might not have a city. Some airports are in the brush. Above the arctic circle, in the middle of no where, no city assigned.Yes, my program have same. Many no city name.
[Country] All airports as far as I can determine have a country.My program airport.dat write there have airport no ID 1302 or have ID 1302 and then no have item "country" then no have name country (=nil)
[Region] Should have a Region, However those without a Region are grandfathered in as valid data by X-Plane. Some are without Regions as far as X-Plane. The International Civil Aviation Organization has the rights to assigned all airports a region, but some don't have a region.Yes. I can see my program to.
[Latitude] All are suppose to have a Latitude of the airport. Some don't and you have to use either the Tower or runway center-line.This my program big error. I have many no lat/lon and if make then many different you ByAirport.txt. I try work my program make better. I have make read how read "runway center-line" because is have Airport many runway.
[Longitude] All are suppose to have a Longitude of the airport. Some don't and you have to use either the Tower or runway center-line.
Unique record of City Region is not possible (AbileneK4) as there is a Abilene K4 8T2S an Abilene K4 KABI, and a Abiline K4 KDYS. Many cities have more than 1 airport and they would all be in the same Region.Yes i have read. That is why my program flyby have error. If have London city England and have London city America. Now my program write is same "London" (i know is error my) and no unique city. I not have make hurry and make fix. I think is no many important now (maybe later is more important).
I copied your list of 562.I make sure and write: List 562 is list ICAO that my program make and you ByAirports.txt file no have find.
You are missing ZYYY,ZYYJNo, my program have :D
[ZYYY][7105929][Shenyang][China][Nil][41.77619293][123.48947822] and quite a few more.
...
[ZYHB][6945797][Harbin][China][ZY][45.625][126.251666667]
[ZYJM][6678872][Jiamusi][China][ZY][46.841666667][130.465]
[ZYMD][7599597][Mudanjiang][China][ZY][44.523333333][129.57]
[ZYQQ][6750484][Qiqihar][China][ZY][47.238333333][123.916666667]
[ZYTL][2667556][Dalian][China][ZY][38.966666667][121.54]
[ZYTX][7274750][Shenyang][China][ZY][41.641666667][123.485]
[ZYYJ][7134994][Yanji][China][ZY][42.881666667][129.45]
[ZYYY][7105929][Shenyang][China][Nil][Nil][Nil]
ZYYY ICAO is most below line my program have write :)
I'm trying to work with your programs but I'm not very good with DOS programs and can't make it work. Built a GUI test program but can't get it to compile.Then have two option
Z20 Z33 Z43 Z58 Z59 Z71 Z78 Z87 ZNU ZOFI have 35242 more for look then take time :)
I don't see these in the posting above.
...
[Z01][7723708][Nil][Nil][Nil][Nil][Nil]
[Z04][7829328][Nil][Nil][Nil][Nil][Nil]
[Z10][7829293][Nil][Nil][Nil][Nil][Nil]
[Z13][7937010][Akiachak][United States][Nil][Nil][Nil]
[Z14][7700680][Tazlina][United States][Nil][Nil][Nil]
[Z17][7626587][Ophir][United States][Nil][Nil][Nil]
[Z20][6737744][Tuntutuliak][United States][Nil][Nil][Nil]
[Z25][6831289][Aleknagik][United States][Nil][Nil][Nil]
[Z33][6891092][Aleknagik][United States][Nil][Nil][Nil]
[Z35][6702164][Nil][Nil][Nil][Nil][Nil]
[Z38][7830993][Nil][Nil][Nil][Nil][Nil]
[Z40][1808506][Goose Bay][United States][Nil][Nil][Nil]
[Z43][7091267][Annette][United States][Nil][Nil][Nil]
[Z47][7150686][Basin Creek][United States][Nil][Nil][Nil]
[Z48][7317757][Bear Creek][United States][Nil][Nil][Nil]
[Z52][7172078][Bear Lake][United States][Nil][Nil][Nil]
[Z53][7150799][Nil][Nil][Nil][Nil][Nil]
[Z55][6977748][Lake Louise][United States][Nil][Nil][Nil]
[Z58][7577491][Bethel][United States][Nil][Nil][Nil]
[Z59][7559661][Bethel][United States][Nil][Nil][Nil]
[Z61][7343303][Nil][Nil][Nil][Nil][Nil]
[Z70][7576598][Nil][Nil][Nil][Nil][Nil]
[Z71][7560738][Cape Pole][United States][Nil][Nil][Nil]
[Z78][7231204][Chignik][United States][Nil][Nil][Nil]
[Z81][7057352][Salmon Lake][United States][Nil][Nil][Nil]
[Z86][7261409][Clearwater][United States][Nil][Nil][Nil]
[Z87][7228969][Cold Bay][United States][Nil][Nil][Nil]
[Z90][7146505][Kantishna][United States][Nil][Nil][Nil]
[Z91][7174526][Birch Creek][United States][Nil][Nil][Nil]
[Z92][7262712][Harsens Island][United States][Nil][Nil][Nil]
[Z93][7228512][Copper Center][United States][Nil][Nil][Nil]
[Z98][4191570][Zeeland][United States][K5][42.817247222][-85.928091667]
...
...
[ZMUL][5990567][Nil][Mongolia][ZM][48.994166667][89.923333333]
[ZNC][6975729][Nyac][United States][Nil][Nil][Nil]
[ZNU][7007874][Nil][Nil][Nil][51.84477329][-127.87740632]
[ZOF][7010682][Nil][Nil][Nil][52.34806244][-127.69314139]
[ZPDL][1971430][Xiaguan][China][Nil][Nil][Nil]
..
I have try, i no can make file attach to big. And then file me have many error (see paste this post many no have city, country and lat/lon). If want i can make ICAO list complete but is no magica. They all ICAO that have apt.dat. That why i write that you no have 562 ICAO and can look in program you why no find ?. I think that is logica. Is maybe possible i have make very wrong error. (i no admit and deny :-X ) :DCopied both zip to subdirectory.Lazarus project directory have 6 file:
Unziped them both.
Have 6 files.
ls -l
total 300
-rw-r--r-- 1 pi pi 137040 May 5 19:59 flybylaz.ico
-rw-r--r-- 1 pi pi 2948 May 6 01:38 flybylaz.lpi
-rw-r--r-- 1 pi pi 400 May 5 20:00 flybylaz.lpr
-rw-r--r-- 1 pi pi 139052 May 6 01:38 flybylaz.res
-rw-r--r-- 1 pi pi 1123 May 6 01:37 flyby_main.lfm
-rw-r--r-- 1 pi pi 15260 May 6 01:37 flyby_main.pas
ls -l
total 12
-rw-r--r-- 1 pi pi 11528 May 6 01:53 flyby.pas
When I click on flublaz.lpr I get the following message:Is small suggest: maybe start lazarus and load project "flybylaz.lpi" ? (that is how i do)
"flybylaz.lpr(10,10) Fatal: Cannot find flyby_main used by flybylaz of the Project Inspector."That is problem and big error. flyby_main is project main form (have form, panel, memo, button and edit).
Compile Project, Target: flybylaz.exe: Exit code 1, Errors: 1, Hints: 5As write more before. Not load project main form is error and problem. I not know why. What is version/platform you Lazarus ? (i know you have tag-line but is not always use same lazarus and tag some time expire)
Hint: Start of reading config file C:\FPC\3.0.4\bin\i386-Win32\fpc.cfg
Hint: End of reading config file C:\FPC\3.0.4\bin\i386-Win32\fpc.cfg
flyby_main.pas(139,3) Note: Local variable "s" not used
flyby_main.pas(288,4) Hint: "array of const" not yet supported inside inline procedure/function
flyby_main.pas(288,4) Hint: Inlining disabled
Error: Can't open resource file "C:\Users\Jerry\AppData\Local\Temp\Temp1_flybylaz_publish.zip\flybylaz_publish\flyby_main.lfm"
I have it running but I don't know how or why.I not know to. If have error write above then in theory impossible ... maybe you wizard ? :)
I get "E:\Files\Airports\ByAirport.txt : command not found"If run project then have main form open then make edit in editbox "flyby E:\Files\Airports\ByAirport.txt" (no quote) then push button that next editbox (is to right).
Do I need to do this in a DOS Box you know CMD Linelazarus project is run windows/desktop. That why i write because you write not know terminal. Now can have windows run small simulate terminal ;)
Yes: I typed : E:\Files\Airports\ByAirport.txt and pushed the execute button.And is wrong ;D
flyby E:\Files\Airports\ByAirport.txt
And press button.I copied the ByAirports.txt file to the directory where the flyfy is and get the same results.if copy same directory "ByAirports.txt" then can type editbox:
flyby ByAirports.txt
Looking at the code your suggesting that I copy part of the code out to a GUI New windows program and it.Yes. My program show and comment how can do.
That will take me a bit of time.For now not you have do (i have make for you in zip) :).
sed -n '4797454,+20p' apt.dat
1 5511 1 0 ZMHG Khatgal
1302 city
1302 country
1302 datum_lat 50.441388889
1302 datum_lon 100.134166667
1302 faa_code
1302 iata_code
1302 icao_code ZMHG
1302 region_code ZM
1302 state
1302 transition_alt 10499
1302 transition_level
100 35.00 2 0 0.50 0 1 1 15 50.44968173 100.12729071 0 110 2 0 0 0 33 50.43036657 100.14203570 0 38 2 0 0 0
100 25.00 5 0 0.75 0 0 1 16 50.44324210 100.13571124 0 0 2 0 0 0 34 50.43055660 100.14265402 0 0 2 0 0 0
110 2 0.50 302.8900 New Taxiway 1
111 50.44418478 100.13549750
111 50.44662872 100.12959735
111 50.44615845 100.13004682
111 50.44399104 100.13524242
111 50.44335146 100.13637160
111 50.44396626 100.13726546
I can't figure out what the line is doing.
Attached 3 Screen Shots.I sorry. i no see screenshot.... maybe you forget attach ?
In procedure RunCommandLine it goes from Line 13 to 23 no matter what I enter.Is what write user lucamar.
I can't figure out what the line is doing.
Attached 3 Screen Shots.I sorry. i no see screenshot.... maybe you forget attach ?QuoteIn procedure RunCommandLine it goes from Line 13 to 23 no matter what I enter.Is what write user lucamar.
I can't figure out what the line is doing.
Other place in source make commandlist:That mean CommandList (TStringList) have add item string read 'flyby' and Object of line have pointer procedure flyby.
procedure TTermiForm.FormCreate(Sender: TObject); begin // make setup .. have remove for write forum look in zip for see. // have command list CommandList := TStringList.Create; CommandList.AddObject('flyby', TObject(@flyby)); end;
If press button:Then is call RunCommandLine(...)
procedure TTermiForm.RunButtonClick(Sender: TObject); begin // make action (Sender as TButton).Enabled := false; // Make button disable (is possible run 1 command, not many) RunCommandLine(ParameterEdit.Text); // RunCommandLine and have ParameterEdit.Text for "command-line" (Sender as TButton).Enabled := true; // If command have run then have button enable and can run other command end;
Then i make write more RunCommandLine:
procedure TTermiForm.RunCommandLine(CommandLine: string); var index : SizeInt; s : string; begin // have line command enter edit print Memo PrintLine(' $ ' + CommandLine); // have make ParameterList empty (ParameterList type TStringArray) ParameterList := nil; // Have split line command. // Make split use space, #8,#9,#10,#13 and no split quote part double quote. // Split is all most work same ExtractWord() ParameterList := CommandLine.Split([' ',#8,#9,#10,#13], '"'); // ParameterList now can have many parts. First part have command. Other part after have (many) parameter. // If have ParameterEdit.Text empty then ParameterList empty // ParameterList empty or no empty ? if Length(ParameterList) > 0 then // is no empty ... begin // .. then have "command" find in CommandList index := CommandList.IndexOf(ParameterList[0]); // ParameterList[0] = Split item first and mean "command". // is find "command" ? (is from ParameterEdit) if (index >= 0) then // Yes, is find command .... begin // ... then have execute command TProcedure(CommandList.Objects[index])(); end // If index < 0 then IndexOf not have find "command" and print error else PrintLine(ParameterList[0] + ' : command not found'); end // if Length(ParameterList) <= 0 then have empty ParameterEdit then have press button. Is mean "command" empty else PrintLine('Empty command'); end;
What is more no understand ? I happy write explain :)
Add: have write more explain.
Can't attach too big.Have copy-paste Memo ?
Ok, user JLWest me send picture private.
Then i write conclude:
- program flybylaz executable locate: F:\CodeLib\Flyby\flybylaz_publish\flybylaz.exe
- file airport locate: F:\CodeLib\Flyby\ByAirport.txt
- JLWest user start my program and make write edit: F:\CodeLib\Flyby\byairport.txt then button click
- Then FlyByLaz program write: command not found
How make work:
- Make sure file airport locate: F:\CodeLib\Flyby\ByAirport.txt
- start flybylaz program
- write Edit box: flyby F:\CodeLib\Flyby\byairport.txt
- click button
Is that work JLWest ?
Ok, user JLWest me send picture private.
Then i write conclude:
- program flybylaz executable locate: F:\CodeLib\Flyby\flybylaz_publish\flybylaz.exe
- file airport locate: F:\CodeLib\Flyby\ByAirport.txt
- JLWest user start my program and make write edit: F:\CodeLib\Flyby\byairport.txt then button click
- Then FlyByLaz program write: command not found
How make work:
- Make sure file airport locate: F:\CodeLib\Flyby\ByAirport.txt
- start flybylaz program
- write Edit box: flyby F:\CodeLib\Flyby\byairport.txt
- click button
Is that work JLWest ?
Make sure file airport locate: F:\CodeLib\Flyby\ByAirport.txt
Look at the screen .PNG's from my GDrive.
I sent the link via a private message.
GDrive link of the following:Yes thanksy for picture. I have see many time.
https://drive.google.com/open?id=1RgTBOWDfciSqyUeyBc2nTb3-QEmKa9_Q
Go to Cmd (Dos Box)No ;D
CD F:
F:\>cd Codelib\Flyby
F:\Codelib\flyby>Dir
Shows:
Volume in drive F is Storage
Volume Serial Number is 34B9-7BA5
Directory of F:\CodeLib\Flyby
05/07/2019 05:00 PM <DIR> .
05/07/2019 05:00 PM <DIR> ..
05/05/2019 12:25 AM 2,383,288 ByAirport.txt <------- File Same dir as program
05/06/2019 01:53 AM 11,528 flyby.pas
05/07/2019 08:25 AM 15,848 flyby.txt
05/05/2019 09:57 PM 3,433 flybyfpc_publish.zip
05/07/2019 08:43 AM <DIR> flybylaz_publish <------------ this directory program flybylaz lazarus
Step 2:Yes :)
- start flybylaz program
See .png on GDrive.
convert to program and I will try to run in dos box (Not windows program)I sorry and write if can you no make work lazarus flybylaz then can also no make work command-line flyby version. Is make start same.
I Show:Country count is ok if no count nil :).
7,970,312 in Apt.txt
1,421 Cities
258 Countries
7,970,312 in Apt.txt
[u]1,421 Cities[/u]
258 Countries
....then have package.zip show good count ICAO/Airport, Country and City ? (*)