-
Fehlermeldungen:Cursor Position
Hallo,
wollte die Cursor Position sauber programmieren, stosse aber immer auf folgende Fehler: *RNF0312/ *RNF5377.
Code:
A** DDS Angaben
A RTNCSRLOC(&RCD &FLD)
A RTNCSRLOC(*MOUSE &ROW &COL)
A 31 CSRLOC(OUTROW OUTCOL)
A OVERLAY
A RCD 10A H
A FLD 10A H
A ROW 3S 0H
A COL 3S 0H
A OUTROW 3S 0H
A OUTCOL 3S 0H
D* DATENSTRUKTUR FÜR FUNKTIONSTASTEN
D INFODS DS
D CURLOC 370 371
477 if *inkd = *on;
478 OUTROW = (CURLOC:256);
======> abbb
*RNF0312 20 a 021700 Rechte runde Klammer erwartet, aber nicht gefunden.
*RNF5377 20 b 021700 Ende des Ausdrucks erwartet.
479 OUTCOL = %Rem(%INT(CURLOC) : 60);
480 *IN31 = *ON;
Wenn ich die Klammern ganz weglasse kommt die Fehlermeldung:
Code:
478 OUTROW = CURLOC:256;
======> a
*RNF5377 20 a 021700 Ende des Ausdrucks erwartet.
Ist das so sauber programmiert?
Gruß
Tarki
-
Ich nehme an mit der Operation:
soll eine Divison ausgeführt werden?
Dies müßte aber korrekt:
sein.
Das Zeichen ':' ist kein Expression Operator.
Gruss,
Ernst
-
Wird ein lustiges Resultat geben, wenn das Feld alpha definiert ist.... ;-)
Grundsätzlich würde ich eh auf die Definition (Länge/Typ)der Felder achten!
kf
-
Stimmt; das Feld CURLOC ist character.
Laut Info Center enthält es:
Cursor location (line and position). Updated on input operations that are not subfile operations that return data to the program. For example, hex 0102 means line 1, position 2. Line 10, position 33 would be hex 0A21.
Du mußt also diesen Inhalt von Hex auf Numeric umrechnen.
So ähnlich wie z.B.:
Code:
D CHROW DS
D NUMROW 1 2B 0
D CHPOS DS
D NUMPOS 1 2B 0
C EVAL NUMROW = 0
C EVAL NUMPOS = 0
C EVAL %subst(CHROW:2:1) = %subst(CURLOC:1:1)
C EVAL %subst(CHPOS:2:1) = %subst(CURLOC:2:1)
Dann müßte der Inhalt von NUMROW und NUMPOS den numerischen Wert der Cursorposition enthalten.
Ich habe dies aber jetzt nicht ausprobiert.
Gruss,
Ernst
-
Habe es nun wie folgt dank eurer Hilfe umgesetzt:
Code:
D CURLOC 370 371B 0
OUTROW = (CURLOC/256);
OUTCOL = %Rem(%INT(CURLOC) : 256);
*IN31 = *ON;
-
So sollte es noch einfacher gehen.
PHP-Code:
d InfoDs ds d DsRow 370 370I 0 d DsCol 371 371I 0 c eval OutRow = dsRow c eval OutCol = dsCol
mfg Christian
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks