void CAtkisSatz::ALK_Punktdaten( const char* daten ) { CString buffer = daten; CString temp; short n, i; // Int4 + Int4 überlesen buffer = buffer.Mid( 8 ); // Punktverwaltungsdatengruppe!!! temp = buffer.Left( 8 ); buffer = buffer.Mid( 8 ); KommNL( "ALK_Punktdaten:", 3 ); Kommentar( "Nummerierungsbezirk: ", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 6 ); buffer = buffer.Mid( 6 ); Kommentar( "Punktart: ", 3 ); KommNL( temp.Left( 1 ), 3 ); Kommentar( "Punktnummer: ", 3 ); KommNL( temp.Mid( 1 ), 3 ); temp = buffer.Left( 2 ); buffer = buffer.Mid( 2 ); Kommentar( "Prüfzeichen: ", 3 ); KommNL( temp.Left( 1 ), 3 ); Kommentar( "Punktstatus: ", 3 ); KommNL( temp.Right( 1 ), 3 ); temp = buffer.Left( 7 ); buffer = buffer.Mid( 7 ); Kommentar( "Zuständige Stelle: ", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); Kommentar( "Aktualität/spezielle Aktualität: ", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 7 ); buffer = buffer.Mid( 7 ); Kommentar( "Vermarkungsart, Bemerk.: ", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 15 ); buffer = buffer.Mid( 15 ); Kommentar( "Entstehung: ", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 15 ); buffer = buffer.Mid( 15 ); Kommentar( "Untergang: ", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 1 ); buffer = buffer.Mid( 1 ); Kommentar( "Kennung für Bemerkungen: ", 3 ); KommNL( temp, 3 ); // Lagedatengruppen temp = buffer.Left( 4 ); // Endekennung "0000" buffer = buffer.Mid( 4 ); temp = buffer.Left( 4 ); // Anzahl Lagedatengruppen buffer = buffer.Mid( 4 ); n = atoi( temp ); Kommentar( "Anzahl Lagedatengruppen: ", 3 ); KommNL( n, 3 ); for ( i = 0; i < n; i++ ) { temp = buffer.Left( 3 ); buffer = buffer.Mid( 3 ); Kommentar( "Lagestatus: ", 3 ); Kommentar( temp, 3 ); if ( temp == "489" ) KommNL( " (amtl. Bezugssystem der Lage ETRS89)", 3 ); else if ( temp == "150" ) KommNL( " (Bezugssystem der Lage 42/83)", 3 ); else KommNL( " (unbekanntes Bezugssystem)", 3 ); temp = buffer.Left( 10 ); buffer = buffer.Mid( 10 ); Kommentar( "Rechtswert: ", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 10 ); buffer = buffer.Mid( 10 ); Kommentar( "Hochwert: ", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 9 ); buffer = buffer.Mid( 9 ); Kommentar( "Art der Lagegenauigkeit: ", 3 ); KommNL( temp.Left( 1 ), 3 ); Kommentar( "Wert der Lagegenauigkeit: ", 3 ); KommNL( temp.Mid( 1 ), 3 ); temp = buffer.Left( 1 ); buffer = buffer.Mid( 1 ); Kommentar( "Lagezuverlässigkeit: ", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 3 ); buffer = buffer.Mid( 3 ); Kommentar( "Jahr der Berechnung: 1", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 9 ); buffer = buffer.Mid( 9 ); Kommentar( "Aktenhinweis: ", 3 ); KommNL( temp, 3 ); } temp = buffer.Left( 4 ); // Anzahl Höhendatengruppen buffer = buffer.Mid( 4 ); n = atoi( temp ); Kommentar( "Anzahl Höhendatengruppen: ", 3 ); KommNL( n, 3 ); for ( i = 0; i < n; i++ ) { temp = buffer.Left( 3 ); buffer = buffer.Mid( 3 ); Kommentar( "Höhenstatus: ", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 8 ); buffer = buffer.Mid( 8 ); Kommentar( "Höhenangabe: ", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 5 ); buffer = buffer.Mid( 5 ); Kommentar( "Jahr/Monat der Höhenmessung: 1", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 5 ); buffer = buffer.Mid( 5 ); Kommentar( "Art der Höhengenauigkeit: ", 3 ); KommNL( temp.Left( 1 ), 3 ); Kommentar( "Wert der Höhengenauigkeit: ", 3 ); KommNL( temp.Mid( 1 ), 3 ); temp = buffer.Left( 1 ); buffer = buffer.Mid( 1 ); Kommentar( "Höhenzuverlässigkeit: ", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 3 ); buffer = buffer.Mid( 3 ); Kommentar( "Jahr der Berechnung: 1", 3 ); KommNL( temp, 3 ); temp = buffer.Left( 9 ); buffer = buffer.Mid( 9 ); Kommentar( "Aktenhinweis: ", 3 ); KommNL( temp, 3 ); } if ((( n > 0 ) && ( buffer == "000000000000" )) || (( buffer == "00000000" ) && ( n == 0 ))) { KommNL( "Daten korrekt abgeschlossen!", 3 ); } else { KommNL( "Syntaxfehler!", 3 ); Kommentar( "Rest: >", 3 ); Kommentar( buffer, 3 ); KommNL( "<", 3 ); } }
void CAtkisSatz :: ALK_Daten( const char *daten ) { CString buffer = daten; CString temp; short i, j, n; CKoordPaar k; CString art; CLinie *L; CObjekt *O; CInfo *I; // Int4 + Int4 überlesen buffer = buffer.Mid( 8 ); GrundrissKennDaten( buffer ); // StartKoord + Prüfzeichen gelesen buffer = buffer.Mid( 21 ); // Linienzahl prüfen temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); n = atoi( temp ); for ( i = 0; i < n; i++ ) { temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); if ( atoi( temp ) != 1 ) { m_bGueltig = FALSE; Kommentar( "Syntaxfehler: Erwartet 0001, gefunden ", 3 ); KommNL( temp, 3 ); return; } L = new CLinie; if ( !L ) { m_bGueltig = FALSE; KommNL( "Nicht genug Speicher!", 3 ); return; } CString strLinieInfo( buffer ); j = L -> LesenALK( buffer ); if ( j ) buffer = buffer.Mid( j ); /*// Herausfiltern Linienteilung == 0 if ( L -> FktZahl()) { CString sollteilung, space; sollteilung = "0"; space = " "; if ( L -> Funktion(0)) if (( L -> Funktion(0) -> LinienTeilung1() != sollteilung ) && ( L -> Funktion(0) -> LinienTeilung1() != space )) L -> Gueltig() = FALSE; if ( L -> Funktion(0)) if (( L -> Funktion(0) -> LinienTeilung2() != sollteilung ) && ( L -> Funktion(0) -> LinienTeilung2() != space )) L -> Gueltig() = FALSE; } */ if ( L -> Gueltig()) m_Linien.Add( L ); else { KommNL( "Ungültige Linie! (ALK-Daten)", 3 ); KommNL( "Dump1:", 3); KommNL( daten, 3 ); KommNL( "Dump2:", 3); KommNL( strLinieInfo, 3 ); delete L; } } // Objektzahl prüfen temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); n = atoi( temp ); if ( n ) { for ( i = 0; i < n; i++ ) { temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); if ( atoi( temp ) != 1 ) { m_bGueltig = FALSE; Kommentar( "Syntaxfehler: Erwartet 0001, gefunden ", 3 ); KommNL( temp, 3 ); return; } O = new CObjekt; if ( !O ) { m_bGueltig = FALSE; KommNL( "Nicht genug Speicher!", 3 ); return; } j = O -> LesenALK( buffer ); if ( j ) buffer = buffer.Mid( j ); if ( O -> Gueltig()) m_Objekte.Add( O ); else { KommNL( "Ungültiges Objekt!", 3 ); delete O; } } // Besondere Infos prüfen temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); n = atoi( temp ); for ( i = 0; i < n; i++ ) { temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); if ( atoi( temp ) != 1 ) { m_bGueltig = FALSE; Kommentar( "Syntaxfehler: Erwartet 0001, gefunden ", 3 ); KommNL( temp, 3 ); return; } I = new CInfo; if ( !I ) { m_bGueltig = FALSE; KommNL( "Nicht genug Speicher!", 3 ); return; } j = I -> LesenALK( buffer ); if ( j ) buffer = buffer.Mid( j ); if ( I -> Gueltig()) m_Infos.Add( I ); else { KommNL( "Ungültige Info!", 3 ); delete I; } } } m_bObjektDaten = TRUE; } // ALK_Daten
#include "Kante.h" #include "Knoten.h" #include "Graph.h" Kante::Kante( Graph^ graph_init,Knoten^ knoten_begin,Knoten^ knoten_ending,int gerichtet_init,KantenFormat shape_init ) { knoten_start=knoten_begin; knoten_start->add_edge(this); knoten_end=knoten_ending; knoten_end->add_edge(this); gerichtet=gerichtet_init; shape=shape_init; string_wertung=""; owning_graph=graph_init; comment=gcnew Kommentar(); aid_line=false; } Kante::~Kante() { delete comment; knoten_start->deleted_edge(this); if (knoten_start != knoten_end) //falls Kante=Schleife { knoten_end->deleted_edge(this); } if (owning_graph) owning_graph->deleted_edge(this);
void CAtkisSatz :: ObjektDaten( const char *daten ) { CString buffer = daten; CString temp; short i, j, n; CKoordPaar k; CString art; CLinie *L; CObjekt *O; CInfo *I; // Int4 + Int4 überlesen buffer = buffer.Mid( 8 ); GrundrissKennDaten( buffer ); // StartKoord + Prüfzeichen gelesen buffer = buffer.Mid( 21 ); // Linienzahl prüfen temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); n = atoi( temp ); for ( i = 0; i < n; i++ ) { temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); if ( atoi( temp ) != 1 ) { m_bGueltig = FALSE; Kommentar( "Syntaxfehler: Erwartet 0001, gefunden ", 3 ); KommNL( temp, 3 ); return; } L = new CLinie; if ( !L ) { m_bGueltig = FALSE; KommNL( "Nicht genug Speicher!", 3 ); return; } CString strLinieInfo( buffer ); j = L -> Lesen( buffer ); if ( j ) buffer = buffer.Mid( j ); if ( L -> Gueltig()) m_Linien.Add( L ); else { KommNL( "Ungültige Linie! (ATKIS-Daten)", 3 ); KommNL( strLinieInfo, 3 ); delete L; } } // Objektzahl prüfen temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); n = atoi( temp ); if ( n ) { for ( i = 0; i < n; i++ ) { temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); if ( atoi( temp ) != 1 ) { m_bGueltig = FALSE; Kommentar( "Syntaxfehler: Erwartet 0001, gefunden ", 3 ); KommNL( temp, 3 ); return; } O = new CObjekt; if ( !O ) { m_bGueltig = FALSE; KommNL( "Nicht genug Speicher!", 3 ); return; } j = O -> Lesen( buffer ); if ( j ) buffer = buffer.Mid( j ); if ( O -> Gueltig()) m_Objekte.Add( O ); else { KommNL( "Ungültiges Objekt!", 3 ); delete O; } } // Besondere Infos prüfen temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); n = atoi( temp ); for ( i = 0; i < n; i++ ) { temp = buffer.Left( 4 ); buffer = buffer.Mid( 4 ); if ( atoi( temp ) != 1 ) { m_bGueltig = FALSE; Kommentar( "Syntaxfehler: Erwartet 0001, gefunden ", 3 ); KommNL( temp, 3 ); return; } I = new CInfo; if ( !I ) { m_bGueltig = FALSE; KommNL( "Nicht genug Speicher!", 3 ); return; } j = I -> Lesen( buffer ); if ( j ) buffer = buffer.Mid( j ); if ( I -> Gueltig()) m_Infos.Add( I ); else { KommNL( "Ungültige Information!", 3 ); delete I; } } } m_bObjektDaten = TRUE; } // ObjektDaten
KnotenRund::KnotenRund(void) { radius=10; edges=gcnew List<Kante^>(); comment=gcnew Kommentar(); }