[Gelöst]Datei erstellen, schließen, öffnen, weiterschreiben?

29. Januar 2007 12:35

Hi,

habe da ein kleines Problem mit einen Dataport, diese soll Zusatzbeschreibungen aus der Tabelle Comment Line exportieren, alle Lines für ein Artikel sollen als ein Feld exportiert werden. Da mehrere Lines aber Ruck Zuck über 1024 Zeichen länge ergeben, bekomme ich das nicht sauber exportiert.

Nun hatte ich den Gedanke, mittels einer Codeunit, eine Datei erstellen zu lassen wo ich meine zu exportierende Werte reinschreibe, und zwar wollte ich so vorgehen, das wenn die Variable "voll" ist, der Inhalt weggeschrieben wird, in die Textdatei, ich diese wieder öffne, und weiter reinschreibe, Zeile für Zeile, und nach der letzten Zeile mein abschliessendes Trennzeichen.

Ist das irgendwie möglich? Eine Datei zu erstellen, beschreiben, speichern, diese wieder öffnen, sich am Ende zu postionieren, beschreiben und wieder schließen?

Danke.
Zuletzt geändert von elTorito am 29. Januar 2007 17:31, insgesamt 1-mal geändert.

29. Januar 2007 13:06

Datei öffnen/erstellen:

File.OPEN(...)
File.CREATE(...)

Letzte Position finden:

File.SEEK(File.LEN)

Datei beschreiben:

File.WRITE(...)

Datei schließen:

File.CLOSE

Mehr dazu im C/SIDE Reference Guide.

29. Januar 2007 15:48

Hallo,

danke!! Genau die Befehle hab ich gesucht.

Noch eine Frage bitte, und zwar, bin ich nun wie folgt vorgegangen:

Code:
      FilOutputFile.OPEN('c:\Datei.txt');
      FilOutputFile.SEEK(FilOutputFile.LEN-1);
      FilOutputFile.WRITE(Ansi2Ascii(recItemComment.Comment));
      FilOutputFile.CLOSE();


Nun habe ich nach jedem neuen einfügen, in der Textdatei so ein Zeichen

Code:



Lol... reinkopieren geht, naja so ein Quadrat Symbol, was aber scheinbar ein Zeilenumbruch ist. Bekomm ich das irgendwie weg?

Danke.

29. Januar 2007 17:13

Wie sieht die Sache im Hex-Editor aus? 0d0a? Dann ist's 'n Zeilenumbruch ...

Wie ist die Datei den geöffnet worden? Mal TEXTMODE(FALSE) - also binär Mode - versuchen, und Zeilenümbrüche manuell schreiben, mit

Datei.WRITE(FORMAT(CR) + FORMAT(LF));

Wobei CR [Char] := 13 und LF [Char] := 10

29. Januar 2007 17:30

Hi,
danke nochmal für deine Antworten.
Habe nun die CLOSES zwischendurch weggelassen, scheint nun zu funktionieren. Der Kollege, der die Datei bearbeiten muss, ist mit dem Format zufrieden, also model ich da nun nicht mehr dran rum :-)

Hatte nach jeden reinschreiben ein Close gemacht, und davor ein Open...

Danke!!: