Habe mal eine .csv File (42702 Einträge) zu einer MEGA - .json - File konvertiert. Mit diesem kleinen Programm kann man die Einträge des jeweiliges Bezirks lesen. Mit einem Klick auf die Listbox mit den Bezirken werden in der Gridbox die entsprechenden Bundesstaaten mit dem Zipcode angezeigt.
Declare String datei, bezirke, spalten, item
Declare Handle btn1, grid, lb
Declare Long ende, js ,xs
bezirke = "NH,NY,PR,VI,MA,RI,ME,VT,CT,NJ,AE,PA,DE,DC,VA,MD,WV,NC,SC,\
GA,FL,AA,AL,TN,MS,KY,OH,IN,MI,IA,WI,MN,SD,ND,MT,IL,MO,KS,NE,LA,AR,OK,\
TX,CO,WY,ID,UT,AZ,NM,NV,CA,AP,HI,AS,GU,PW,FM,MP,MH,OR,WA,AK"
spalten = "Bezirk;0;60;Bundes-Staat;0;120;Zip-Code;0;100"
ende = 0
datei = "F:\ZipCodes.Json"' ***************** PFAD ANPASSEN ***************************
WindowTitle "US-ZipCodes (Postleitzahlen) USA"
Window 600, 400
btn1 = Create("Button", %HWnd, "Ende", 10, 10, 60, 25)
grid = Create("GridBox", %HWnd, spalten, 0, 10, 50, 300, 200)
Create("Text", %HWnd, "vorhandene Bezirke", 400, 25, 140, 25)
lb = Create("Listbox", %HWnd, 1, 400, 50, 60, 200)
InitListbox()
If FileExists(datei)
js = Create("Json", datei)
Else
MessageBox("Keine File ZipCodes.Json vorhanden", "Fehler", 0)
End
EndIf
WhileNot ende
WaitInput
If Clicked(btn1)
ende = 1
ElseIf Clicked(lb)
item = GetString$(lb, GetCurSel(lb))
If item <> ""
Suchen(item)
EndIf
EndIf
EndWhile
Proc InitListbox
ClearList
Move("StrToList", bezirke, ",")
Move("ListToHandle", lb)
EndProc
Proc Suchen
Parameters String item
Declare Hash eintrag[], String Schluessel, Wert, Long i
WhileLoop 0, Json("Count", js) - 1
If Json("Name", js, &LOOP) = item
xs = Json("GetObject", js, item)
eintrag[] = Json("Hash", xs)
ClearList grid
ForEach eintrag[], Schluessel, Wert
AddString(grid, item + "|" + Wert + "|" + Schluessel)
EndFor
Break
EndIf
EndWhile
EndProc
End
Ist ja erstaunlich, wie schnell JSON da ist. Bitte Dateipfad entsprechend ändern. |