Mit WinCC FLexible letzte 20 geschriebenen Zeilen einer csv- Datei ermitteln...

SUZI

Level-1
Beiträge
98
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallole,

ich will mit WinCC FLexible (für PC) die letzten 20 geschriebenen Zeilen einer csv- Datei ermitteln und deren Inhalt zu interne WinCCflexible-Variable übertragen, um diese auf dem Monitor darzustellen ? Kann mir da jemand helfen
Gruß SUZI
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich verstehe die Frage jetzt mal grundsätzlich ...
Eine CSV-datei ist eine Text-Datei - du kannst also nicht eine bestimmte Stelle adressieren. Der einzige Weg für dein Vorhaben wäre, Zeile für Zeile in eine Art FiFo einlesen, dass 20 Zeilen abbilden kann, bis du am Datei-Ende angekommen bist.
In dem FiFo rückst du bei jedem Lesevorgang die vorhandenen Elemente um eins auf und schreibst dann die letzt gelesene Zeile immer wieder an Index 20 rein.

War es das, was du wissen wolltest ?

Gruß
Larry
 
Moin,

Wie wäre es wenn jede Zeile eine Zeilen-Nr. hat ?
CSV-Daten liegen im Normalfall ohne Nummerierung drinnen. Die Spalten der CSV-Daten können mit Leerzeichen aufgefüllt werden (quasi jede Zeile eine gleiche Anzahl an Bytes besitzt) dann kann man direkt berechnen wo die letzten 20 Zeilen beginnen. Wenn man den FiFo (bzw. Queue) so groß dimensioniert das nur 20 Zeilen reinpassen, braucht man nur einmal alle Zeilen einlesen. Die letzten 20 Zeilen bleiben automatisch im FiFo.

hand, mogel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich schreibe und lese von CSV Dateien in meine Flex Programme.
Dafür ist jede Wert das ich lese und schreibe mit eine Name spezifiziert. Dies funktioniert zuverlässig.

Mogel, was du beschreibst finde ich ganz gefährlich. Die einfache Positione innerhalb von ein Text-Datei als Kennzeichen um welche Werte es handelt ist zu primitiv.
Was passiert wenn jemand den Text Datei mit Notepad öffnet, und ohne es zu bemerken ein paar Leerzeichen eintipt ?
Oder jemand öffnet den Datei in Excel (was man voraussetzen muss, will passieren irgendwann), und Excel formatiert den Datei nach seine Einstellungen für Spalten und Kolonnen ?
 
Hallole,
vielen Dank für Eure Unterstützung.
wede mal sehen wie ich das umsetzen kann.
Teilweise überschneiden sich die Gedanken. Letztendlich fehlt es noch an den geneauen einzusetzenden Begriffen, hier ein speziellen Dank an den Rostigen Nagel , hoffe hier die richtige Syntax zu finden. XP-Embedded / WinCE und Win7 müssen unter einen hut gebracht werden.

Danke
 
Moin,

Dafür ist jede Wert das ich lese und schreibe mit eine Name spezifiziert. Dies funktioniert zuverlässig.
eine eindeutige ID ist auch das Sicherste

Mogel, was du beschreibst finde ich ganz gefährlich. Die einfache Positione innerhalb von ein Text-Datei als Kennzeichen um welche Werte es handelt ist zu primitiv.
wenn von erzeugender Seite entsprechend alles fest vorgegeben ist, wieso nicht?

Was passiert wenn jemand den Text Datei mit Notepad öffnet, und ohne es zu bemerken ein paar Leerzeichen eintipt ?
Oder jemand öffnet den Datei in Excel (was man voraussetzen muss, will passieren irgendwann), und Excel formatiert den Datei nach seine Einstellungen für Spalten und Kolonnen ?
Stellt sich mir die Frage wieso öffnet ein Benutzer eine Datei die für den Prozessablauf wichtig ist. Sorry - dann kann man Programtechnisch nichts machen. Maximal die Fehler abfangen und Mitteilung das da was schief läuft. Da der OP nicht geschrieben hat wie genau er die Datei enthält und ich, auf Grund des Auslesen der letzten 20 Zeilen, annehme das er eine Art Logfile erhält die er dem Benutzer anzeigen will. Da können Fehler durch Änderungen an der CSV-Datei durch Benutzereingaben ignoriert werden.

Ansonsten sind Änderungen durch Benutzereingaben das kleinere Übel. Der zweite Absatz liest sich wie ein programmtechnischer Albtraum. Die 7-Bit-ASCII als Encoding ist wirklich nur der kleinste Nenner, sowie Deutsche Umlaute drinnen sind wars das. Dann kommt es auch noch darauf an auf welchem Rechner die Programm laufen, daraus ergibt sich das in Windows verwendete Encoding.

hand, mogel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Mogel:
Nein ... das Sicherste ist es, IMMER mit allen Unwägbarkeiten zu rechnen. So gesehen hat Jesper mit seinem Einwand vollkommen Recht.
Eine feste Zeilenbreite zu machen ist hierbei aus meiner Sicht nicht unproblematisch. Die Sache mit den Index-Nummer (so a la Datenbank) ist natürlich witzig, hilft aber für das Ergebnis in keiner Weise. CSV ist halt eine sequentielle Datei und somit kommt man so oder so nicht umhin, Zeile für Zeile einzulesen.
Warum die TE nur die letzten 20 Zeilen einlesen möchte, steht hier nicht zur Debatte. Sie möchte es halt machen und das ist dann Programm ... Eine Frage "in Frage" zu stellen ist nur dann sinnvoll, wenn es keinen Lösungsansatz gibt oder derselbe zu problematisch ist - das ist hier aber nicht der Fall ...

Gruß
Larry
 
Stellt sich mir die Frage wieso öffnet ein Benutzer eine Datei die für den Prozessablauf wichtig ist.
Kontrollraum + Nachtschicht + Einsamkeit + Langweiligkeit + Nichts zu tun + Internet gesperrt + Spiele gesperrt = Es wird überall gepokelt und gefingert auf diesen PC das vor ihn steht. Es ist fast lustig zu sehen wenn man kommt zurück zu eine Anlage, was in der Zwischenzeit passiert ist mit alle die PCs auf die die Operators zugang haben.

Und wenn man Wikipedia Links gerne einsetzt, dann Murphys Gesetz nicht vergessen.
 
Zurück
Oben