TIA TextStreamObject von Windows nach Windows CE migrieren

Draco Malfoy

Level-1
Beiträge
1.168
Reaktionspunkte
82
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Ich habe hier einen migrationsbedürftigen Skript

Im Original war folgendes:

Set RecFileName = RecFileObjekt.OpenAsTextStream(ForReading,TristateASCII) 'Openfile

Danach kam eine Schleife, wo die gelesenen Elemente zerlegt wurden:

For i =1 To 14

'Value = RecFileName.ReadLine 'read line 1..5,6,7...

Select Case Left(Value, InStr(Value, ";") - 1)
Case SmartTags("DiesDasWerkzeugnummer")
SmartTags("GeleseneWerkzeugnummer") = Right(Value, Len(Value) - InStr(Value, ";"))


<...>

Wie kann ich dieses Procedere in der WinCE Welt nachbilden ??

mit .LineInputString funktioniert es nicht !!
 
mit .LineInputString funktioniert es nicht !!
Hattest Du davor auch RecFileObjekt = CreateObject("FileCtl.File") ?

Vergleiche hier aus der FAQ
Code:
    [COLOR="#008000"]'PC-Windows[/COLOR]
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set f = fso.OpenTextFile(inifile, ForReading, False)
        Do While f.AtEndOfStream = False
            SetSysVar f.ReadLine
        Loop
        f.Close

    Else

    [COLOR="#008000"]'WinCE[/COLOR]
        Set f = CreateObject("FileCtl.File")
        f.Open inifile, ForReading
        Do While f.EOF = False
            SetSysVar f.LineInputString
        Loop
        f.Close

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald,

Danke für die Rückmeldung. Nach 2h Suche habe ich herausgefunden woran das lag. Auf dem Panel wird ein anderer delimiter verwendet als auf dem Panel PC. Es handelt sich um Komma statt Semikolon. Dafür habe ich eine .CSV Datei vom Panel öffnen müssen. Ich frage mich, warum können diese Scripte nicht einfach querkompatibel sein.
 
Daß die Listen- und Dezimal-Delimiter unterschiedlich sind liegt nicht am Skript sondern an den "komfortablen" Windows-Regionaleinstellungen. Bei Dir scheint mir nicht das gezeigte Skript schuld zu sein - da steht ja explizit der Delimiter ";" drin. Auch wenn das Skript dann für das Panel migriert wird, verwendet es (hoffentlich) noch den selben Delimiter ";". Wo kommt die csv-Datei her? Wie wird die da erzeugt? Dort scheint mir das Problem zu liegen. Die Anwendung, die die csv-Datei erzeugt, muß so arbeiten daß sie ebenfalls immer das ";" verwendet. Wenn das nicht beeinflußt werden kann, dann muß eben das Einlese-Skript mit verschiedenen Delimitern umgehen können. Das Problem kann sich noch verschärfen, wenn auch REAL/FLOAT-Zahlen mit Dezimal-Delimiter (Komma oder Punkt !) in der csv-Datei verwendet werden. In der FAQ in Beitrag #7 findest Du etwas darüber.

Wenn man mit csv-Dateien hantiert, dann sollte man die immer mal mit einem einfachen Texteditor (Notepad) öffnen und sich nicht auf automatische Funktionen von Excel & Co. verlassen. Wenn csv-Dateien zwischen verschiedenen Plattformen oder auch nur international bzw. mehrsprachig ausgetauscht werden sollen, dann muß man selber dafür sorgen, daß unabhängig von den Regionaleinstellungen immer die selben Delimiter verwendet werden.

Harald
 
Zurück
Oben