Text in der obersten Zeile einer CSV-Datei einfügen

ocram88

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,
ich schreibe mit einer Beckhoffsteuerung Daten in eine csv Datei. Soweit funktioniert das gut.
Jetzt möchte ich in der CSV-Datei noch Zeilen vor meine Messwerte einfügen.
Aktuell versuche ich mit folgenden Bausteinen dies zu erreichen:
FB_FileOpen
FB_FileWrite
FB_FileClose

Damit kann ich ans Ende der Datei schreiben. Nun habe ich mit
FB_FileSeek
versucht den Zeiger auf den Anfang der Datei zu setzen.
Das klappt leider nicht bzw. ich scheine den Baustein nicht richtig zu nutzen.

Hat da jemand Erfahrugn mit?

Gruß
Marco
 
Hallo Marco,

speziell die Beckhoff-FBs kenn ich nicht im Detail, aber erstellst du regelmäßig eine neue csv. Datei,? Dann wäre es das einfachste beim ersten Eintrag einen Header voran zustellen.

Gruß,
Sagas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich schreibe mit einem Baustein(FB_CTRL_LOG_DATA) mehrere Messwerte in eine csv-Datei. Dieser Baustein erstellt direkt eine csv Datei und schreibt dann zyklisch die Werte.
Wenn ich vorher etwas in die Datei schreibe wird es durch den Baustein überschrieben.
Gruß
Marco
 
Hallo Marco,

der FB_Ctrl_log_data verfügt in den Settings doch über einen Punkt "bWriteColumnHeadings : If this parameter is set to TRUE, the column headers are written into the first row of the file." wobei du in das Array "arColumnHeadings : ARRAY [1..10] OF STRING;" dein Bezeichnungen eintragen musst. Funktionert dies nicht oder enspricht das nicht deinen Anforderungen?

Gruß,
Sagas
 
Hallo,
diese Funktion nutze ich für die Beschriftung der Spalten.
Aufgezeichnet werden zum Beispiel verschiedene Temperaturen und Drehmomente.
Ich würde aber gerne an den Anfang der Datei noch ein paar zusätzliche Infos zu der Prüfung angeben. Wie zum Beispiel eine Projektnummer, Teilenummer und einen Prüfer und ähnliches.
Gruß
Marco
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
ich fürchte das wird von der Logik nicht klappen. Am PC ist es ebenfalls nicht möglich Text davor einzufügen. Es geht physikalisch nicht. Die Datei hat irgendwo einen Anfang auf dem Datenträger und der Bereich davor gehört zu etwas anderem.

Ich denke, du musst die Datei neu-schreiben. D. h. bestehenden bereits existierenden Teil komplett einlesen; deinen Teil am Anfang schreiben; dann den bereits existierenden Teil schreiben.

Gruß Stephen
 
Du schreibst am Anfang mit "FB_FileSeek" funktioniere es nicht.
Was funktioniert denn nicht, bzw wie ist das Resultat?
 
Ich habe bei "eOrigin" schon alle drei Varianten(Seek_end, Seel_cur und Seek_Set) ausprobiert und bei "nSeekPos" habe ich auch verschiedene Zahlen ausprobiert und trotzdem wird der Text immer hinter den vorhandenen Text eingefügt.
 
Hallo,

gibt es nicht eine Funktion, die den Pointer bzw. Cursor auf die Anfangsposition setzt? Es gibt z.B. in der SysFile Bibliothek die Funktion SysFileSetPos. Damit müsste man doch an den Anfang der Datei springen können, um eine Zeile einzufügen.
 
Hi,
wie im Beitrag #6 schon gesagt:
Mir ist auch kein Dateisystem bekannt, welches ein einfügen zulässt !
Ein Filepointer an den Anfang stellen, bedeutet bei dem meisten Systeme nur, das ab dort überschrieben/neugeschrieben wird...
Hier kommt man um Neuschreiben / Kopieren nicht drum herum.

Viel Erfolg
Shrimps
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich sehe jetzt nicht das Problem, den Header am Anfang zu schreiben. Dein Datenloggerbaustein müßte etwas angepasst werden, aber die Daten für den Header kennst Du auch am Anfang der Prüfung.
Dein Loggerbaustein müsste halt die Datei im Append-Modus öffnen (d.h. es wird an die bestehende Datei angehängt). Das ist doch jetzt wirklich nur eine Frage der Reihenfolge.
Ggf. übergibst Du dem Loggerbaustein die Headerdaten und der schreibt die immer als ersten Datensatz.
 
Zurück
Oben