Probleme beim Dateihandling mit OpenFile WriteString
Übersicht

FERENCBetreff: Probleme beim Dateihandling mit OpenFile WriteString |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() Hallo Programmiergemeinde- ich habe ein wahrscheinlich banales Problem beim Dateihandling. Wenn ich Strings mit OpenFile und WriteString in eine einfache Textdatei schreibe, die Datei mit CloseFile schließe, und den Vorgang wiederhole, steht nur die Ausgabe der letzten Aktion in der Datei. Bei Verwendung von WriteLine ist die Datei zerhackt bzw. teilweise überschrieben. Zusätzlich tritt ein rätselhafter Fehler: "Memory access violation" auf. Gibt es so etwas wie eine Append Funktion, um Textdateien zu erweitern? Wer kann mir helfen - Dank im voraus, Ferenc |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Code: [AUSKLAPPEN] size = FileSize("blub.txt")
stream = OpenFile("blub.txt") SeekFile stream, size WriteLine stream, "Neue Zeile ole ole" CloseFile stream mfg olli |
||
FERENC |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() hallo Olli, vielen Dank für das Codefragment - hat prima geklappt ! mit lieben Grüßen FERENC |
||
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Funzt das auch mit WriteInt oder warum klappt das bei mir nicht?!
Habe genau das selbe Prob wie Ferenc es hatte: Code: Code: [AUSKLAPPEN] ;Map speichern If KeyDown(key_speichern) Then size = FileSize(dateiname$+".txt") test = WriteFile("maps/"+dateiname$+".txt") SeekFile test, size For x_tile = 0 To Max_tiles_X For y_tile = 0 To Max_tiles_Y WriteInt(test,tile_matrix(1,x_tile,y_tile)) WriteInt(test,tile_matrix(2,x_tile,y_tile)) WriteInt(test,tile_matrix(3,x_tile,y_tile)) Next Next CloseFile(test) EndIf Also es gibt keine Fehlermeldung,nur ich kann dann die gespeicherte datei nicht mehr erweitern... ![]() |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
@rambo256
nimm openfile anstatt writefile, dann sollte es gehen! |
||
[BB2D | BB3D | BB+]
|
![]() |
Gossi |
![]() Antworten mit Zitat ![]() |
---|---|---|
<einmisch> warum? | ||
Alle Wasser laufen ins Meer, doch wird das Meer nicht voller; an den Ort, dahin sie fließen, fließen sie immer wieder. (...) Was geschehen ist, eben das wird hernach sein. Was man getan hat, eben das tut man hernach wieder, und es geschieht nichts neues unter der Sonne. Geschieht etwas, von dem man sagen könnte: "Sieh, das ist neu"? Es ist längst vorher auch geschehen in den Zeiten, die vor uns gewesen sind. |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weil WriteFile die Datei neu anlegt und die alten Daten somit verloren sind ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
genau....
und mit openfile muß die Datei bereits vorhanden sein, wenn nicht gibt es Probleme aber das lässt sich leicht umgehen.....mit Sicherheitabfragen Code: [AUSKLAPPEN] Filename$ =("c:\Dummy.txt")
File = OpenFile(Filename$) :: If File = 0 Then File = WriteFile(Filename$);<<<<<<<< :: If File = 0 Then RuntimeError "Datei kann nicht erstellt werden!!!" : SeekFile File, FileSize(Filename$) : WriteLine File, "Neue Zeile booohhhh...eyyy" CloseFile File |
||
[BB2D | BB3D | BB+]
|
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ah danke @Rallimnen werde es mal probiern... | ||
Asus F53z
Das Leben ist eine reine Konkatenation... |
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mhh ich hab das jetzt so:
Code: [AUSKLAPPEN] ;Map speichern If KeyDown(key_speichern) Then test = OpenFile("maps/"+dateiname$+".txt") If test = 0 Then test = WriteFile("maps/"+dateiname$+".txt") For x_tile = 0 To Max_tiles_X For y_tile = 0 To Max_tiles_Y WriteInt(test,tile_matrix(1,x_tile,y_tile)) WriteInt(test,tile_matrix(2,x_tile,y_tile)) WriteInt(test,tile_matrix(3,x_tile,y_tile)) Next Next Else SeekFile test, FileSize("maps/"+dateiname$+".txt") For x_tile = 0 To Max_tiles_X For y_tile = 0 To Max_tiles_Y WriteInt(test,tile_matrix(1,x_tile,y_tile)) WriteInt(test,tile_matrix(2,x_tile,y_tile)) WriteInt(test,tile_matrix(3,x_tile,y_tile)) Next Next EndIf CloseFile(test) EndIf aber irgendwie funzt es nicht ![]() |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo,
2 sachen sind mir sofort aufgefallen 1. benutzte keyhit .... 2 Pfadangabe mit backslash >>\<< nicht >>/<< sollte dann aber alles gehen, Achte noch drauf ob die Variablen global sind wenn es in einer Function steht! |
||
[BB2D | BB3D | BB+]
|
![]() |
rambo256 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry geht immer noch nicht...
Liegt es jetzt am Code oder hab ich en brett vorm kopp?! ALso das sieht jetzt so aus: Code: [AUSKLAPPEN] ;Map speichern
If KeyHit(31) Then test = OpenFile("maps\"+dateiname$+".txt") If test = 0 Then test = WriteFile("maps\"+dateiname$+".txt") For x_tile = 0 To Max_tiles_X For y_tile = 0 To Max_tiles_Y WriteInt(test,tile_matrix(1,x_tile,y_tile)) WriteInt(test,tile_matrix(2,x_tile,y_tile)) WriteInt(test,tile_matrix(3,x_tile,y_tile)) Next Next Else SeekFile test, FileSize("maps\"+dateiname$+".txt") For x_tile = 0 To Max_tiles_X For y_tile = 0 To Max_tiles_Y WriteInt(test,tile_matrix(1,x_tile,y_tile)) WriteInt(test,tile_matrix(2,x_tile,y_tile)) WriteInt(test,tile_matrix(3,x_tile,y_tile)) Next Next ;EndIf CloseFile(test) EndIf ;Map laden If KeyHit(key_laden) Then test = OpenFile("maps\"+dateiname$+".txt") For tile_x = 0 To Max_tiles_X For tile_y = 0 To Max_tiles_Y tile_matrix(1,tile_x,tile_y)=ReadInt(test) tile_matrix(2,tile_x,tile_y)=ReadInt(test) tile_matrix(3,tile_x,tile_y)=ReadInt(test) Next Next CloseFile test EndIf |
||
Asus F53z
Das Leben ist eine reine Konkatenation... |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] dim tile_matrix (3,x_tile,y_tile))
wenn du das als integer nutzt muss das gehen! sollte das aber Strings sein dann gehts natürlich nicht da er nur Nullen speichert dann endweder mit asc bytes speichern und mit chr auslesen oder aber mit writestring und readstring was aber viel Speicher braucht! |
||
[BB2D | BB3D | BB+]
|
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group