Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: KiTaMann am 08.03.06 - 12:22:58

Titel: Datenimport aus Ansi-Datei
Beitrag von: KiTaMann am 08.03.06 - 12:22:58
Hallo zusammen,

ich möchte die Daten einer ANSI-Textdatei in meine Datenbank importieren.

Der Aufbau eines Datensatzes sieht wie folgt aus:


123456789012  2 KLEIN, ERNA
               IRGENDWOSTR. 8
               12345  SONSTWO
               4
               20.05.1962
              GROSS
               BERUFSBEZEICHNUNG
               28.01.1998

Die erste Zahl ist die Personalnummer (Länge 12 Stellen)
Die nächste Ziffer repräsentiert das Geschlecht und ist 1-stellig
Es folgen (in einem Feld) Name und Vorname, durch Komma getrennt
In Zeile 2 stehen Straße und Hausnummer (ein Feld)
In Zeile 3 stehen PLZ und Ort (ein Feld)
Zeile 4 repräsentiert den Familienstand (1-stellig)
Zeile 5 = Geburtsdatum
Zeile 6 = Geburtsname
Zeile 7 = Ausgeübte Tätigkeit
Zeile 8 = Eintrittsdatum

Import über ExCel/ 1-2-3 scheidet aus, weil sich die Daten nicht in Spalten darstellen lassen.

Habe es auch schon mit meinen rudimentären Skriptkenntnissen und passender (?) Lektüre probiert, aber ich weiß gar nicht, wo ich da „anpacken“ soll, da die Felder nur Inhalte, aber keine Bezeichnungen haben; wie kann ich die Zeilenschaltungen interpretieren? Wie kann ich das Ende des Datensatzes bezeichnen oder wie kann LS es erkennen, wenn das Ende doch ebenfalls eine Zeilenschaltung ist? Woher weiß LS dann, wann der nächste Datensatz beginnt?


... Fragen über Fragen ...


Wer kann helfen?

Grüße

Klaus
Titel: Re: Datenimport aus Ansi-Datei
Beitrag von: Glombi am 08.03.06 - 12:36:49
Das musst Du mit Script importieren. Ich habe das mal skizziert:

Dim text As String
   Dim fileNum As Integer
   
   Dim linecounter As Integer
   
   fileNum = Freefile()
   linecounter = 1   
   Open "e:\test.txt" For Input As fileNum
   Do While Not Eof(fileNum)
      
      Line Input #fileNum, text
      
      Select Case linecounter
      Case 1:   
         Personalnummer = Left$( text, 12)
         Geschlecht = Mid$(text,15,1)
         
         Print Personalnummer
         Print Geschlecht
      Case 2:
         strasse = Trim$(text)
         
         Print strasse
      End Select      
      
      
      
      If linecounter = 8 Then
         'Letzte Zeile eingelesen         
         
         'Erstelle Dokument
         '...
         
         'setze Zähler zurück
         linecounter = 1
      Else
         linecounter = linecounter + 1
      End If
      
   Loop
   Close fileNum

Andreas
Titel: Re: Datenimport aus Ansi-Datei
Beitrag von: KiTaMann am 08.03.06 - 12:41:22
Besten Dank!

Werde ich gleich (nach meinem Meeting) mal ausprobieren - und mich danach wieder mailden.

Grüße

Klaus
Titel: Re: Datenimport aus Ansi-Datei
Beitrag von: KiTaMann am 08.03.06 - 13:50:43
@Andreas

Geniaaaaaaaaaaal!

Ist ja irre, wieviele Leerzeichen hier trans- bzw. importiert werden - Trim$eiDank!

Nochmals herzlichen Dank!

Klaus