Toon posts:

[qbasic] foutmelding bij asci code voor enter

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb dit programma:
code:
1
2
3
4
5
6
7
dim code as string
dim codeinst as integer

input "voer de toets in de uw wil omzetten naar een asci code", code
codeinst=asc(code)

print "de asci code is: ", codeinst

Alles verloopt goed maar al geef ik een enter geeft het programma een foutmelding.

AL zijn we toch met qbasic bezig heb ik nog een vraag:

kan ik 16 bits qbasic/quickbasic code combineren met c++ 32 bits code
(via linken

[ Voor 24% gewijzigd door Verwijderd op 19-04-2003 18:04 ]


  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 15:24

johnwoo

3S-GTE

Woei, even in m'n geheugen graven, lang geleden dat ik QB gebruikte :)

Als ik me niet vergis zet Input alles tot aan de eerste enter in een string; de enter zelf niet. Als jij dus alleen een enter geeft, probeer je in de volgende regel de ASCII waarde van... niks te bepalen :) Als je maar één karakter wilt invoeren kan je beter de Input$ functie (dus niet de Input statement die je nu gebruikt) gebruiken. De Input$() functie pakt alle losse toetsaanslagen, dus ook enters. IIRC kan je daarbij opgeven hoeveel karakters je in wilt lezen; in jouw geval zou het zoiets worden:
code:
1
2
3
4
5
6
7
8
Dim Code As String
Dim CodeInst As Integer

Print "Druk op de toets die u wilt omzetten: ";
Code = Input$(1)
CodeInst = Asc(Code)

Print: Print "De ASCII code is ", Str$(CodeInst)


Je kunt 16-bits code aanroepen in een 32-bits applicatie met behulp van thunking. Dit werkt echter wel verschillend op Windows 9x en op Windows NT, en ik weet ook niet of het ook met oude QB code werkt (die gebruik maakt van DOS calls). Zelf heb ik daar verder geen ervaring mee. Als het enigszins kan is het denk ik makkelijker om je bestaande code te recompilen naar 32 bits.

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


Verwijderd

10 a$=inkey$
20 if a$=chr$(13) then beep
30 if a$=""then goto 10
40 rem Uitvoer
50 print asc(a$)

greetz...

[ Voor 115% gewijzigd door Verwijderd op 20-04-2003 11:17 ]


  • Kix@$$
  • Registratie: December 2001
  • Laatst online: 21-08 15:33
Verwijderd schreef op 19 April 2003 @ 17:47:
ik heb dit programma:
code:
1
2
3
4
5
6
7
dim code as string
dim codeinst as integer

input "voer de toets in de uw wil omzetten naar een asci code", code
codeinst=asc(code)

print "de asci code is: ", codeinst

Alles verloopt goed maar al geef ik een enter geeft het programma een foutmelding.

AL zijn we toch met qbasic bezig heb ik nog een vraag:

kan ik 16 bits qbasic/quickbasic code combineren met c++ 32 bits code
(via linken
Opzich klopt het dat je een fout krijgt, want met een [Enter] sluit je de input af, en de enter zelf komt niet in [code$] te staan.
[code$] is dus leeg, en daar kan hij geen ascii waarde van pakken.

Je zou je Input$() moeten vervangen door een INKEY$, bijvoorbeeld (uit m'n hoofd):
QBasic:
1
2
3
While code$ = ""
    code$ = INKEY$
Wend

zo komt dus elke toets die je aanraakt in [code$] te staan :)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22-08 01:56
Verwijderd schreef op 19 April 2003 @ 17:47:
kan ik 16 bits qbasic/quickbasic code combineren met c++ 32 bits code
(via linken
Nee, binnen een 'proces' kun je maar van één model gebruikmaken. Je zult je BASIC-code dus naar een 32-bits model moeten compileren (met VisualBasic ofzo, maar ik heb geen idee hoe compatible dat is met QBasic), of, natuurlijk, je C++ code naar een 16-bits model (met Turbo C++ ofzo), wat waarschijnlijk makkelijker is (al kun je dan weer niet van, bijvoorbeeld, de Windows API gebruikmaken).

Verwijderd

code:
1
2
3
4
5
6
dim codeinst as integer

input "voer de toets in de uw wil omzetten naar een asci code", code
codeinst=asc(code)

print "de asci code is: ", codeinst


wordt:

code:
1
2
3
4
5
6
7
8
9
dim codeinst as integer

print "voer de toets in de uw wil omzetten naar een asci code"

code = input$(1)   

codeinst=asc(code)

print "de asci code is: ", codeinst
Pagina: 1