Frage wegen Auslesen einer Datei bzw. eines Arrays
Übersicht

![]() |
sheldonBetreff: Frage wegen Auslesen einer Datei bzw. eines Arrays |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich habe einen "Bildschirmschoner" mit BB gebastelt und wie es ja beim Einstellen eines neuen "Bildschirmschoners" unter Windows üblich ist, auch Einstellungen einstellen zu können etc. Also habe ich mit Visual Basic ein Programm geschrieben, welches die Optionen dann in einer Textdatei speichert. Dann lese ich es in BB mit Code: [AUSKLAPPEN] Global file = ReadFile("C:\scrsettings.txt")
For i = 1 To 7 settings$(i) = ReadLine$(file) Next aus. Ich musste auf "ReadLine$" zurückgreifen, da mein Visual Basic-Programm anstatt "1" " 1 " schreibt (vor und hinter der 1 noch ein Leerzeichen) und es mit ReadString $und ReadByte nicht ging. Im Mainloop habe ich dann geschrieben: Code: [AUSKLAPPEN] If settings$(1) = "1" then führe_aktion_1_aus
If settings$(2) = "1" then führe_aktion_2_aus und so weiter. Das flimmert allerdings... Jetzt habe ich zwei Fragen. 1. Gibt es intelligentere oder bessere Wege die Optionen zu speichern? 2. Wie kriege ich es hin, dass es nicht mehr flimmert? Wäre sehr nett, wenn ihr mir helfen könntet. MfG, sheldon |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn es flimmert, verwendest du evtl. keine 2 Buffer oder hast cls/Flip an der falschen Stelle oder machst was doll rechenintensives zwischendurch. Die Optionen lädst du nur beim Programmstart einmal ein?
Ansonsten musst du mehr Code posten um das Problem zu lokalisieren... |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
- Zuletzt bearbeitet von Xeres am Mo, Sep 22, 2008 21:26, insgesamt einmal bearbeitet
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das funktioniert mit dem Auslesen überhaupt?
Wenn man " 1 " mit ReadLine ausliest und als String behandelt, wird die Abfrage auf "1" wohl False ergeben? Eine einfache Lösung wäre Trim ![]() mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Trim scheint bereits bei 'ner Konvertierung aufgerufen zu werden, jedenfalls kann man einen String der keine Buchstaben/Sonderzeichen vor der Zahl enthält, problemlos zu einer machen...
Code: [AUSKLAPPEN] Local s$ = " 167.66 ABC"
Local z# = s Print s Print z WaitKey() Eingebautes Feature von BB. (Trotzdem würde z# = float ![]() ![]() |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
sheldon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und ich habe wirklich Double Buffering vergessen...
Vergesslich, wie ich bin. ![]() Edit: Quatsch, doch Double Buffering drin ![]() Naja also mein Code macht eigentlich nur das oben beschriebene, das ganze in einem Timer, wenn es 1 entspricht, mache Aktion 1, bla, bla, bla. (Also um genau zu sein, ich zeichne Rects, Ovale, Linien, Bilder) und dann ein "Flip" . Aber wo kommt dann das CLS hin? Die Rects (etc.) werden ja dann immer gelöscht. Edit2: Mit FrontBuffer allein klappts einwandfrei... |
||
![]() |
xaerox |
![]() Antworten mit Zitat ![]() |
---|---|---|
also wie den aufbau normal benutzen:
Code: [AUSKLAPPEN] Graphics ?, ?, ?, ? SetBuffer Backbuffer() ;alle variablen und functionen und etc. aufschreiben ;dann alles was im hauptteil läuft in der while wend-schleife: While ;machewasmachwas Flip Cls ;<--entweder ganz am ende in der while/wendschleife oder ganz am anfang Wend Ich hoffe du hast was gelernt mfg |
||
Biker sind wahre Helden.
Auch Musiker. |
![]() |
sheldon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist ja genau das, was ich gemeint habe, die rects werden "gelöscht".
Ich glaube man müsste CreateImage benutzen und in der Schleife den Imagebuffer einsetzen... Weiß allerdings nicht, ob das so gut ist... |
||
![]() |
Nova |
![]() Antworten mit Zitat ![]() |
---|---|---|
Natürlich werden die rects gelöscht. Mal sie doch einfach normal! | ||
AMD Athlon II 4x3,1GHz, 8GB Ram DDR3, ATI Radeon HD 6870, Win 7 64bit |
![]() |
sheldon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach ich doch^^
Sry, wenn ich mich so verwirrend ausdrücke... |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Cls nach Flip oder vor dem Zeichnen. Flip zeigt dir den BackBuffer an und schiebt den Frontbuffer sozusagen nach hinten.
Code: [AUSKLAPPEN] Graphics 800,600,0,2 SetBuffer BackBuffer() mx% = 0 my% = 0 text2 = False ;Eine Variable um einen anderen Text anzuzeigen. :o While Not KeyHit(1) mx = MouseX() my = MouseY() If KeyHit(57) Then text2 = True EndIf If text2 = False Text mx,my,"Ich folge der Maus!" Text 0,0, "Leertaste um Text umzuschalten!" Else Text mx,my,"Ich stinke nach Fleischkäse!" Rect 0,0,32,32,1 EndIf Flip Cls Wend End |
||
![]() |
sheldon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, aber ich zeichne ja zufällige Rects und Ovale. | ||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Objekte müssen dann 1x zufällige werte erhalten und werden dann immer mit diesen gezeichnet... wie immer am besten mit Types ![]() |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] SeedRnd MilliSecs() ;Zufallszahlen neu setzen
Type T_rect Field x% ;X-Koordinate Field y% ;Y-Koordinate Field w% ;Breite Field h% ;Höhe Field r%,g%,b% ;Rot Grün Blau End Type Graphics 800,600,32,2 While Not KeyHit(1) If KeyHit(57) Then r.T_rect = New T_rect ;Neuer Typeeintrag r\w% = Rand(0,600) ;Breite zufällig bestimmen r\h% = Rand(0,400) ;Höhe zufällig bestimmen r\x% = Rand(0,800 - r\w) ;800 - Breite damit es nicht über den Bildschirm hinausgeht. r\y% = Rand(0,600 - r\h) r\r% = Rand(0,255); \ r\g% = Rand(0,255);--}Farben r\b% = Rand(0,255); / EndIf DrawMyRandomRects() Text 0,0,"Drücke die Leertaste um cooler zu sein!" Flip Cls Wend End Function DrawMyRandomRects() For r.T_rect = Each T_rect ;Alle Typeeinträge durchgehen Color r\r, r\g, r\b ;Farbe setzen Rect r\x, r\y, r\w, r\h, 1 ;Rect zeichnen Next ;Ende For-Schleife Color 255,255,255 ;Farbe wieder auf Weiss machen End Function In etwa so. MfG |
||
![]() |
sheldon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann bräuchte ich 7 Types und das wäre mir deutlich zu viel. So wie ich es jetzt habe, klappt es doch. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group