Exemplo n.º 1
0
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 );
	}
}
Exemplo n.º 2
0
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
Exemplo n.º 3
0
#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);
Exemplo n.º 4
0
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
Exemplo n.º 5
0
KnotenRund::KnotenRund(void)
{
	radius=10;
	edges=gcnew List<Kante^>();
	comment=gcnew Kommentar();
}