# WinCC VBscript Daten aus .csv Datei lesen und an eine andere .csv Datei anhängen



## jierten (26 Februar 2015)

Hallo Leute, 
zuerstmal bin ich begeistert von dem Forum hier, hab schon sehr viel nützliches gefunden!

Jetzt stehe ich jedoch vor einem Problem:
Und zwar müsste ich bei WinCC (TIA Portal)  Daten aus einer .csv Datei über VBscript einlesen bzw. komplett kopieren und an die Daten die sich in einer anderen .csv Datei befinden anhängen.

Ich habe schon einige Zeit damit verbracht die Lösung zu finden und hoffe nun, dass ihr mir weiter helfen könnt.
Den folgenden Forenbeitrag http://www.sps-forum.de/faq/15348-protool-winccflex-daten-lesen-schreiben-mit-vb-script.html habe ich natürlich schon gelesen, jedoch ist da für meinen Fall nicht das richtige dabei..

Habe auch ansonsten schon einige Info's gefunden, jedoch ist das Problem meistens, dass VBscript bei WindowsCE (ich benutze ein Touch  Panel) leicht abweicht und ich noch nicht so gut klar komme damit.

Ich hoffe ihr könnt mir weiter helfen

Gruß
jierten


----------



## rostiger Nagel (26 Februar 2015)

jierten schrieb:


> Ich hoffe ihr könnt mir weiter helfen



Hallo jierten,
willkomen im Forum, wo klemmt es den bei dir.
So richtig kann ich keine Fragestellung erkennen.

gruß RN


----------



## jierten (26 Februar 2015)

Ich möchte mit einem VB Script die Daten aus einer .csv Datei kopieren und an eine andere bestehende .csv Datei anhängen. 
Leider bin ich bisher bei jedem Versuch gescheitert.
Daher die Frage ob jmd vllt eine Code Idee für mich hätte


----------



## RONIN (26 Februar 2015)

jierten schrieb:


> Und zwar müsste ich bei WinCC (TIA Portal) Daten aus einer .csv Datei über VBscript einlesen bzw. komplett kopieren und an die Daten die sich in einer anderen .csv Datei befinden anhängen.


Rostiger Nagel hat schon recht. Zeig uns eventuell doch mal ein Beispiel für den Inhalt der csv-Files.
Wenn du schon was gemacht hast, zeig doch mal.

Das meiste steht schon im FAQ.
Hier noch ein Handbuch zum FileControl-Objekt mit dem du arbeiten musst. Da steht drinnen was du damit so anstellen kannst.
Anhang anzeigen VBScript_WinCE_File System Controls.pdf

*[EDIT]hab grad festgestellt dass die Datei im FAQ angehängt ist.... [/EDIT]*

So aus dem Bauch heraus würd ich sagen:

Ein filectl.file-Objekt für die Quell-csv
Dann mit fs.FileCopy eine Kopie erstellen (Sofern du das Original erhalten willst)
Erstes file-Objekt auf die Kopie legen und öffen (zum Anhängen)
Zweites file-Objekt auf die andere csv-Datei und ebenfalls öffnen
Dann zeilenweise mit file1.LinePrint file2.LineInputString anhängen
Solange bis EOF von file2 (alle Zeilen angehängt)


----------



## jierten (26 Februar 2015)

Ja so ähnlich habe ich mir das gedacht.

Hier mal mein bisheriger Code:

_Dim f,datei1
Set f= CreateObject("filectl.file")
datei1="\\PC\archiv\temp_alarm.csv"

Dim d,ds,datei2
Set d = CreateObject("filectl.file")
Set ds = CreateObject("filectl.filesystem")
datei2="\\PC\archiv\var.csv"


f.open datei1, 1
d.open datei2, 8

Do Until f.EOF
    d.LinePrint = f.LineInputString
Loop

f.Close
d.Close_

In Datei1 habe ich die Variablen archiviert
In Datei2 zeitgleich die Alarme

Am Ende müsste beides in eine Datei rein

Aber denke mein erstes Problem ist schon bei _d.LinePrint = f.LineInputString _.. Kann man das so hintereinander schreiben?


----------



## RONIN (26 Februar 2015)

Gut, das sieht ja von der Idee her schon ganz gut aus.
Den Code bekommst du hier übrigens besser angezeigt wenn du davor ein [CODE] und danach ein [/CODE] einfügst.
Dann bekommst du auch die Tabs korrekt angezeigt.

```
Do Until f.EOF
    d.LinePrint = f.LineInputString
Loop
```
 


jierten schrieb:


> Aber denke mein erstes Problem ist schon bei _d.LinePrint = f.LineInputString _.. Kann man das so hintereinander schreiben?


Das ist sicher ein Problem. LinePrint ist eine Methode und erwartet einen String-Parameter. Zuweisen kannst du Eingenschaften.
_d.LinePrint f.LineInputString_ (Ohne = ) sollte gehen.

Frage noch dazu. Du scheinst ja auf ein Netzlaufwerk zuzugreifen. Funktioniert das erstellen der beiden csv-Dateien auch schon über Skripte?
Will nur sicher gehen ob du überhaupt schon mit den FileControl-Objekten lesen/schreiben kannst.

Als nächstes würd ich mich dann langsam mit rantasten.
Blend dir irgendwo ein Meldefenster mit den System-Fehlern/Warnungen ein.
Bau dir ein paar debug-Meldungen mit ShowSystemAlarm ein und schau mal was das Error-Objekt sagt.


----------



## jierten (27 Februar 2015)

Danke für den Tipp mit dem Code!

Mein Gott, da verbringe ich so viel Zeit damit mein Skript auf den Kopf zu stellen und übersehe diesen banalen Fehler..
Ohne das "=" Zeichen läufts!  Danke fürs drauf hinweisen!

Und ja, der Netzwerkzugriff funktioniert.
Ich habe dort jedoch auch einige Stunden investiert, bis es geklappt hat. Bin halt noch ein blutiger Anfänger


----------



## jierten (27 Februar 2015)

Ich hätte nun noch eine weiter Frage die auch noch hierzu passt.

Wie kann ich die eingelesenen Daten in der Visualisierung anzeigen ?
Also neben dem einfachen umkopieren auch noch auf dem Bildschirm anzeigen. Ist das möglich?

-> Linie einlesen
-> Linie in Textfeld auf Bildschirm anzeigen


----------

