Autor Thema: Textdatei importieren  (Gelesen 2630 mal)

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Textdatei importieren
« am: 31.10.06 - 07:59:05 »
Hallo alle zusammen,

zu diesem Thema gibt es schon den ein oder anderen Thread, aber keiner passt so wirklich.

Also, ich will eine .dat Datei in eine Datenbank importieren. Die Datei hat folgendem Aufbau:

0100266120000006B5C6F6060911065234
0100266120000006B5C6F6060911163650
0100266120000006B5C6F6060912064543

usw. Die Anzahl der Zeilen ist unbekannt. Da ich nicht weiß, wie ich die Anzahl der Zeilen ermitteln kann, will ich die Datei per Script in Excel öffnen. Hierfür gibt es die methode workbooks.opentext.

Wenn ich die Datei ohne weitere Parameter öffne, macht er mir aus manchen Zeilen sowas: 1,00277E+32

Wenn ich die Datei in Excel manuell öffne und das mit dem Rekorder aufzeichen zeigt er mir folgendes:

    Workbooks.OpenText Filename:="C:\tp0610.dat", Origin:=xlWindows, StartRow _
        :=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 2), _
        TrailingMinusNumbers:=True


Für meinen Zweck benötige ich nur folgendes:

Workbooks.OpenText Filename:="C:\tp0610.dat", FieldInfo:=Array(1, 2)

Ich weiß aber nicht, wie ich den 2. Parameter in Notes umsetzen muss.

Einfach nur Fieldinfo = (1,2) geht nicht. Habe jetzt schon zig Varianten probiert, jedoch ohne Erfolg.

Hat da jemand ne Idee???

Gruß
Demian
Gruß
Demian

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Textdatei importieren
« Antwort #1 am: 31.10.06 - 08:02:00 »
Erse Frage wohin willst du denn importieren. In Lotus Notes oder in Excel?
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

klaussal

  • Gast
Re: Textdatei importieren
« Antwort #2 am: 31.10.06 - 08:08:34 »
Um die Anzahl der Zeilen zu ermitteln (wofür soll das denn gut sein ?) könnte man die Datei ja einmal vorher einmal "durchlesen" und danach verarbeiten.

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Textdatei importieren
« Antwort #3 am: 31.10.06 - 08:12:06 »
Die Anzahl der Zeilen ist unbekannt. Da ich nicht weiß, wie ich die Anzahl der Zeilen ermitteln kann, will ich die Datei per Script in Excel öffnen. Hierfür gibt es die methode workbooks.opentext.

Wozu denn dieses?   ???


Für solche fälle gibt es die Funktion EOF (End Of File).

Beispiel aus der Designer-Hilfe:

' Open a file, print it, and close the file.
Dim text As String, fileNum As Integer
fileNum% = FreeFile()

Open "c:\config.sys" For Input As fileNum%
Do Until EOF(1)
   'Hier erfolgt die weitere Verarbeitung, bis das Ende der Datei erreicht ist.
   Line Input #1, text$
   Print text$
Loop
Close fileNum%


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Textdatei importieren
« Antwort #4 am: 31.10.06 - 08:16:55 »
Hallo,

@Thomas: Ich will die .dat Datei in eine (Notes)Datenbank importieren.

@Klauss: Und genau das meine ich. Ich weiß nicht, wie ich die Datei einmal "durchlesen" kann, weil ich die Anzahl der Zeilen nicht kenne. Mit Datei.readline komme ich also nicht weiter, da ich diesen Befehl nur in einer Schleife verarbeiten könnte.

Gruß
Demian

PS: Ich glaube, das was Axel schreibt ist genau das, was ich brauche. Werde es gleich mal probieren.
Gruß
Demian

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Textdatei importieren
« Antwort #5 am: 31.10.06 - 08:23:43 »
Hallo,

das von Axel hat wunderbar geklappt. Vielen Dank. Hatte das mit dem EOF und freefile() schon gesehen, wusste aber nichts mit anzufangen, geschweige denn es umzusetzen.

Werde mir das mal in der Hilfe genauer durchlesen.

Vielen Dank nochmal.

Gruß
Demian
Gruß
Demian

klaussal

  • Gast
Re: Textdatei importieren
« Antwort #6 am: 31.10.06 - 08:28:23 »
Wie man eine Datei einmal von Anfang bis Ende (EOF) durchliest gehört aber zu den Basics, die man wissen sollte. Und genau das hatte ich gemeint.

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Textdatei importieren
« Antwort #7 am: 31.10.06 - 08:33:06 »
Hallo,

bin noch nicht so lange dabei, hatte auch noch keine wirklichen Schulungen (bis auf 3 Tage Excel) und habe mir alles in mühevoller Kleinarbeit selbst beigebracht. Deswegen sind mir Sachen unklar, die für andere selbstverständlich sind.

Was mir jetzt aber trotz Hilfe nicht klar ist:

es wird Dim text As String deklariert aber text$ verwendet. Was hat es mit dem $ auf sich?

Gruß
Demian
Gruß
Demian

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Textdatei importieren
« Antwort #8 am: 31.10.06 - 08:48:19 »
Das $ ist ein sogenannter data type suffix.

Aus der Designer-Hilfe:
...
variableDeclaration
The declaration has one of the following forms, depending on the kind of variable being declared:
Scalar variable:  variableName[dtSuffix] [ As type ]
...

...
dtSuffix
Optional. A character that specifies the data type of variableName. The data type suffix characters and the data types that they represent are: @ for Currency, # for Double, % for Integer, & for Long, ! for Single, and $ for String.
...

...
Specifying the data type
Either dtSuffix or As type can be specified in variableDeclaration, but not both. If neither is specified, the data type of variableName is Variant.
The data type suffix character, if it is specified, is not part of the variable name. When the name is used (referred to) in the script, it can be optionally suffixed by the appropriate data type suffix character.
...


D. h., du kannst eine Variable auf zwei Arten deklarieren:

1.   Dim text As String

2.   Dim text$

Beides mal wird eine Variable text als String deklariert.

Innerhalb des Codes brauchst du das $-Zeichen nicht. Der Code funktioniert dann genauso.
Allerdings erkennst du mit dem Suffix gleich um welchen Typ es sich handelt.

Ich selbst verwende diesen data type suffix nicht. Ich deklariere meine Variablem mit

       Dim name As String

und integriere den Typ in den Namen. So heisst eine Stringvariable z.B. strText oder eine Integer-Variable intAnzahl.

Weitere Infos dazu findest du hier: Domino/Notes Coding Standards

Axel
 
« Letzte Änderung: 31.10.06 - 08:52:08 von Axel »
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Textdatei importieren
« Antwort #9 am: 31.10.06 - 09:07:21 »
Moin,moin,

jetzt wo dus sagst, fällts mir wieder ein. Hatte das verdrängt, weil ich die Variablen auch noch nie mit dem Suffix deklariert habe. Ich finde das zu unübersichtlich.

Vielen Dank nochmal.

Gruß
Demian
Gruß
Demian

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz