Italia
Stammtisch & Caffè

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>57re>
besser
KompilierenMarkierenSeparieren
ElseIf (%Key<48) or (%Key>57)re>
und besser
KompilierenMarkierenSeparieren
if (ZZC% <=0) or (ZZC% >= 17)re>
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 Di base per 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() per Oder = Reihenfolge. Kurz: Ersetze Asc() durch Ord().

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



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

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;


Saluto
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  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

3.867 Views

Untitledvor 0 min.
Walter09.05.2021
rquindt27.01.2016
Untitled14.05.2012

Themeninformationen

Dieses Thema hat 3 subscriber:

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


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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