Seite 1 von 1

Datei auslesen/Daten hinzuschreiben

Verfasst: 12.07.2008 15:15
von pede
Hallo

erstmal der Code:

Code: Alles auswählen

#file=1

CreateFile(#file, "C:\logfile.time")
WriteString(#file, "Logfile")
CloseFile(#file)

For i = i To 20
;Datei auslesen
If ReadFile(#file, "C:\logfile.time")
    laenge = Lof(#file) 
    If laenge
        *Speicher = AllocateMemory(laenge)
        ReadData(#file, *Speicher, laenge)
        Inhalt$ = PeekS(*Speicher)
    EndIf
    MessageRequester("Inhalt", Inhalt$)
    CloseFile(#file)
Else
    MessageRequester("Fehler", "Logfile konnte nicht gefunden werden. Starten Sie die Anwendung bitte erneut", #MB_ICONERROR)
    End
EndIf
              
;Neuen Inhalt dazuschreiben              
If OpenFile(#file, "C:\logfile.time")
    WriteStringN(#file, Str(Random(60)) + Chr(58) + Str(Random(60)) + Chr(58) + Str(Random(60)))
    WriteString(#file, Inhalt$)            
    CloseFile(#file)
Else
    MessageRequester("Fehler", "Logfile konnte nicht gefunden werden. Starten Sie die Anwendung bitte erneut", #MB_ICONERROR)
    End
EndIf

Next
Problem an der Sache: es werden auch andere Zeichen als gewünscht dazugeschrieben, und zwar nach "Logfile"

Die Datei besteht dann z.b aus folgenden Inhalt:
13:21:43
30:24:33
8:5:60
30:58:45
39:25:0
59:27:17
45:6:17
20:10:6
17:59:24
23:13:34
7:47:28
45:49:14
14:50:37
55:18:24
11:41:32
53:53:19
31:37:7
36:42:58
37:28:35
15:52:14
48:55:1
Logfile*íÀ‡
wobei auch die letzten Zeichen immer variieren...

PS: Ein FreeMemory verschlimmert die Sache noch --> es werden noch mehr sinnlose Zeichen angehängt
Wieso???

lg

Verfasst: 12.07.2008 16:13
von hjbremer
es muß heißen : Inhalt$ = PeekS(*Speicher,laenge)

siehe Hilfe für Peeks
Der String sollte mit einem '0' Zeichen enden (null-terminierter String), andernfalls wird der Speicher solange ausgelesen, bis ein '0' Zeichen auftritt.

Ein optionaler Parameter 'Laenge' (in Character) kann angegeben werden.
Also in diesem Fall ist der Parameter nicht optional, sondern muß sein. :mrgreen: