Prototyp und Beschreibung der Funktion convntvascii2bin() (Funktion der freischaltpflichtigen Gruppe "NTv2-Werkzeuge") |
convntvascii2bin() ASCII-Datei mit NTv2 Gitterdaten in Binärdatei konvertieren. Prototyp der DLL-Funktion in C++ Syntax (Kleinschreibung beachten!): extern "C" __declspec(dllimport) unsigned long __stdcall convntvascii2bin( const char *pszFileAscii, const char *pszFileBinary); Prototyp der DLL-Funktion in Visual Objects Syntax: _DLL function convntvascii2bin(; pszFileAscii as psz,; // 4 Byte, char* pszFileBinary as psz); // 4 Byte, char* as logic pascal:geodll32.convntvascii2bin // 4 Byte Die Funktion konvertiert eine ASCII-Datei mit NTv2 Gitterdaten in eine effizientere Binärdatei, die für den Bezugssystemwechsel mittels Gitter- Shiftdaten verwendet werden kann. NTv2-ASCII-Dateien mit Syntaxfehlern werden von GeoDLL mit einer Fehler- meldung abgelehnt. Sie können die von GeoDLL unterstützten NTv2-Dateien direkt von der KilletSoft Internetseite "http://www.killetsoft.de/p_gdln_d.htm#download" herunterladen oder dort die Verweise zu den Originalquellen verwenden. Auf der Internetseite finden Sie auch eine ausführliche Beschreibung des NTv2-Standards. Nach dem Entpacken der ZIP-komprimierten Daten liegen diese entweder im ASCII-Format oder bereits im Binärformat vor. Um eine NTv2-ASCII-Datei mit GeoDLL-Funktionen nutzen zu können, muss sie zunächst in das wesentlich effizientere und kompaktere Binärformat umgerechnet werden. Die Umrechnung kann einige Sekunden oder Minuten dauern. Mit der Funktion convntvascii2bin() können Sie eine NTv2-ASCII-Datei in eine NTv2-Binärdatei umrechnen. Da die Funktion wegen der umfangreichen Berechnungen zeitintensiv ist, kann mit der Funktion seteventloop() die Event-Bearbeitung während der Berechnung durch Unterbrechung der Bearbeitungsschleife zugelassen werden. Die Dateinamen der NTv2-ASCII-Datei und der zu erzeugenden NTv2-Binärdatei dürfen jeweils einen Laufwerksbuchstaben und eine Verzeichniskette enthalten. Die NTv2-ASCII-Datei darf eine beliebige Dateinamenserweiterung haben. Die erzeugte Binärdatei sollte die Dateinamenserweiterung ".gsb" haben. Beispiel: ASCII-Datei "c:\programm_ntv2\ascii\BeTA2007.gsa" Binärdatei "c:\programm_ntv2\binaer\BeTA2007_gen.gsb" Achtung, in C-Syntax müssen doppelte Backslashes verwendet werden! Die Parameter werden folgendermaßen übergeben bzw. zurückgegeben: pszFileAscii Dateiname der zu konvertierenden NTv2-ASCII-Datei. Der Dateiname darf einen Laufwerksbuchstaben, eine Verzeichniskette und eine Dateinamenserweiterung enthalten. pszFileBinary Dateiname der zu erzeugenden NTv2-Binärdatei. Der Dateiname darf einen Laufwerksbuchstaben und eine Verzeichniskette enthalten. Der Dateiname sollte die Dateinamenserweiterung ".gsb" haben. returnWert Im Fehlerfall gibt die Funktion FALSE zurück, sonst TRUE. Abweichungen vom NTv2-Standard innerhalb der NTv2-ASCII-Datei: 1. Hinter dem Zeichen # stehender Inhalt wird als Kommentar interpretiert und ignoriert. 2. Die maximale Zeilenlänge inklusiv Kommentar und CRLF beträgt 82 Zeichen. 3. Whitespace-Zeichen werden zur Trennung von Werten innerhalb der Zeile verwendet. Führende und anhängende Whitespace-Zeichen werden ignoriert. 4. Leerzeilen werden überlesen. Das wird gemacht, nachdem ein in der Zeile enthaltene Kommentar und alle führenden und anhängenden Whitespace- Zeichen entfernt worden sind. 5. Zeilen mit Gittermaschen-Einträgen enthalten vier Fließkomma-Werte: Shift-Breite Shift-Länge [Genauigkeit-Breite Genauigkeit-Länge]. Wenn die Genauigkeiten nicht in der Zeile enthalten sind, werden sie mit 0.0 vorbelegt. 6. GeoDLL unterstützt Polygonale Gültigkeitsbereiche. Dazu können Gittermaschen-Zeilen die exopolygonalen Einträge -99/-99 in ihren Shift- oder Genauigkeitswerten enthalten. Detaillierte Informationen finden Sie im Hilfe-Kapitel "Polygonale Gültigkeitsbereiche". Freischaltung: Die Funktion ist Bestandteil der freischaltpflichtigen Funktionsgruppe "NTv2-Werkzeuge". Sie wird zusammen mit den anderen Funktionen der Gruppe durch die Eingabe der bei der Vertriebsfirma erworbenen Freischaltparameter per Aufruf der Funktion setunlockcode() zur uneingeschränkten Nutzung frei geschaltet. Ohne die Freischaltung sind mit dieser Funktion keine Funktions- aufrufe zu Testzwecken (Sharewareprinzip) möglich. |