dateien auslesen

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Blitzprogger

BeitragMi, Jun 11, 2008 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
mein Code: [AUSKLAPPEN]
Graphics 800,600

stream = ReadFile("Proggramme/Schreiben.txt")

If stream = 0 Then RuntimeError "Die gesuchte Datei konnte nicht gefunden werden."

anzahl = ReadInt(stream)

Dim zeile$(anzahl-1)

For lesen = 0 To anzahl-1

   zeile$(laden) = ReadLine(stream)

Next

WaitKey()

End
und hier die zeile die das problem darstellt: Code: [AUSKLAPPEN]
anzahl = ReadInt(stream)
und noch was in der editordatei steht: Code: [AUSKLAPPEN]
1
SO. starte ich mein pogramm kommt die fehlermeldung: "memory access violation". was mache ich falsch? wie behebe ich es? das war meine frage Smile

mfg
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/

Unfreiwilliger Gewinner des BAC# 115. Wink

BladeRunner

Moderator

BeitragMi, Jun 11, 2008 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
eine integer wird in 4 byte gespeichert, damit geht das nicht.
Du verwechselst da menschenlesbare Daten ("1") mit der Maschinengespeicherten Form ($00000001).
Wenn Du einen Integer lesen willst muss er auch als solches gespeichert sein, oder aber Du benutzt readline und wandelst das Ergebnis nach int um (Int(readline(stream)), dann kannst Du weiter selbst die Files von Hand schreiben.
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

Blitzprogger

BeitragMi, Jun 11, 2008 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
danke bladerunner Very Happy
nun eröffnet sich aber ein neues problem: ich möchte nun überprüfen was in den einzelnen zeilen steht. (habe so etwas im kopf mit einer eigenen proggrammiersprache mit sehr sehr einfachen befehlen) die einzelnen zeilen prüfe ich in eine for...next schleife. und zwar so:Code: [AUSKLAPPEN]
For machen = 0 To anzahl
   
   If zeile$(machen) = "rechteck" Then Rect 0,0,10,10

Next
in meiner editordatei steht jetzt:Code: [AUSKLAPPEN]
2
rechteck
nun sollte eingentlich ein 10x10 pixel grosses rechteck auf dem bildschirm erscheinen...macht es aber nicht. hier zur vollen verständlichkeit der gesamte Code: [AUSKLAPPEN]
Graphics 800,600

stream = ReadFile("Proggramme/Schreiben.txt")

If stream = 0 Then RuntimeError "Die gesuchte Datei konnte nicht gefunden werden."

anzahl = Int(ReadLine(stream))

Dim zeile$(anzahl)

For lesen = 0 To anzahl-1

   zeile$(laden) = ReadLine(stream)

Next

For machen = 0 To anzahl
   
   If zeile$(machen) = "rechteck" Then Rect 0,0,10,10

Next

WaitKey()

End


mfg
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/

Unfreiwilliger Gewinner des BAC# 115. Wink

BladeRunner

Moderator

BeitragMi, Jun 11, 2008 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Du zeichnest das Rechteck schon, aber ohne doublebuffer wirds wohl nicht angezeigt.
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

Blitzprogger

BeitragMi, Jun 11, 2008 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, auch mit doublebuffering geht es nicht. schreibfehler sind auch keine vorhanden.

mfg
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/

Unfreiwilliger Gewinner des BAC# 115. Wink

BladeRunner

Moderator

BeitragMi, Jun 11, 2008 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Lass dir mal den inhalt von anzahl mit print ausgeben, vielleicht hilft das weiter.

EDIT: Ausserdem lädst du von 0 - anzahl-1 aber gibst aus von 0 - anzahl, nur so nebenbei
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

Xeres

Moderator

BeitragMi, Jun 11, 2008 17:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Da sollte einem was auffallen...
Code: [AUSKLAPPEN]
For lesen = 0 To anzahl-1

   zeile$(laden) = ReadLine(stream)

Next


"laden" ist nirgendwo definiert und also = 0 ...
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Blitzprogger

BeitragMi, Jun 11, 2008 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
hurra! es geht. mit einigem gefummel bin ich zu diesem resultat gekommen: Code: [AUSKLAPPEN]
Graphics 800,600

stream = ReadFile("Proggramme/Schreiben.txt")

If stream = 0 Then RuntimeError "Die gesuchte Datei konnte nicht gefunden werden."

anzahl = Int(ReadLine(stream))

Dim zeile$ (anzahl)

For lesen = 1 To anzahl

   zeile$ (laden) = ReadLine(stream)

Next

For machen = 0 To anzahl-1
   
   If zeile$ (machen) = "rechteck" Then
    Rect 0,0,100,100
   EndIf

Next

WaitKey()

End
und das steht in der editordatei: Code: [AUSKLAPPEN]
1
rechteck
ps: dank an alle die sich die mühe gemacht haben mir zu helfen. ohne euch wär ich nich auf die lösung gekommen Very Happy Very Happy

mfg
Mein aktuelles Projekt, Irnithal: http://www.blitzforum.de/worklogs/415/

Unfreiwilliger Gewinner des BAC# 115. Wink

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group