Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Array füllen Kategorie: Programmierung (von Dietmar Weickert - 5.02.2004 19:31)
Als Antwort auf Re: Array füllen von TN - 5.02.2004 17:43

> > Hallo TN!
> >
> > Schreibe uns doch mal, was du wirklich erreichen möchtest. Aus deinem Programm kann ich das
> > nämlich nicht erkennen. Daher wäre etwas erklärende Prosa gut.
> >
> > Beste GrüÃ?e,
> > Dietmar.
>
> Hallo Dietmar,
>
> ich möchte über die Folientastatur dreistellige Zahlen eingeben um
> damit z.B. Ports eines PCF`s anzusteuern.
>
> Dazu soll aus dem laufendem Programm die eingegebene Zahl
> ausgewertet werden, und eine entsprechend gestartete Funktion diese Aktionen
> ausführen.
>
> Ich dachte dieses Problem über das schreiben in ein Array zu lösen.
> Aber ich weiÃ? nicht, wie ich die einzelnen Zahlen einer bestimmten Stelle
> im Array zuordne. Ich dachte das geht so:
> zahl[0]=keycode;  
> zahl[1]=keycode;
> zahl[2]=keycode;
>
> aber selbst mit einem sleep wird die Zahl in Pos.0-2 eingetragen.
>
> Ã?ber die Summe kann ich ja dann eine Variable
> errechnen und damit Funktionen starten:
> a = zahl[0];
>  b = zahl[1];
> c = zahl[2];
>  v = a*100 + b*10 + c;     //Variable berechnen
>
> So z.B.:
> if v==456 {pcf.set(8,1);plm.beep(8);sleep 50; plm.beep(-1);}
>
> Wir bekomme ich es aber nun hin, dass die erste gedrückte Zahl nur in
> Pos. 0, die zweite Zahl nur in Pos.1, usw. eingetragen wird?
>
> Ich hoffe, dass ich mich verständlicher ausgedrückt habe.
>
> Für die Hilfe und die Zeit ein groÃ?es Dankeschön.
>
>
>

Hallo TN!

Zunächst einmal trenne die Eingabefunktion von der Verwertung der Tastendrücke:

function NumTaste returns byte {

byte myCode;

do { myCode=rbkeyb.get(); } while (myCode & 0xF0) != 0x30;  // Alles nicht-numerische überlesen

return myCode & 0x0F;  // Wert der getippten Zahl zurück geben

}

Um jetzt dein v als Ergebnis dreier eingetippter Ziffern zu berechnen genügt eine einfache Zuweisung:

v = NumTaste() * 100 + NumTaste() * 10 + NumTaste();  // Drei Tasten lesen und verwerten

Das Ganze ist jetzt sehr rasch hinein getippt und ohne Test. Sorry für allfällige Fehler. Aber vom
Prinzip kannst du es so verwenden.

Beste GrüÃ?e,
Dietmar.


    Antwort schreiben


Antworten:

Re: Array füllen (von TN - 5.02.2004 21:39)
    Re: Array füllen (von Dietmar Weickert - 6.02.2004 10:26)
        Re: Array füllen (von TN - 6.02.2004 13:55)