mit schleife verändern
Übersicht

![]() |
Rotes_EichhörnchenBetreff: mit schleife verändern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
also: ich hab d a sowas: Code: [AUSKLAPPEN] text x, y "" + frage1$ ;dann a bisserl code und dann if "klick" then ich will, dass wenn ich klicke, dass dann oben beim text nicht mehr +frage1$, sondern +frage2$, und so weiter, also einfach immer eine zahl pluss nehmen. Frage: kann ich das mit einer schleife machen? also kann ich also den namen: frage1$ aufsplitten, in sowas wie: "namen" + zahl$ + "$" ? wohl kaum oder? gibt es eine andere möglichkeit? |
||
totonak5 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das würd ich in einem feld machen also so:
Code: [AUSKLAPPEN] dim frage$(10) repeat text x,y,frage$(nr) ;bisserl code.... if mousehit(1) then nr = nr + 1 forever |
||
Just for Fun!
Jesus loves U! |
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
also hab ich das richtgi verstanden?:
Code: [AUSKLAPPEN] Dim fragen$(10)
Dim antworten$(10) zaehler% = 0 filein% = ReadFile("Bibliothek\" + ueberschrift$ + "\" + zeile1$) While Not Eof(filein) fragen(zaehler) = ReadLine(filein) antworten(zaehler) = ReadLine(filein) zaehler = zaehler + 1 Wend CloseFile filein für das "aus der datei lesen" und für das "auf dem Bildschirm wiedergeben" : Code: [AUSKLAPPEN] Dim frage$(10)
Repeat SetFont fragec Text 110,340,fragen(zaehler) Color 0, 0, 0 CreateInput(110,533) If X>=394 And X<=630And y>=39 And y<=275 Then If MouseDown(2) Then kleineloesung$=1 EndIf EndIf DrawImage loesung, 394, 39 If kleineloesung$=1 Then SetFont fontb antworten(zaehler) 150,580, "Die Antwort lautet: " If X>=331 And X<=408And y>=211 And y<=246 Then If MouseDown(2) Then kleineloesung$=0 EndIf EndIf EndIf Forever aber.. das geht irgendwie nicht... sobald ich mit der maus klicke, dass er jetzt die erst ezeile lesen soll, und sie in text wiedergeben soll, hängt sich das programm auf... bitte sagt mir meien Fehler! |
||
BlitzBasic303Betreff: RE: |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich häts so gemacht:
Code: [AUSKLAPPEN] Graphics 800,600,32,1 setbuffer backbuffer() Frage1$="Wer ist schlau? " Frage2$="Wer bin ich? " Und so weiter... fragenr=1 while not keyhit(1) if fragenr=1 Then Text 10,10,frage1$ if fragenr=2 Then Text 10,10,frage2$ Und so weiter... if frage1richtig=True Then fragenr=2 Und so weiter... flip wend end Kann sein das das primitiv ist, aber es klappt...[/syntax] |
||
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm...aber das basiert darauf, dass die Fragen und Antworten extern eingegeben werden können, bzw. mittels einem anderen programm... | ||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
@bb303, sehr flexibel deine Variante, kannst ja mal deinen Code auf 100 Frage anwenden.
Also entweder mit dem Array " Dim frage$(nr)", wenn die anzeahl der Antworten bekannt ist, wenn du sie, wie ich schon gesehen habe, aus einer datei liest, ist es besser Types zu nehmen, dann brauchst du nicht immer manuell die anzahl der Fragen eingeben und du kannst auch direkt die richtige antwort mitspeichern. Ein gutes Tutorial dazu findest du auf http://www.blitzbase.de/tutorials/shadow_1.htm(ausführlich) http://www.blitzbase.de/tutorials/shadow_2.htm(kompakt) |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
das verstehe ich nicht... ich werde mir das dann in den Ferien oder am Wochenende durchlesen... kann mir bis dahin jemand nur sagen, was ich da für Fehler drinnen habe? | ||
![]() |
preachie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry, aber ich bin noch nicht ganz durchgestiegen, was Du mit Deinem Code genau erreichen willst (auf was soll geklickt werden und was soll dann passieren?), aber eine Unschönheit ist mir aufgefallen, bei der es mich eh wundert, dass der Compiler nicht schon meckert.
Und zwar definierst Du Code: [AUSKLAPPEN] kleineloesung$=1
Das heißt, die Variable kleineloesung erwartet einen String, Du weist ihr aber eine Zahl zu. Also entweder: Code: [AUSKLAPPEN] kleineloesung%=1
oder Code: [AUSKLAPPEN] kleineloesung$="1"
Ansonsten beschreibe doch vielleicht nochmal genau, wie Dein Programm ablaufen soll... Gruß Preachie |
||
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. ich hab im kompletten programm das so deklariert, ... ist das nicht gut?
2. Also folgendes... mein Programm macht: 1. Du kannst zwischen 4 Bibliotheken wählen (das sind einfach Ordner), in denen sich (in der ersten version) bis zu 11 txt-docs befinden. Die docs sind so aufgebaut: Zeile1: Frage, Zeile2: Antwort, Zeile3: Frage, Zeile4: Antwort, ... pro datei sollen bis zu (in der ersten version) 50 Fragen und 50 Antworten möglich sein. (100 zeilen). Das Programm hat die 4 Bibliotheken gespeichert, die mit der Maus anklickbar sind. Daraufhin öffnet sich ein Menü, indem (in der ersten version) 11 dateien angezeigt werden. Wenni ch auf eine klicke, erscheint in der Mitte des Bildschirmes die Frage. Darunter, kann ich die Antwort eingeben, und wenn ich auf lösung klicke, dann wird darunter die richtige Lösung ausgegeben. (kleineloesung) so. Ich hab bis jetzt alles geschafft zu proggen, aber jetzt stecke ich an der Text-Ausgabe, bzw. Text aus txt-file lesen. Ich wollte das mit readline machen, aber habe hier gehört, dass das mit Dim viel besser gehen sollte. ... nunja...ich weiß nicht, wie ich damit umgehen soll... und hab gerade nicht die zeit /die motivation, mir das komplette tutorial durchzulesen. Also währe ich dankbar, wenn ihr mir den Code, mit dem ich aus dem dokument zeile für zeile lese, und anschliesend in 2 Variablen packe. Und den Code, der mir die Frage ausgibt, wenn ich auf "lösung" klicke, die antwort, und wenn ich auf "Weiter" klicke, soll die nächste Frage kommen. Danke schon mal im Voraus. |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eingeschalteter Debuger hätte dir die Stelle zeigen müßen die Fehlerhaft ist... Würde mal auf folgendes tipen.
Aus:Code: [AUSKLAPPEN] If X>=394 And X<=630And y>=39 And y<=275 Then lieberCode: [AUSKLAPPEN] If X>=394 And X<=630 And y>=39 And y<=275 Then oderCode: [AUSKLAPPEN] If RectsOverlap(x,y,1,1,394,39,236,236) Then
Genauso dann auch mitCode: [AUSKLAPPEN] If X>=331 And X<=408And y>=211 And y<=246 Then
[EDIT] Eventuell kann noch ein Fehler in der Dimensionierung deiner Dim sein. Wenn mehr Textinhalte in ein Dim geladen werden, als das Dim Kapazität hat, dann kommt auch ein Fehler. |
||
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
verstehe ich jetzt nicht ganz..aber egal...
kann ich den 2 codes haben? ich will aus einer datei.txt zeile für zeile rauslesen, und dann die erste zeile in die variable: frage$, und die die erste antwort in: antwort$ abspeichern. Dann soll nachdem ich einen button gedrückt habe, die nächsten beiden Zeilen rausgelesen werden. Im zweiten Teil wird einfach immer die aktuelle Frage, und die aktuelle antwort in einem text x, y wiedergegeben. Schafft das wer? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Davon würde ich abraten, dass er erst liest, wenn die Taste gedrückt wird. Du könntest doch einfach alle Fragen und Antworten vorab einlesen. Das hat dann nämlich den Vorteil, dass du danach die Reihenfolge der Fragen frei verändern kannst.
Vorgehen: 1. Datei öffnen 2. Einmal komplett durchgehen, damit du weisst, wieviele Einträge in der Datei sind. 3. Arrays mit entsprechender Grösse anlegen 4. Datei nocheinmal einlesen und die Einträge in die entsprechenden Arrays packen 5. Datei schliessen Nun kannst du mit den Fragen - Antworten machen, wozu du gerade Lust hast ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Datei öffnen:
Code: [AUSKLAPPEN] datei=ReadFile("Bibliothek\" + ueberschrift$ + "\" + zeile2$)
richtig? Einma komplett durchgehen, damit ich weiß, wieviele Fragen und antworten drinnen sind: Code: [AUSKLAPPEN] keine ahnung
Arrays mit entsprechender Grösse anlegen: Code: [AUSKLAPPEN] keine ahnung (zu beachten: erste zeile frage, zweite zeile antwort)
Datei nocheinmal einlesen und die Einträge in die entsprechenden Arrays packen: Code: [AUSKLAPPEN] villeicht:
while not EOF(datei) readline ... oder so Datei schliessen : Code: [AUSKLAPPEN] CloseFiledatei
bitte dort, wo ich mich ned auskennen, helfen!! |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Komplett durchgehen mit While Not Eof() und eine Zählvariable mit laufen lassen (n=n+1 als Beispiel genannt). Das Array redimensionieren mit einem nochmaligen ql:Dim ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
kann mir wer
1. Datei öffnen 2. Einmal komplett durchgehen, damit du weisst, wieviele Einträge in der Datei sind. 3. Arrays mit entsprechender Grösse anlegen 4. Datei nocheinmal einlesen und die Einträge in die entsprechenden Arrays packen 5. Datei schliessen das auscoden? |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
mach selsbt^^
ihc geb dir nen ansatz: Code: [AUSKLAPPEN] lesen=readfile("datei.txt") repeat arraygroeße=arraygroeße+1 until EoF(lesen);weiss nicht ob der befehl so benutzt wird kannst ja mal schnell gucken! nun nur noch array erstelen und alles reinlesen... PS:Ich schreibe aus protest wegen der Formulierung nicht mehr... |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Rotes_Eichhörnchen hat Folgendes geschrieben: kann mir wer
1. Datei öffnen 2. Einmal komplett durchgehen, damit du weisst, wieviele Einträge in der Datei sind. 3. Arrays mit entsprechender Grösse anlegen 4. Datei nocheinmal einlesen und die Einträge in die entsprechenden Arrays packen 5. Datei schliessen das auscoden? Nein eigentlich nicht. Programmieren ist sehr viel learning by doing also wirst du es wohl erst versuchen müssen. Bei Fehlern und Problemen helfen wir dir dann gerne wieder. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ansatzweise:
1. ReadFile 2. ReadLine 3. Dim 4. SeekFile -> ReadLine >> Dim 5. CloeFile |
||
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
war heute 2 h im Forum, und knapp vor nem Selbstmord^^
alle haben das gleiche gesagt, wie ihr... naja...dass sie mir keinen code geben, u. so... und die haben versucht mir das zu erklären, echt lieb von denen (2 h!!) aber nunja,... ich hab das nicht gerissen... aber naja, ich hab gemeint, dass ich gern mal so nen code sehen will, da ich es dann verstehen würde, aber sie haben nein gesagt... naja... dann werd ich halt nicht drum herum kommen... ______________________________________________________________ also fange ich mal an: Das habe ich, um einmal im Ordner die dateien.txt anzuzeigen: Code: [AUSKLAPPEN] Verz=ReadDir("Bibliothek\" + ueberschrift$ + "\")
Datei$=NextFile$(Verz) Datei$=NextFile$(Verz) Datei$=NextFile$(Verz) zeile1$="" + Datei$ Datei$=NextFile$(Verz) zeile2$="" + Datei$ Datei$=NextFile$(Verz) zeile3$="" + Datei$ Datei$=NextFile$(Verz) zeile4$="" + Datei$ Datei$=NextFile$(Verz) zeile5$="" + Datei$ Datei$=NextFile$(Verz) zeile6$="" + Datei$ Datei$=NextFile$(Verz) zeile7$="" + Datei$ Datei$=NextFile$(Verz) zeile8$="" + Datei$ Datei$=NextFile$(Verz) zeile9$="" + Datei$ Datei$=NextFile$(Verz) zeile10$="" + Datei$ Datei$=NextFile$(Verz) zeile11$="" + Datei$ CloseDir Verz funzt super! dann kommt: Code: [AUSKLAPPEN] filein = ReadFile("Bibliothek\" + ueberschrift$ + "\" + zeile1$) While Not Eof(filein) frage$ = ReadLine(filein) i% = i% + 1 Wend CloseFile filein das habe ich, um zu ermitteln, wie viele Zeilen denn das File hat (i%) jetzt muss ich nur noch die zeilen in die Variabeln einpacken: Code: [AUSKLAPPEN] Dim Feld(i%, 2)
filein = ReadFile("Bibliothek\" + ueberschrift$ + "\" + zeile1$) i% = 0 While Not Eof(filein) frage$ = ReadLine(filein) Feld(i%, 1) = frage$ antwort$ = ReadLine(filein) Feld(i%, 2) = antwort$ i% = i% + 1 Wend CloseFile filein auch geschafft. Wenn ich das jetzt eingebe, dann wird richtig! die erste Frage, u. die erste Antwort ausgegeben. Jetzt brauch ich nur noch etwas, mit dem ich per Mausklick, auf die nächste Frage weiterschalten kann. (Mausklick ist falsch ausgedrückt... ich mach das so: if weiter$=1, then geh eine Frage weiter... nur das: "geh eine Frage weiter", habe ich noch ned... PS: großen dank die beiden leute im Chat, die sicher wissen, dass sie gemeint sind... und sry, dass ich zeitweise ausgerastet bin^^ |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist simpel:
Du brauchst eine Variable, die sich merkt welche Frage das gerade aktuell ist. Wenn dann "weiter = 1" ist, musst du einfach die Variable um 1 erhöhen ![]() Also eigentlich genau so wie du beim Einlesen Frage um Frage eingelesen hast ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group