WriteLine Problemchen

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

DaysShadow

Betreff: WriteLine Problemchen

BeitragDo, Aug 27, 2009 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Also folgendes, ich schreibe 5 Zeilen via WriteLine in eine leere(neu erstellte) Datei und schreibe während des Programmes erneut 5 Zeilen via WriteLine, der Stream ist nur Local und wird am Ende des Schreibens wieder geschlossen.
Nach dem zweiten Drüberschreiben habe ich aber plötzlich 6 Reihen mit Text statt den im Code angegebenen 5 Reihen...wie kann das sein? Beachte ich irgendetwas nicht? Benutze lediglich die Befehle OpenStream, WriteLine und CloseStream, mehr nicht.

BlitzMax: [AUSKLAPPEN]
SuperStrict

Graphics 800, 600, 0, 60

Repeat

Cls

If KeyHit(KEY_F1)

WriteData()

End If

Flip

Until KeyHit(KEY_ESCAPE) Or AppTerminate()

Function WriteData:Int()

Local stream:TStream
Local word:String

If FileType("streamtest.str") = 0
CreateFile("streamtest.str")
stream = OpenStream("streamtest.str")

Else

stream = OpenStream("streamtest.str")

End If

For Local words:Int = 0 To 4

For Local letters:Int = Rand(1, 4) To Rand(5, 10)

word:+ Chr(Rand(97, 122) )

Next

WriteLine(stream, word)
word = ""

Next

CloseStream(stream)

End Function


Code ist jetzt auch dabei...vielleicht hilft mir ja jetzt mal einer...

Wäre für Hilfe dankbar!
MfG DaysShadow
Blessed is the mind too small for doubt

hazumu-kun

BeitragFr, Aug 28, 2009 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich seh da jetzt keinen fehler.
Was genau läuft denn schief?
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

DaysShadow

BeitragFr, Aug 28, 2009 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich schreibe das erste mal 5 Zeilen rein, ok, das zweite mal auch ok, beim dritten mal hab ich nicht nur 5 Zeilen sondern 6 mit Text oder die 6. Zeile ist frei und in der 7. und 8. stehen 2-3 Buchstaben.

Code: [AUSKLAPPEN]
uvlyx
dtqoz
sugmekoucq
ahqkpx
xihvaxro <--- bis hierhin sollte nur Text stehen, da im Code nur 5 Zeilen geschrieben werden
uahsg
bkjadkgf


Kompiliert falls möglich einfach mal den code und führt die exe 3 mal aus, dann dürftet ihr sehen was ich meine.

MfG DaysShadow
Blessed is the mind too small for doubt

Holzchopf

Meisterpacker

BeitragFr, Aug 28, 2009 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist ja irgendwie auch logisch... Wenn du zuerst 5 Zeilen à 10 Zeichen schreibst (+2 Zeichen für \r\n), gibt das 60 Bytes. Wenn du beim zweiten Durchlauf nur noch 5 Zeichen pro Zeile schreibst, sind das 35 Bytes, das heisst, du überschreibst von den 60 Bytes, die bereits in der Datei sind, lediglich die ersten 35, die anderen bleiben unangetastet.
Wenn du eh jedesmal die Datei komplett neu beschreiben willst, sollte afaik
BlitzMax: [AUSKLAPPEN]
WriteStream

oder gleich
BlitzMax: [AUSKLAPPEN]
WriteFile

das richtige sein für dich.

mfG
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

DaysShadow

BeitragFr, Aug 28, 2009 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
WriteStream löst das Problem, das mit den Bytes dachte ich mir schon, aber ich wusste nicht dass zwischen WriteStream und OpenStream bzw. nur Schreibberechtigung(sofern ich das richtig verstehe) so ein Unterschied liegt.

Naja Problem gelöst, ich bedanke mich! Very Happy

MfG DaysShadow
Blessed is the mind too small for doubt

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group