|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4614 Wohnort: ~/
|
Verfasst am: 31.01.2012, 19:58 Titel: |
|
|
Code: | OPEN phatprog + "tmp.dat" FOR RANDOM AS #1 LEN=255 |
so in der Art. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 04.02.2012, 19:21 Titel: |
|
|
ok danke das funzt, hab jetzt auch entlich raus wie ich die alte field zeile ersetze, doch leider gibt es ein neues problem: nachdem der code etwas in eine datei geschrieben hat soll er auf eine eingabe warten über do sleep 1... loop while inkey = "" doch direkt nach dem speichern endet das prog
wenns sein muss stell ich die frage auch nochmal unter allgemeine fragen zu FB... ansonsten ist hier erstmal mein probier code
Code: | #include "fbgfx.bi"
declare sub konischiwa (txt as string)
DECLARE SUB autowrite (c as integer,ze as integer,sp as integer,wort as string)
DECLARE SUB button (cb1 as integer,cb2 as integer,ze as integer,sp as integer,c as integer,wort as string)
dim as integer halb
dim as string txt,bust,wort
dim K as string*3, B as string*3
dim as integer xmaus,ymaus,mrad,mbuttons,mclib,mrad2,mradoffset
TYPE ContactInformation
strasse AS STRING * 10
ContactName AS STRING * 10
PhoneNumber AS STRING * 10
Email AS STRING * 10
END TYPE
DIM Contact AS ContactInformation
windowtitle "MyTour by braesident"
screenres 800,480,8,,
close
mytourstart:
button (7,9,200,360,15,"Touren")
do
getmouse (xmaus,ymaus,mrad,mbuttons,mclib) 'xmaus = wide/ymaus = hide
mrad2=mrad-mradoffset 'mrad erhält 2te variable zum späteren zurücksetzen
'beispiel: if mbuttons = 1 then mradoffset=mrad ..... zum zurücksetzen des rades
color 15:locate 1,1:? xmaus,ymaus,mrad2,mbuttons,mclib
if multikey (fb.sc_escape) then end
if mbuttons = 1 and xmaus > 359 and xmaus < 441 and ymaus > 199 and ymaus < 211 then goto Touren
loop
locate 5,10: ? "hier ist das ende"
sleep:end
Touren:cls 'Touren
? "Hier ist Seite 2"
OPEN "C:\" + "tmp.dat" FOR RANDOM AS #1 LEN=40
Contact.strasse = "polo ave 17"
Contact.ContactName = "Marko Polo"
Contact.PhoneNumber = "(030)3344 1212"
Contact.Email = "marko@polo.com"
put #1,1,Contact
close #1
do
sleep 3000
loop while inkey =""
? "gespeichert"
sleep
end
'-------------------------------------------------------------
sub konischiwa (txt as string)
locate 3,5:? txt
end sub
SUB button (cb1 as integer,cb2 as integer,ze as integer,sp as integer,c as integer,wort as string)
dim as integer halb
? "sub button "
LINE (sp, ze)-STEP(80, 10),cb1 , BF
LINE (sp + 1, ze + 1)-STEP(80, 10), cb2, BF
halb = len(wort)* 6 / 2
sp = sp + 42 - halb
autowrite(c, ze + 4, sp, wort)
? "end sub button"
END SUB
SUB autowrite (c as integer,ze as integer,sp as integer,wort as string)
dim as integer i
dim as string bust
COLOR c
FOR i = 1 TO LEN(wort)
bust = MID(wort, i, 1)
IF bust = "a" OR bust = "A" THEN PSET (sp, ze + 4): DRAW "u3 e1 r2 d4 u2 l3": sp = sp + 6: GOTO awende 'A
IF bust = "ä" OR bust = "Ä" THEN PSET (sp, ze + 4): DRAW "u2 e2 f2 d2 u2 l4 bu3 u-1 br4 d-1": sp = sp + 7: GOTO awende'Ž
IF bust = "b" OR bust = "B" THEN PSET (sp, ze): DRAW "d4 r2 e1 h1 l1 r1 e1 h1 l2": sp = sp + 6: GOTO awende 'B
IF bust = "c" OR bust = "C" THEN PSET (sp + 3, ze): DRAW "l2 g1 d2 f1 r2": sp = sp + 6: GOTO awende 'C
IF bust = "d" OR bust = "D" THEN PSET (sp, ze): DRAW "d4 r2 e1 u2 h1 l2": sp = sp + 6: GOTO awende 'D
IF bust = "e" OR bust = "E" THEN PSET (sp + 3, ze): DRAW "l3 d2 r2 l2 d2 r3": sp = sp + 6: GOTO awende 'E
IF bust = "f" OR bust = "F" THEN PSET (sp + 3, ze): DRAW "l3 d2 r2 l2 d2": sp = sp + 6: GOTO awende 'F
IF bust = "g" OR bust = "G" THEN PSET (sp + 3, ze): DRAW "l2 g1 d2 f1 r2 u2 l1": sp = sp + 6: GOTO awende 'G
IF bust = "h" OR bust = "H" THEN PSET (sp, ze): DRAW "d4 u2 r3 u2 d4": sp = sp + 6: GOTO awende 'H
IF bust = "i" OR bust = "I" THEN PSET (sp + 2, ze): DRAW "d4": sp = sp + 6: GOTO awende 'I
IF bust = "j" OR bust = "J" THEN PSET (sp, ze): DRAW "r3 d3 g1 l1 h1": sp = sp + 6: GOTO awende 'J
IF bust = "k" OR bust = "K" THEN PSET (sp, ze): DRAW "d4 u2 r1 e2 g2 f2": sp = sp + 6: GOTO awende 'K
IF bust = "l" OR bust = "L" THEN PSET (sp, ze): DRAW "d4 r3": sp = sp + 6: GOTO awende 'L
IF bust = "m" OR bust = "M" THEN PSET (sp, ze + 4): DRAW "u4 f2 e2 d4": sp = sp + 6: GOTO awende 'M
IF bust = "n" OR bust = "N" THEN PSET (sp, ze + 4): DRAW "u4 f4 u4": sp = sp + 6: GOTO awende 'N
IF bust = "o" OR bust = "O" THEN PSET (sp, ze + 1): DRAW "d2 f1 r1 e1 u2 h1 l1": sp = sp + 6: GOTO awende 'O
IF bust = "p" OR bust = "P" THEN PSET (sp, ze + 4): DRAW "u4 r2 f1 g1 l1": sp = sp + 6: GOTO awende 'P
IF bust = "q" OR bust = "Q" THEN PSET (sp, ze + 1): DRAW "d2 f1 r1 e1 f1 h1 u2 h1 l1": sp = sp + 7: GOTO awende 'Q
IF bust = "r" OR bust = "R" THEN PSET (sp, ze + 4): DRAW "u4 r2 f1 g1 l1 f2": sp = sp + 6: GOTO awende 'R
IF bust = "s" OR bust = "S" THEN PSET (sp, ze + 4): DRAW "r2 e1 h1 l1 h1 e1 r2": sp = sp + 6: GOTO awende 'S
IF bust = "t" OR bust = "T" THEN PSET (sp, ze): DRAW "r2 d4 u4 r2": sp = sp + 6: GOTO awende 'T
IF bust = "u" OR bust = "U" THEN PSET (sp, ze): DRAW "d4 r3 u4": sp = sp + 6: GOTO awende 'U
IF bust = "ü" OR bust = "Ü" THEN PSET (sp, ze - 1): DRAW "bd2 d3 r3 u3 bu2 r-1": sp = sp + 6: GOTO awende 'U
IF bust = "v" OR bust = "V" THEN PSET (sp, ze): DRAW "d2 f2 e2 u2": sp = sp + 7: GOTO awende 'V
IF bust = "w" OR bust = "W" THEN PSET (sp, ze): DRAW "d4 e2 f2 u4": sp = sp + 6: GOTO awende 'W
IF bust = "x" OR bust = "X" THEN PSET (sp, ze): DRAW "f4 h2 g2 e4": sp = sp + 6: GOTO awende 'X
IF bust = "y" OR bust = "Y" THEN PSET (sp, ze): DRAW "d2 r3 u2 d4 l2": sp = sp + 6: GOTO awende 'Y
IF bust = "z" OR bust = "Z" THEN PSET (sp, ze + 1): DRAW "u1 r3 g3 d1 r3 u1": sp = sp + 6: GOTO awende 'Z
IF bust = "0" THEN PSET (sp, ze + 1): DRAW "d2 f1 r2 e1 u2 h1 l2": sp = sp + 6: GOTO awende '0
IF bust = "1" THEN PSET (sp + 2, ze + 4): DRAW "u4 g2": sp = sp + 6: GOTO awende 'I
IF bust = "2" THEN PSET (sp, ze + 1): DRAW "e1 r1 f1 g3 r3": sp = sp + 6: GOTO awende '2
IF bust = "3" THEN PSET (sp, ze + 4): DRAW "r2 e1 h1 l1 r1 e1 h1 l2": sp = sp + 6: GOTO awende '3
IF bust = "4" THEN PSET (sp + 2, ze + 4): DRAW "u4 g2 d1 r3": sp = sp + 6: GOTO awende '4
IF bust = "5" THEN PSET (sp, ze + 4): DRAW "r2 e1 h1 l2 u2 r3": sp = sp + 6: GOTO awende '5
IF bust = "6" THEN PSET (sp + 2, ze): DRAW "l1 g1 d2 f1 r1 e1 h1 l1": sp = sp + 6: GOTO awende '6
IF bust = "7" THEN PSET (sp, ze + 1): DRAW "u1 r3 d1 g3": sp = sp + 6: GOTO awende '7
IF bust = "8" THEN PSET (sp, ze + 1): DRAW "f1 g1 f1 r1 e1 h1 e1 h1 l1": sp = sp + 6: GOTO awende '8
IF bust = "9" THEN PSET (sp + 2, ze + 2): DRAW "l1 h1 e1 r1 f1 d2 g1 l1": sp = sp + 6: GOTO awende '9
IF bust = "%" THEN PSET (sp, ze): PSET (sp + 4, ze + 4): PSET (sp, ze + 4): DRAW "e4": sp = sp + 8: GOTO awende '%
IF bust = ">" THEN PSET (sp + 1, ze + 4): DRAW "e2 h2": sp = sp + 6: GOTO awende'>
IF bust = "<" THEN PSET (sp + 4, ze + 4): DRAW "h2 e2": sp = sp + 6: GOTO awende'>
IF bust = "/" THEN PSET (sp, ze + 4): DRAW "e4": sp = sp + 6: GOTO awende '/
IF bust = "\" THEN PSET (sp + 4, ze + 4): DRAW "h4": sp = sp + 6: GOTO awende '/
IF bust = "_" THEN PSET (sp, ze + 4): DRAW "r4": sp = sp + 6: GOTO awende '_
IF bust = "+" THEN PSET (sp + 1, ze + 2): DRAW "r2 l1 u1 d2": sp = sp + 6: GOTO awende '+
IF bust = "-" THEN PSET (sp + 1, ze + 2): DRAW "r2": sp = sp + 6: GOTO awende '-
IF bust = "." THEN PSET (sp + 2, ze + 4): DRAW "": sp = sp + 6: GOTO awende '.
IF bust = "," THEN PSET (sp + 2, ze + 4): DRAW "g1": sp = sp + 6: GOTO awende ',
IF bust = ":" THEN PSET (sp + 2, ze + 4): PSET (sp + 2, ze + 2): sp = sp + 6: GOTO awende ':
IF bust = " " THEN sp = sp + 6: GOTO awende 'leer
PSET (sp, ze + 4): DRAW "r4": sp = sp + 6
awende:
NEXT i
END SUB |
|
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 04.02.2012, 23:33 Titel: |
|
|
Probier statt der Schleife mal ein GetKey..
Wenn's klappt lass es doch dabei^^
Ansonsten sollteste vllt. mal den Tastaturpuffer vor der Schleife löschen: Code: |
While Inkey<>""
c=Inkey
Wend
Do..
etc.
|
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 05.02.2012, 13:20 Titel: |
|
|
danke für deine Antwort, aber ich glaub ich zu blöd.
Ich habe es mit Getkey probiert - selbes ergebnis
und mit deinem Code bsp ebenfalls - auch nix
hab dann mal Code: | ? "inkey: ", inkey: sleep | vor put#1... eingefügt
und das programm zeigt Inkey:
dann habe ich diese Zeile verschoben zwischen put... und close#1 und es wird nichts mehr angezeigt |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 05.02.2012, 13:38 Titel: |
|
|
Wenn du mit FreeBasic arbeitest, solltest du auch die FreeBasic-Hilfe haben:
siehe hier. Es ist keine gute Idee, mit Random zu arbeiten, wenn du neu bist in FreeBasic..
Der alte Briest würde sagen:'Das ist ein weites Feld..' _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 05.02.2012, 14:08 Titel: |
|
|
ja danke diese seite hab ich schon x mal gelesen
allerdings wollt ich binary einfach nicht versuchen. warum ? Gute Frage warscheinlich weil RANDOM unter QB immer ging und ich mir nicht vorstellen konnte das das selbe Ziel dabei raus kommt.
Binary geht jedenfalls... Trotzdem würde ich gern wissen und verstehen warum der Code bei RANDOM zwar richtig in die vorgesehene Datei Schreibt
aber bei PUT oder CLOSE einfach endet
wenn ich den Code von http://www.petesqbsite.com/sections/express/issue6/index.html#randomaccessfiles unter der Überschrift EXAMPLE PROGRAM kopiere und am Ende vor close ein sleep einfüge, dann klappt das prima!? |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4614 Wohnort: ~/
|
Verfasst am: 05.02.2012, 15:56 Titel: |
|
|
GETKEY wartet auf jeden Fall auf eine Eingabe - wenn es das nicht tut, heißt das, dass dein Programm nicht bis zum GETKEY gekommen ist. Da RANDOM wirklich ein Relikt vergangener Tage ist, haben das die FreeBASIC-Entwickler nicht in das Zentrum der Entwicklungsarbeit gestellt; mit den Worten der Referenz:
Referenz hat Folgendes geschrieben: | Es kann nicht garantiert werden, dass FreeBASIC den Dateimodus RANDOM in vollem Umfang unterstützt. |
Möglicherweise hat dein Problem damit zu tun; wenn es mit BINARY funktioniert, liegt diese Vermutung jedenfalls nahe.
Übrigens funktioniert das SLEEP bei mir unter Linux; auf der anderen Seite solltest du vielleicht wissen, dass dein UDT Contact die Länge 44 besitzt, und nicht 40. Könnte auch eine mögliche Fehlerquelle sein. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|