Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: liederstern am August 17, 2010, 08:26:46

Titel: Zeichen aus txt-Datei auslesen
Beitrag von: liederstern am August 17, 2010, 08:26:46
Hallo zusammen,

wir bekommen demnächst meherere tausend txt-Dateien übermittelt.
Bisher lese ich nur einige Informationen aus den Dateinamen aus - das klappt auch bereits.
Aber bevor diese fertige Funktion gestartet werden kann, soll das jeweils dritte Feld der txt-Datei ausgelesen werden und auf den Inhalt "2010" überprüft werden.
Aber mir fehlt leider der richtige Ansatz dafür, einfach nur den Textinhalt zu vergleichen, ohne die Datei zu importieren.
Würde mir jemand einen Tipp geben?
Danke Euch!
Titel: Re: Zeichen aus txt-Datei auslesen
Beitrag von: MzKlMu am August 17, 2010, 08:31:22
Hallo,
dazu müsste man wissen, wie die txt Datei aufgebaut ist.
Wie lauten die Dateinamen, lässt sich da eine Regel zum automatischen ermitteln der Dateinamen ableiten?
Wie werden die Felder in der txt getrennt?
Titel: Re: Zeichen aus txt-Datei auslesen
Beitrag von: Sulu am August 17, 2010, 08:34:00
Hallo liederstern,

mir will gerade auch keine Möglichkeit einfallen Dateiinhalte zu vergleichen ohne zu importieren. Meines Wissen nach ist dies auch nicht möglich, da Access dann keine Daten zur Verfügung hat.

Allerdings könntest du mit einem externen Programm (meinetwegen in C# (Programmierumgebung etc. sind kostenlos)) die Abfrage programmieren und dann Fehleinträge im Dateinamen kennzeichnen.

LG
Sulu
Titel: Re: Zeichen aus txt-Datei auslesen
Beitrag von: liederstern am August 17, 2010, 08:47:52
Hallo MzKlMu,

die txt-Dateien sind jeweils unterschiedlich aufgebaut (5 verschiedene Satzarten). Jeder der 1000 Lieferanten schickt uns 5 Dateien.
Je nach Datenlieferant enthalten die Dateien auch unterschiedliche Trennzeichen. Verallgemeinern können wir das nicht.
Habe als Beipiel mal 2 Fotos beigefügt.
Jeweils das dritte Feld enthält die zu überprüfende Jahreszahl "2010".

Satzart SA
(http://foto.arcor-online.net/palb/alben/85/3791985/400_6132313831616137.jpg)

Satzart FA
(http://foto.arcor-online.net/palb/alben/85/3791985/400_3232653437643761.jpg)
Titel: Re: Zeichen aus txt-Datei auslesen
Beitrag von: MzKlMu am August 17, 2010, 09:08:19
Hallo,
es wäre schon möglich gezielt auf ein Feld zuzugreifen, ohne zu importieren, auch von Access.
Kann es innerhalb einer Datei unterschiedliche Jahre geben, oder genügt es nur den ersten Datensatz auszuwerten.
ZitatJe nach Datenlieferant enthalten die Dateien auch unterschiedliche Trennzeichen. Verallgemeinern können wir das nicht.
Das muss aber verallgemeinert werden, sonst geht es nicht.
Hat wenigstens jeder Lieferant dann immer das gleiche Format?
Und was ist mit meiner anderen Frage:
ZitatWie lauten die Dateinamen, lässt sich da eine Regel zum automatischen ermitteln der Dateinamen ableiten?
Titel: Re: Zeichen aus txt-Datei auslesen
Beitrag von: Wodka43 am August 17, 2010, 09:13:26
Hi Nicole,

Also ich würde dir für den Text-Vergleich das Scripting.FileSystemObject empfehlen. Damit kann man leicht in/mit txt-Dateien arbeiten ohne sie real importiert zu haben. Vorallem auch Zeilenweise durchgehen. (einfach mal nach Googlen)

Dann brauchen wir nur noch ne Fallunterscheidung für die unterschiedlichen Satzarten. Also dazu Klaus Fragen beantworten  :)

mfg
Leo
Titel: Re: Zeichen aus txt-Datei auslesen
Beitrag von: liederstern am August 17, 2010, 11:33:43
Hallo MzKlMu,

innerhalb einer Datei kommt immer nur ein Jahr vor, so dass hier das Auslesen der ersten Zeile ausreicht (so war zumindest meine Planung).
Ob die Daten jeweils eines Lieferanten das gleiche Format haben, kann ich nicht sagen. Vermutlich ja, aber wissen tue ich es nicht. Da die Dateien auch möglicherweise nicht gleichzeitig geliefert werden, werden sie getrennt voneinander weiterverarbeitet. Eine Bezugnahme auf die anderen Dateien des gleichen Lieferanten sollte schon deshalb nicht erfolgen.

Die Dateinamen haben immer das Schema #######_xx_########-####.txt.
Also zum Beispiel 0700000_SA_20100817-1130.txt (0700000=Lieferantennummer, SA=Satzart, 20100817=Datum, 1130=Uhrzeit).

(http://foto.arcor-online.net/palb/alben/85/3791985/400_3165663838316162.jpg)

Wäre es sonst vielleicht möglich zu prüfen, ob in den z.B. ersten 20 Zeichen "2010" vorkommt?

Danke Euch schon mal!
Titel: Re: Zeichen aus txt-Datei auslesen
Beitrag von: MzKlMu am August 17, 2010, 12:11:35
Hallo,
der nachfolgende Codeschnippsel liest die 1.Zeile eine Txt Datei ein und prüft ob in den ersten 20 zeichen 2010 vorhanden ist.

Dim strPruefen As String
        Open PfadUnddateiName For Input As #1
        Line Input #1, strPruefen
        If InStr(1, Left(strPruefen, 20), 2010) > 0 Then
           'Importieren
        End If
        Close #1

Titel: Re: Zeichen aus txt-Datei auslesen
Beitrag von: liederstern am August 17, 2010, 12:34:08
Hallo MzKlMu,
danke für Deine Mühe.
Ich werde mich daran gleich mal versuchen  :)

So, habe es endlich ausprobieren können. Funkioniert einwandfrei! vielen DANK!