Hinweis: Dies ist die vollständige deutsche Übersetzung des Kapitels. Codebeispiele sind sprachunabhängig gültig.
Der wahre Leistungsumfang von Harbour zeigt sich in den zahlreichen Zusatzbibliotheken. Dieses Kapitel beschreibt, wie man mit ihnen arbeitet, Projekte aufbaut und moderne Formate wie JSON und XML verarbeitet.
hbmk2
ist das offizielle Build-Tool für Harbour – es automatisiert Kompilierung, Linken, Abhängigkeitsmanagement und Cross-Plattform-Unterstützung.
hbmk2 meinprogramm.prg
hbmk2 meinprogramm.prg -lhbcurl
Für komplexere Projekte empfiehlt sich eine `.hbp`-Datei:
meinprogramm.prg
utils.prg
reports.prg
-lhbcurl
-lhbzip
-w3 -es2
hbmk2 meinprojekt.hbp
Harbour unterstützt JSON nativ über:
hb_jsonEncode()
→ Harbour → JSONhb_jsonDecode()
→ JSON → Harbour
LOCAL hData := { => }
hData["name"] := "Max"
hData["aktiv"] := .T.
hData["kurse"] := { "Harbour", "SQL" }
LOCAL cJson := hb_jsonEncode(hData)
? cJson
? hb_jsonDecode(cJson)["kurse"][1] // → "Harbour"
XML-Verarbeitung erfolgt über die hbexpat
-Bibliothek (eventbasiert, wie SAX):
hbmk2 myxml.prg -lhbexpat
Parser erzeugen und Ereignisse behandeln:
oParser := hb_expat_Create()
oParser:startElementHandler := { |o, tag, attr| QOut("Start:", tag) }
oParser:characterDataHandler := { |o, text| QOut("Text:", text) }
oParser:endElementHandler := { |o, tag| QOut("Ende:", tag) }
oParser:Parse( MemoRead("daten.xml") )
oParser:Destroy()
Ideal für große XML-Dateien, da speicherschonend.