[Gelöst] Text-Dateien zusammenfassen

24. Januar 2008 09:06

Ich könnte mal wieder Eure Hilfe gebrauchen.

In einem definierten Festplattenverzeichnis habe ich mehrere Textdateien (deren genaue Dateinamen mir jedoch vorher nicht bekannt sind).
zum Beispiel:

Datei1.txt
Datei2.txt
Datei3.txt
usw.

Diese möchte ich nun per Codeunit in eine Datei (z.B. Gesamt.txt) zusammenspielen, um diese Datei dann anschließend per Dataport zu importieren.

Zur Info - das ganze brauche ich für eine EDI-Lösung, bei der ich diverse Txt-Dateien per FTP vorher - in bestimmten Zeitintervallen - von verschiedenen Kunden abgeholt habe.

Kann mir dabei jemand helfen?

Gruß
Ralf
Zuletzt geändert von neckit am 24. Januar 2008 13:39, insgesamt 1-mal geändert.

24. Januar 2008 09:26

Schau mal hier: Alle Dateien eines Ordners abarbeiten
Dies sollte zumindest den Anfang (alle txt-Dateien der Reihe nach abarbeiten) abdecken.

24. Januar 2008 09:48

Danke Natalie

aber ich habe mich wohl etwas unpräzise ausgedrückt - sorry.

Wie ich die Dateien abarbeite weiss ich bereits.
Mir geht es vielmehr um das Zusammenführen der Textdateien zu einer einzelnen Textdatei. Und das möglichst ohne Zwischenspeicherung oder dergleichen in NAV.

Gruß
Ralf

24. Januar 2008 10:00

Wie weit kommst du denn?
Weißt du, wie du Inhalte einer Datei in die andere schreiben kannst?

24. Januar 2008 10:14

neckit hat geschrieben:Danke Natalie

Mir geht es vielmehr um das Zusammenführen der Textdateien zu einer einzelnen Textdatei.

Gruß
Ralf


Warum verwendest du nicht denn MS-DOS Befehl
--> Copy *.txt newtextfile.txt ?

mfG
Jürgen

24. Januar 2008 12:47

Der "Copy-Befehl" wäre genau das richtige für mich.

Wenn ich diesen jetzt aber wie folgt aufrufe

Shell('Copy', '*.txt', 'newtextfile.txt')

erhalte ich als erstes die Meldung:
"Sie führen zum ersten Mal die folgende Datei aus:
Ausführbare Datei: Copy
Parameter: *.txt newtextfile.txt
usw.

Hier muß ich dann erst mit "ja" bestätigen.

Danach kommt dann die Meldung:
"Das Betriebssystem findet die Datei "COPY" nicht.
Prüfen Sie bitte Laufwerk und Verzeichnis ..... "


Was mache ich hier denn falsch? :-(

Gruß
Ralf

24. Januar 2008 12:58

Hallo Ralf,

warum machst du es nicht wie von natalie beschrieben.
Arbeite alle Dateien der Reihe nach mit einem Dataport ab und schreibe die Inhalte in eine temoräre Tabelle. Im On PostDatport Trigger arbeitest du dann diese Tabelle ab und schreibst die Daten in die entsprechende (n) Tabelle(n).

mfg Michael

24. Januar 2008 13:09

Um das zu erklären, müsste ich das Thema hier zu sehr ausweiten.

Aber grundsätzlich müsste es doch mit "Copy" sowieso viel einfacher und ohne großen Programmieraufwand gehen!

Davon abgesehen interessiert es mich schon aus Prinzip, wie ich solche Befehle verwenden kann.

Gruß
Ralf

24. Januar 2008 13:37

War ein ganz schöner 'Akt' - aber jetzt hab ich's !

Falls es noch jemanden interessiert:

Quelle := 'c:\test\*.txt';
Ziel := 'c:\test\NeueDatei.txt';
SHELL(ENVIRON('comspec'),'/C', 'copy ' + Quelle + ' /B ' + Ziel + ' /B');


Gruß
Ralf