Textdatei läßt sich nicht auslesen

  • Hallo Leute,

    ich bräuchte mal wieder eure Hilfe.

    Ich habe eine Reihe Dateien, die von einem Messgerät erstellt wurden. Mit einem Texteditor, kann ich mir die Daten anschauen auch, wenn dort ettliche merkwürdige Zeichen zu sehen sind, kann ich die Messwerte als Zahlenstring erkennen.

    Nun wollte ich die Datei mit Autoit weiter verarbeiten. Dies klappt mit den Standardfunktionen

    Code
    FileOpen 
    FileRead

    nicht.

    Ich habe es auch schon mit

    Code
    _FileReadToArray

    probiert, aber auch hierbei keinen Erfolg.

    Ich habe das Gefühl, dass irgendetwas mit der Datei ist, denn als ich den Inhalt im Texteditor geöffnet hatte und den herauskopierte, dann in eine Standardtextdatei einfügte, konnte ich mit den genannten Funktionen auf die Dateien zugreifen. Ich hoffe ihr habt mein Problem verstanden und könnt mir weiterhelfen.

    Grüße, der Strahleman :thumbup:


    PS: die Datei die Probleme macht ist angehängt.

    Wenn denn alles so einfach wäre wie

    [autoit]

    "Autoit"

    [/autoit]

    meine UDFs
    Math2

    Wichtige Threads
    Math2

    3 Mal editiert, zuletzt von Strahleman (2. August 2010 um 12:44)

  • Hallo Pinguin94,

    das Script sollte nicht das Problem sein. Denn der Inhalt in eine leere Textdatei kopiert, kann ja von meinem Script gelesen werden.

    Aber hier mal der passende Auszug:

    Code
    $dir = $path & "\1.DIR" 
    $dir_file = FileOpen($dir, 0) 
    if $dir_file = -1 Then 
    Exit 
    EndIf 
    $dir_text = FileRead($dir_file) 
    if $dir_text = -1 Then 
    Exit 
    EndIf 
    FileClose($dir_file)

    Wenn denn alles so einfach wäre wie

    [autoit]

    "Autoit"

    [/autoit]

    meine UDFs
    Math2

    Wichtige Threads
    Math2

  • Hallo Ineluki,

    leider bringt das auch noch keinen Erfolg. Ich sehe wie immer nur ein Kästchen, an der Stelle wo der Text kommen sollte.

    Trotzdem danke

    Wenn denn alles so einfach wäre wie

    [autoit]

    "Autoit"

    [/autoit]

    meine UDFs
    Math2

    Wichtige Threads
    Math2

    • Offizieller Beitrag

    Es ist keine Textdatei, auch wenn einige Zeichen in Klarschrift lesbar sind. Ich vermute, dass diese aus einer Datenbankanwendung stammen.
    Wenn du die Datei in einem Editor anschaust, siehst du dort einige Steuerzeichen - aus diesem Grund kannst du sie nicht im Textmodus auslesen, sondern nur binär:

    [autoit]

    $file = @MyDocumentsDir & '\Test\1.txt'
    $fh = FileOpen($file, 16)
    ConsoleWrite(FileRead($fh) & @CRLF)
    FileClose($fh)

    [/autoit]
  • Hallo BugFix,

    Danke, Das bringt doch schon mal was.
    Wie bekomme ich denn aus den Hexwerten den Text wieder, um ihn dann als String weiter verarbeiten zu können?

    der Strahleman B)

    Wenn denn alles so einfach wäre wie

    [autoit]

    "Autoit"

    [/autoit]

    meine UDFs
    Math2

    Wichtige Threads
    Math2

    • Offizieller Beitrag

    _HexToString bringt nichts, dann werden auch die Steuerzeichen wieder ausgegeben. So gehts:

    [autoit]

    $file = @MyDocumentsDir & '\Test\1.txt'
    $fh = FileOpen($file, 16)
    $sBin = StringTrimLeft(FileRead($fh), 2) ; 0x abschneiden
    FileClose($fh)

    [/autoit][autoit][/autoit][autoit]

    $sOut = ''
    Do
    $tmp = StringLeft($sBin, 2)
    If Dec($tmp) > 31 Then $sOut &= Chr(Dec($tmp)) ; alles außer Steuerzeichen
    $sBin = StringTrimLeft($sBin, 2)
    Until Not StringLen($sBin)

    [/autoit][autoit][/autoit][autoit]

    ConsoleWrite($sOut & @CRLF)

    [/autoit]
  • Hi BugFix,

    super! und herzlichen Dank.

    Ich war allerdings auf nicht untätig und hab selber auch geknobelt, leider nicht so elegant wir deine Lösung. Aber

    Zitat

    Viele Wege führ'n nach Rom

    Code
    $fl = StringLen($ft)
    $text = Stringright($ft, $fl - 3)
    $ftext = ""
    for $i = 0 to ($fl)/2 -1 
    	If Stringmid($text, $i * 2, 2) <> "00" Then
    		$ftext = $ftext & _HexToString(Stringmid($text, $i * 2, 2))
    	EndIf
    Next

    Wenn denn alles so einfach wäre wie

    [autoit]

    "Autoit"

    [/autoit]

    meine UDFs
    Math2

    Wichtige Threads
    Math2