Deutsch
Stammtisch & Café

Erledigt: Inkey$

 

Detlev
Wulff
Ich will umsteigen von Powerbasic nach XProfan, habe Vollversion 10, aber mir bereitert einiges Probleme, nämlich das Fehlen elementarer Basic-Befehlsgruppen, wie ASC(),Inkey$() usw. Ich bin dann einfach angefangen mit den vorhandenen Befehlen zu spielen und per Versuch und Irrtum zum Ziel zu kommen!
Nun aber komme ich nicht weiter, weil der Rücksprung in die Menü-Anzeige bei Ergebnis 0 oder größergleich 16 einfach nicht funktioniert:
KompilierenMarkierenSeparieren
-Begin-----------------------------------------------------------------
declare key$, KeySum$, ZZC%
Cls
men:
Menüansicht
print "Menü: Zweizifferncode 01 .. 16"

WhileLoop 2 Schleife für zwei Segmente!

    fr0:
    WaitScan

    If @chr$(%Key) = ""

        goto "fr0"

    ElseIf %Key<48 or %Key>57

        goto "fr0"

    EndIf

    key$ = @chr$(%Key)
    KeySum$ = KeySum$ + Key$
    Print %ScanKey, Key$, %Key

EndWhile

ZZC%=Val(KeySum$)  Umwandlung Zweizifferncode integerwert

If  ZZC% <=0 or ZZC% >= 17   wenn der Wert Null oder größer als 17 ist dann das Menü anzeigen; funktioniert nicht

    goto "men"

EndIf

-End-------------------------------------------------------------------
print KeySum$,ZZC%
waitkey
End
 
18.12.2009  
 



Hallo Detlev,

paar "Probleme" sehe ich im Code.

Beispielsweise sollte man wohl statt
KompilierenMarkierenSeparieren
ElseIf %Key<48 or %Key>57

besser
KompilierenMarkierenSeparieren
ElseIf (%Key<48) or (%Key>57)

und besser
KompilierenMarkierenSeparieren
if (ZZC% <=0) or (ZZC% >= 17)

schreiben (in nativen Funktionen [...]  funktioniert es jedoch auch so wie Du es geschrieben hast) und Du springst mit Goto aus Blöcken heraus:
KompilierenMarkierenSeparierenwas IMHO auch nicht "erlaubt" ist (wiederum auch nicht in nativen Funktionen). Ich würde komplett auf Goto verzichten. Schaue auch ord , break , continue .
 
18.12.2009  
 




RGH
1. Zu Asc():
Die Funktion Asc() steht in BASIC für den Ascii-Code eines Zeichens. Unter Windows haben wir aber keinen Ascii-Zeichensatz sondern z.B. den Ansi-Zeichensatz oder gar einen anderen. Deshalb hat hier diese Funktion in Anlehnung an Delphi den neutraleren Namen Ord() für Oder = Reihenfolge. Kurz: Ersetze Asc() durch Ord().

2. Zu Vergleichen:
Wie der Hilfe zu entnehmen ist, orientiert sich die Hierarchie der Operatoren eher an Delphi bzw. Pascal (und andere Sprachen) las an BASIC, so dass zu klammern ist. Zitat aus der Hilfe:



Hinweis: Die Hierarchie entspricht in etwa der unter PASCAL und weicht von der BASIC-Hierarchie ab. Die Vergleichsoperatoren (...) sind in BASIC höher eingestuft. Aus BASIC:

If A% > 6 AND A% <= 20 THEN
<...>
End If

wird in XProfan:

If (A% > 6) AND (A% <= 20)
<...>
EndIf

In PASCAL würde man schreiben:

If (A > 6) AND (A <= 20) THEN BEGIN
<...>;
End;


Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
18.12.2009  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

3.881 Betrachtungen

Unbenanntvor 0 min.
Walter09.05.2021
rquindt27.01.2016
Unbenannt14.05.2012

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

RGH (1x)
iF (1x)
Detlev Wulff (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie