# Zelle aus CSV Datei auslesen (WIN-CE)



## TH3 (12 Oktober 2009)

Guten Tag,

Ich hab ein VBScript für ein Mulitpanel geschrieben und möchte nun aus einer CSV Datei eine Zelle (z.B.G1) einlesen und auf eine SPS Variable schreiben.
Ich habe nun das Problem, das ich eine Vorlage habe die unter WIN aber nicht unter WIN-ce funktioniert. 



```
Dim ExcelTabelle
Set ExcelTabelle = GetObject("c:\test\Excel-Tabellen\Excel-Tabelle.xls")
SmartTags("Proj\Var1")=ExcelTabelle.ActiveSheet.Cells(1,7).Value 
ExcelTabelle.Application.Visible = False
```
Bitte um hilfe!!
Danke


----------



## pylades (12 Oktober 2009)

Moin,
schau mal in die FAQ:
http://www.sps-forum.de/showthread.php?t=15348

Pylades


----------



## Ralle (12 Oktober 2009)

@TH3
Das, was du als Code angegeben hast ist wohl auch nur auf einem PC möglich, da du dazu ja die Excel-Applikation benötigst. Du mußt die CSV-Datei wie eine Textdatei behandeln und dir die entsprechende Zelle selbst daraus extrahieren. Der von pylades angegeben Link hält dazu ja schon fast alles bereit. In einer CSV sind ja die Werte durch ein definiertes Trennzeichen (i.d.R. ein Komma oder TAB) abgegrenzt. Diese Trennzeichen muß man suchen und durch Abzählen bekommt man dann die Werte in Spalten.


----------



## TH3 (12 Oktober 2009)

Danke für die Tipps!
Ich habe das Script kurz umgeschrieben. 
Ich weiss nur leider nicht wie ich auf die Variable zugreifen kann.
Das Format ist, da es sich um eine Export-Datei handelt,vorgegeben.
Die Werte stehen alle nebeneiander und sind durch einen Tap getrennt.


```
Dim f,mode
 
Set f= CreateObject("filectl.file")
mode = 1
f.open "\Storage Card USB\bendingdata.csv", mode
SmartTags("Proj\Var1") =  f.Input(1.1)

f.Close
```
Ich bekomme nun immer die Fehlermeldung:
"Type mismatch"


----------



## Ralle (12 Oktober 2009)

Hast du dir den Link von pylades genau angesehen?
Da steht z.Bsp. folgendes drin:



> Dim f,mode
> 
> Set f= CreateObject("filectl.file")
> mode = 1
> ...



und hier mal nur als Beispiel einige Funktionen für Strings:


```
datum="20"&Right(Date,2)&"."&[COLOR="red"]Mid[/COLOR](Date,4,2)&"."&Left(Date,2)
```

Du mußt in dem gelesenen lineInputString nach den Tabs suchen und für die 3. Spalte dann z.Bsp. den Wert zwischen 2. und 3. Tab ausschneiden.
Dazu mußt du natürlich auch die richtige Zeile auswählen, also die Kopfzeilen + der Zeilennummer.


----------

