Problem mit Dateien

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Benibaerenstark

Betreff: Problem mit Dateien

BeitragSa, Nov 20, 2004 17:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

ich versuche eine Datei zu erstellen, in der Verschiedene Einstellungen benutzerdefiniert gespeichert werden können. Falls die Datei noch nicht Existiert wird eine erstellt und der Wert gespeichert. Das erste was ich speichern wollte war der Grafikmodus:

Beim ersten Aufruf funktioniert die Funktion, bei erneutem starten (wenn eine Datei gefunden wurde) heisst es immer: "illegal grafic mode index".
Mache ich einen schreib/lesefehler? Die erstellte Datei enthält genau 1 Byte. Wo ist der Fehler? vielen Dank im voraus

Code: [AUSKLAPPEN]


GrafikEinstellungen (0) ;Funktionsaufruf im Hauptprogramm


Function GrafikEinstellungen (Zeigerpos)

Einstellungen = OpenFile("Einstellungen.dat")

If Einstellungen Then

  SeekFile Einstellungen,Zeigerpos ;Den Lese-/Schreibbefehl auf die Posion von Zeiger stellen
  Grafikmodus=ReadByte (Einstellungen)

Else
 
  For a=1 To CountGfxModes()         ;Abfrage
   If GfxMode3D(a)=1 Then
    Print "Modus "+a+" "+GfxModeWidth(a)+" "+GfxModeHeight (a)+" "+GfxModeDepth (a)   +" [3D-kompatibel]"
   Else
    Print "Modus "+a+" nicht [3D-kompatibel]"
   EndIf
  Next

 Grafikmodus= Input ("welchen modus möchtest du? ")

 If Grafikmodus = 0 Then Grafikmodus =27  ;Schutz, gehört zur abfrage


  Einstellungen = WriteFile("Einstellungen.dat") ;Datei erstellen und Gfxmodus Speichern
  SeekFile Einstellungen, Zeigerpos
  WriteByte Einstellungen, Grafikmodus

End If


Graphics3D GfxModeWidth(Grafikmodus),GfxModeHeight(Grafikmodus),GfxModeDepth(Grafikmodus),1
CloseFile Einstellungen

End Function
 

noir

BeitragSa, Nov 20, 2004 19:59
Antworten mit Zitat
Benutzer-Profile anzeigen
warum so umständlich, wenns auch einfach geht?

Code: [AUSKLAPPEN]
Function Grafikeinstellungen()

datei = WriteFile("Einstellungen.dat")

Anzahl = CountGfxModes()
For I=1 To Anzahl
 WriteLine datei, I + ": " + GfxModeWidth(I) + "x" + GfxModeHeight(I) + " - " + GfxModeDepth(I) + " Bit"
Next

CloseFile(datei)


End Function

Benibaerenstark

BeitragSo, Nov 21, 2004 12:30
Antworten mit Zitat
Benutzer-Profile anzeigen
hm, das ist nicht genau das was ich will Rolling Eyes sorry habe mich wohl nicht genau ausgedrückt

Die Funktion soll folgendes Ausführen:

>Test ob eine Konfigurationsdatei (Einstellungen.dat) vorhanden ist
-Wenn ja: Das 1.Byte auslesen, es stellt den Grafikmodus dar

-Sonst (else):
¬Grafikmodi printen
¬Den Benutzer fragen welchen er möchte (input)
¬Eine Konfigurationsdatei erstellen und
¬ins 1.Byte den Grafikmodus speichern

>Den Grafikmodus (grafics3d) einstellen: Die Variable "Grafikmodus" wurde voher aus der Datei ausgelesen oder mit Input abgefragt.

>Die Konfigurationsdatei schliessen

Hubsi

BeitragSo, Nov 21, 2004 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
if filetype("einstellungen.dat")=1
  file=readfile("einstellungen.dat")
  wert=readbyte(file)
  closefile file
else
  print grafikmodi
  wert=input("welcher solls denn sein?")
  file=writefile("einstellungen.dat")
  writebyte(file,wert)
  closefile file
endif

setgfxdriver(wert)
So, oder so ähnlich Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Benibaerenstark

BeitragSo, Nov 21, 2004 17:42
Antworten mit Zitat
Benutzer-Profile anzeigen
hm, es klappt immer noch nicht! und zwar beim einstellen des Grafikmodus :
Code: [AUSKLAPPEN]


Graphics3D GfxModeWidth(Grafikmodus),GfxModeHeight(Grafikmodus),GfxModeDepth(Grafikmodus),1



Folgende Befehle scheinen immer* einen Fehler zu produzieren:

Gfxmodewidth
Gfxmodehight
Gfxmodedepth

So gibt folgedes 2-Zeilenprogramm den Fehler "Illegal grafics mode index" aus! Evil or Very Mad

Code: [AUSKLAPPEN]
i= GfxModeWidth (4)
WaitKey


ich weis nicht mehr weiter, was stimmt da nicht?

*komischerweise in dieser schleife nicht:Code: [AUSKLAPPEN]
For a=1 To CountGfxModes()         ;Abfrage
   If GfxMode3D(a)=1 Then
    Print "Modus "+a+" "+GfxModeWidth(a)+" "+GfxModeHeight (a)+" "+GfxModeDepth (a)   +" [3D-kompatibel]"
   Else
    Print "Modus "+a+" nicht [3D-kompatibel]"
   EndIf
  Next

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group