Probleme beim Laden Speichern
Übersicht

![]() |
Sir Gauss der IIIBetreff: Probleme beim Laden Speichern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Ich hänge jetzt schon ne weile an dem Problem drann. Vlt. könnt ihr mir helfen. Um Daten in einer Datei zu speichern, welche ich zuvor als .TXT datei immer mal wieder geöffnet hatte, bin ich nun Programmtechnisch von writeline und readline zu den entsprechenden Befehlen write\readint-byte-string umgestiegen. Da das Programm sich seine Daten inzwischen ausschließlich über die Datei holt und ich keine Lust habe Sie erst im Prog fest zu legen hab ich die Datei zuerst mit readline ausgelesen und dann im entsprechend anderen Format wieder abgespeichert. Beim erneuten öffnen, diesmal über int-byte-string, murkst mir die Datenausgabe jedoch. d.h. Die abgespeicherten Daten werden nicht mehr in der richtigen Reihenfolge abgespeichert. nach dem ersten Fehlversuch stellte ich nun jede Zeile einzeln um, im Moment tritt der Fehler auf wenn die Datei so ausgelesen (und abgespeichert) wird (die "eingekästelte Zeile if a... wurde zuletzt geändert): Speichern Code: [AUSKLAPPEN] datei=OpenFile("dat.sys")
m=Rand(33,250) For a=1 To 10 WriteString datei,name(a) WriteInt datei,x(a) WriteInt datei,y(a) ;__________________________________ If a<10 Then WriteByte datei,z ; z>30 <255 ;------------------------------------------------------ Next WriteLine datei,m ; Zeile wurde noch nicht umgestellt CloseFile datei laden Code: [AUSKLAPPEN] datei=OpenFile("dat.sys")
For n=1 To 10 DebugLog n name(n)=ReadString(datei) DebugLog highname(n) x(n)=ReadInt(datei) DebugLog highschwer(n) y(n)=ReadInt(datei) If n<10 Then z=ReadByte(datei) Next m=ReadLine(datei) DebugLog m CloseFile datei Wie gesagt, zuerst mit readline geöffnet, dann mit oberem Code gepeichert, dann mit unterem Code geöffnet und falsche Werte rausbekommen. Nach dem Debugger werden nicht mal die Strings annähernd zurück gegeben (maximale länge 14 Zeichen) abgesehen vom ersten. verschiebt sich die Dateiposition bei read\writebyte nicht? gruß Sir Gauss // Edit: Richtiger Code eingefügt |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also anhand dieses Codes kann ich keinen Fehler sehen. Kannst Du eventuell mal im Archiv deine dat.sys einstellen, damit ich sie mir im Hexeditor ansehen kann? Und vielleicht eine .txt mit den Inhalten die eigentlich drin sein sollten. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Sir Gauss der III |
![]() Antworten mit Zitat ![]() |
---|---|---|
werd ich machen, Moment bitte
dat.sys dat.sys als txt die Werte sollten aber inzwischen verändert worden sein. strukturmäßig sollten es jedoch stimmen. werde mal versuchen eine Datei ohne Änderungen zu erstellen, muss dafür jedoch etwas mehr Code reusnehmen. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also was mir an der .dat direkt auffällt ist dass die Stringheader falsch gespeichert sind. wo die länge sonst Durch einen Integer dargestellt wird ist hier die nullstelle durch $20 (also 32, sprich Leerstelle) ersetzt. Zumindest von BMax weiss ich dass da $00 gespeichert werden sollte. Weshalb das nun so ist kann ich Dir leider nicht sagen. Die Namen selbst (als auch die eigentliche Länge, welche im Integer drin steckt) sind OK. Die gespeicherten Integer sind hingegen- zumindest wenn die Werte da noch stimmen sollten, auch wieder $20 verseucht. Das letzte Byte, was laut deiner Text 30 sein sollte (also $16) ist bei mir überall $0a. Das erklärt sich auch nicht wirklich. Das ist wohl ne Zufallszahl, aber die sollte ja zwischen 30 und 250 liegen. Ist dein BB up2date? Hast Du die Datei mit sonst einem Programm assoziiert oder geöffnet? | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Sir Gauss der III |
![]() Antworten mit Zitat ![]() |
---|---|---|
geöffnet nicht, der letzte wert ist ein Zufallwert.
Nachdem ich alle Berechnungen usw. rausgenommen hab um eine Identische Datei zu erstellen ging es auf einem. danach hab ich alles wieder wie am Anfang einstellte, sprich Zufall u. berechnungen an, und nun klappt alles. Danke aber dür die Hilfe. wie gesagt, jetzt läuft es, auch wenn ich nicht weiß woran es lag. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
np. Wohl nur ein kurzer Schluckauf ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Sir Gauss der III |
![]() Antworten mit Zitat ![]() |
---|---|---|
nu ja, lieber so als anders ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group