ftp.nice.ch/pub/next/database/plz/NXplz.1.1.NIHS.bs.tar.gz#/NXplz-1.1/xplz.h

This is xplz.h in view mode; [Download] [Up]

/* $Id: xplz.h,v 2.6 1993/06/28 09:31:07 klute Exp klute $ */

/* 
 * Copyright 1993 Rainer Klute <klute@irb.informatik.uni-dortmund.de>
 *
 * Permission to use, copy, modify, distribute, and sell this software and
 * its documentation for any purpose is hereby granted without fee, provided
 * that the above copyright notice appear in all copies and that both that
 * copyright notice and this permission notice appear in supporting
 * documentation. The author makes no representations about the suitability
 * of this software for any purpose. It is provided "as is" without express
 * or implied warranty.
 *
 */

#if !defined (XPLZ_H)
#define XPLZ_H

/*
 * Beschreibung der Leitdateien der Deutschen Bundespost Postdienst. Die
 * folgenden Strukturen entsprechen dem Aufbau der Leitdateien.
 */

typedef struct Umsda
{
    char ala[8];            /* Schlüssel der Postanstalt */
    char satzalt[3];        /* Satzart des alten PLZ-Pflegeverfahrens */
    char plz_w_o[1];        /* Unterscheidung Verkehrsgebiet West/Ost */
    char plzalt[4];         /* alte vierstellige PLZ */
    char ortname_a[40];     /* Ortsname (alt) */
    char ortzusa[30];       /* Zusatzbezeichnung ("am Main" bei Frankfurt) */
    char oname_sort_a[40];  /* Ortsname (alt) als Sortierfeld (nur
                               Großbuchstaben, Umlaute aufgelöst, keine
                               Sonderzeichen */
    char geschl[8];         /* Gemeindeschlüssel */
    char filler[1];
    char nplzo_z[1];        /* Anzahl der neuen zustellbezogenen PLZ im Ort
                               0: keine neue PLZ
                               1: eine neue PLZ
                               2: mehrere neue PLZ, siehe Straßenverzeichnis */
    char nplzo_p[1];        /* Anzahl der neuen postfachbezogenen PLZ im Ort
                               0: keine neue PLZ
                               1: eine neue PLZ
                               2: mehrere neue PLZ, siehe Postfachverzeichnis */
    char npanst_a[3];       /* Nummer des Zustellpostamtes */
    char zpanst_a[40];      /* Ortsname des Zustellpostamtes bei Zustellung
                               von einem anderen Ort */
    char nzpanst_a[3];      /* Nummer des Zustellpostamtes bei Zustellung
                               von einem anderen Ort */
    char alort[8];          /* Ortsschlüssel zum Zugriff auf Straßen- oder
                               Postfachdatei */
    char ortname_n[40];     /* neuer mit Einführung der neuen PLZ gültiger
                               Ortsname. Beispiel: Berlin-Adlershof -> Berlin */
    char oname_sort_n[40];  /* Ortsname als Sortierfeld */
    char oname24_n[24];     /* 24stellige Abkürzung des Ortsnamens */
    char nplz_z[1];         /* Anzahl der neuen zustellbezogenen PLZ zur
                               Postanstalt (s. o.) */
    char plz_z[5];          /* einzige zustellbezogene PLZ zur Postanstalt */
    char nplz_p[1];         /* Anzahl der neuen postfachbezogenen PLZ zur
                               Postanstalt (s. o.) */
    char plz_p[5];          /* einzige postfachbezogene PLZ zur Postanstalt */
    char crlf[2];
}
Umsda;



typedef struct Ortarda
{
    char ala[8];            /* Schlüssel der Postanstalt */
    char satzalt[3];        /* Satzart des alten PLZ-Pflegeverfahrens */
    char plz_w_o[1];        /* Unterscheidung Verkehrsgebiet West/Ost */
    char plzalt[4];         /* alte vierstellige PLZ */
    char ortname_a[40];     /* Ortsname (alt) */
    char oname_sort_a[40];  /* Ortsname (alt) als Sortierfeld (nur
                               Großbuchstaben, Umlaute aufgelöst, keine
                               Sonderzeichen */
    char npanst_a[3];       /* Nummer des Zustellpostamtes */
    char zpanst_a[40];      /* Ortsname des Zustellpostamtes bei Zustellung
                               von einem anderen Ort */
    char nzpanst_a[3];      /* Nummer des Zustellpostamtes bei Zustellung
                               von einem anderen Ort */
    char aejahr[2];         /* Jahr des Zugangs ins Archiv */
    char aemonat[2];        /* Monat des Zugangs ins Archiv */
    char alort[8];          /* Ortsschlüssel des aktuellen Ortes zum Zugriff
                               auf Straßen- oder Postfachdatei */
    char ortname_n[40];     /* neuer mit Einführung der neuen PLZ gültiger
                               Ortsname. Beispiel: Berlin-Adlershof -> Berlin */
    char oname_sort_n[40];  /* Ortsname als Sortierfeld */
    char oname24_n[24];     /* 24stellige Abkürzung des Ortsnamens */
    char nplz_z[1];         /* Anzahl der neuen zustellbezogenen PLZ zur
                               Postanstalt (s. o.) */
    char plz_z[5];          /* einzige zustellbezogene PLZ zur Postanstalt */
    char nplz_p[1];         /* Anzahl der neuen postfachbezogenen PLZ zur
                               Postanstalt (s. o.) */
    char plz_p[5];          /* einzige postfachbezogene PLZ zur Postanstalt */
    char crlf[2];
}
Ortarda;



typedef struct Strada
{
    char alort[8];          /* Schlüssel des Ortes, der in der Zustellanschrift
                               erscheint, oder der Gemeinde, in der die Straße
                               liegt */
    char geschl[8];         /* Gemeindeschlüssel */
    char snamesort[46];     /* Straßenname als Sortierfeld */
    char strlfdnr[2];       /* laufende Nummer bei Namengleichheit mehrerer
                               Straßen */
    char sname[46];         /* Straßenname in Groß-/Kleinschreibung */
    char abkstr[23];        /* 23stellige Abkürzung des Straßennamens */
    char anzgleist[1];      /* Anzahl der gleichnamiger Straßen
                               1: nur eine Straße dieses Namens
                               2: mehrere Straßen dieses Namens */
    char nplz_z[1];         /* Anzahl der neuen zustellbezogenen PLZ für die
                               Straße
                               1: nur eine PLZ in der Straße
                               2: mehrere PLZ in der Straße */
    char hnrkenn[1];        /* 0: durchgehender Hausnummernbereich
                               1: gerader Hausnummernbereich
                               2: ungerader Hausnummernbereich */
    char hnr1von[4];        /* Hausnummern von (numerischer Teil) */
    char hnr2von[4];        /* Hausnummern von (Zusatz) */
    char hnr1bis[4];        /* Hausnummern bis (numerischer Teil) */
    char hnr2bis[4];        /* Hausnummern bis (Zusatz) */
    char plz_z[5];          /* neue zustellbezogene PLZ des Straßenabschnitts
                               oder der gesamten Straße */
    char alort_g[8];        /* "alort" der Gemeinde, zu der die Straße gehört;
                               leer, wenn "alort_g" = "alort" */
    char alort_p[8];        /* Schlüssel des Ortes, der in der Zustelladresse
                               erscheint; leer, wenn "alort_p" = "alort" */
    char ortsteil[40];      /* Ortsteil, zu dem der Straßenabschnitt gehört */
    char plz_w_o[1];        /* Unterscheidung Verkehrsgebiet */
    char plzalt[4];         /* alte vierstellige PLZ */
    char npanst[3];         /* Nummer der Zustellpostanstalt (alt) */
    char crlf[2];
}
Strada;



typedef struct Pofada
{
    char alort[8];          /* Schlüssel des Ortes */
    char npanst[3];         /* Nummer der Ausgabepostanstalt */
    char plz_w_o[1];        /* Unterscheidung Verkehrsgebiet */
    char plzalt[4];         /* alte vierstellige PLZ */
    char pfnrvon[6];        /* Postfachnummer von */
    char pfnrbis[6];        /* Postfachnummer bis */
    char plzneu_p[5];       /* neue fünfstellige PLZ */
    char crlf[2];
}
Pofada;



typedef struct UmsdaSet
{
    int entries;
    Umsda *list;
}
UmsdaSet;



typedef struct OrtardaSet
{
    int entries;
    Ortarda *list;
}
OrtardaSet;



typedef struct StradaSet
{
    int entries;
    Strada *list;
}
StradaSet;



typedef struct PofadaSet
{
    int entries;
    Pofada *list;
}
PofadaSet;




typedef enum
{
    PlzSucheOrt,
    PlzOrtGefunden,
    PlzOrtNichtGefunden,           /* Ort eingeben */
    PlzOrtMehrdeutig,              /* PLZ (alt) eingeben */
    PlzPlzAltGeaendert,            /* PLZ (alt) eingeben */
    PlzOrtEindeutig,
    PlzPostanstaltBenoetigt,
    PlzStrassePostfachBenoetigt,   /* Straße oder Postfach eingeben */
    PlzSucheStrasse,
    PlzStrasseGefunden,
    PlzStrasseNichtGefunden,       /* Straße korrigieren */
    PlzStrasseEindeutig,
    PlzStrasseMehrfachInOrt,       /* Postanstalt oder Ortsteil eingeben */
    PlzStrasseMehrfachInPostanstalt, /* Ortsteil eingeben */
    PlzStrasseMehrfachInOrtsteil,  /* Postanstalt eingeben */
    PlzHausnummerBenoetigt,        /* Hausnummer eingeben */
    PlzHausnummerNichtGefunden,    /* Hausnummer korrigieren */
    PlzSuchePostfach,
    PlzPostfachGefunden,
    PlzPostfachNichtGefunden,      /* Postfach korrigieren */
    PlzPostfachMehrfachInOrt,      /* Postanstalt oder PLZ (alt) eingeben */
    PlzPostfachMehrfachInPostanstalt, /* PLZ (alt) eingeben */
    PlzPostfachMehrfachInPlz,      /* Postanstalt eingeben */
    PlzPlzNeuGefunden,             /* fertig */
    PlzFehler,
    PlzUnzulaessigerZustand,
    PlzLetzterZustand
}
PlzConversionState;




typedef struct
{
    char *plz_alt;
    char *ort;
    char *postanstalt;
    char *ortsteil;
    char *strasse;
    char *hausnummer;
    char *postfach;
    char *plz_neu;
    char verkehrsgebiet;
    UmsdaSet *orte;
    OrtardaSet *archivOrte;
    StradaSet *strassen;
    PofadaSet *postfaecher;
    PlzConversionState status;
}
PlzConversion;


#endif

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.