-
Binary in fully free ?
Hallo
eine kruze Frage, vllt. kenne ja jemand von euch die Lösung!
Folgende DS ist gegeben
Code:
D dsRcvVar DS qualified
D BytesReturn 1 4B 0
D #Bytes_Avail 5 8B 0
D SplfName 9 18
D jobname 19 28
D username 29 38
D jobnr 39 44
D splfnr 45 48B 0
D #Job_SysNam 49 56
D #Splf_Dat 57 64
D #Reserved 65 65
D #Splf_Time 66 71
Nun möchte ich diese DS in Fully Free übernehmen, aber ich scheitere immer an der Binary Declaration.
So sieht es bei mir aus:
Code:
dcl-ds dsRcvVar qualified;
jobName char(10) pos(19);
userName char(10) pos(29);
jobNr char(6) pos(39);
splfNr bindec(4:0) pos(45);
end-ds;
Ich dachte dies wäre richtig, aber im Programm bekomme ich immer nur eine 0 ausgegeben, obwohl da 82 stehen müsste.
-
Also für mein Verständnis würde ich das ohne POS machen
PHP-Code:
dcl-ds dsRcvVar qualified;
BytesReturn bindec( 4:0 );
#Bytes_Avail bindec( 4:0 );
SplfName char( 10 );
jobname char( 10 );
username char( 10 );
jobnr char( 5 );
splfnr bindec( 4:0 );
.....
Gruß Ronald
-
Hallo Dominic,
die Struktur sieht im fully free folgendermaßen aus:
Code:
dcl-ds dsRcvVar qualified;
BytesReturn bindec(9:0) pos(1);
#Bytes_Avail bindec(9:0) pos(5);
SplfName char(10) pos(9);
jobname char(10) pos(19);
username char(10) pos(29);
jobnr char(6) pos(39);
splfnr bindec(9:0) pos(45);
#Job_SysNam char(8) pos(49);
#Splf_Dat char(8) pos(57);
#Reserved char(1) pos(65);
#Splf_Time char(6) pos(66);
end-ds;
Die bindec Felder müssen 9,0 definiert werden!
Ich glaube, im fixed Format sind das die Anzahl der Bytes und im free-Format die Anzahl der Stellen.
Für 9,0 benötigst du 4 Bytes binär. Diese Bytes gibst du im fixed Format an. Theoretisch kann 4 Byte binär noch größere Zahlen als 9,0 darstellen. Aber 9,0 ist der Maximalwert laut Handbuch.
Dieter
-
Besser wäre es, die korrekte Feldtype zu nehmen: INT(2), INT(4), INT(8).
Ein BINDEC wird intern immer erst von BIN nach DEC und von DEC nach BIN gewandelt incl. Überlaufprüfung, bindec(2) = +/-9999, INT(2) = +-/32767. Bei Zuweisung von 10000 erfolgt ein MCH.
-
Zitat von Fuerchau
Besser wäre es, die korrekte Feldtype zu nehmen: INT(2), INT(4), INT(8).
Ein BINDEC wird intern immer erst von BIN nach DEC und von DEC nach BIN gewandelt incl. Überlaufprüfung, bindec(2) = +/-9999, INT(2) = +-/32767. Bei Zuweisung von 10000 erfolgt ein MCH.
Du meinst wohl: INT(5) für 2 Byte Integer, INT(10) für 4 Byte Integer und INT(20) für 8 Byte Integer. BinDec(4) deckt den Bereich zwischen -9999 und +9999 während Int(5) den Bereich zwischen -32768 und +32767 abdeckt.
BinDec(9) deckt den Bereich zwischen -999.999.999 und +999.999.999 ab, während Integer(10) den Bereich zw. ca. -2,1 Mrd und +2,1 Mrd abdeckt,
In RPG wird die Länge immer als Anzahl Ziffern, die der Maximal-Wert benötigt angegeben.
BinDec-Werte werden intern in Gepackt-Numerisch konvertiert, während Integer-Werte im Binär-Format sind und bleiben.
Beim Int-Binär-Firmat kann 1 Byte kann maximal 256 unterschiedliche Zustände einnehmen. Wenn man diese Werte potenziert, kann man die Maximal-Werte leicht berechnen)
Birgitta
-
Vielen Dank für die Ergänzung und detaillierte Erklärung.
-
Vielen lieben Dank
Das hilft mir definitiv weiter! Werde das mal umsetzten und mir anschauen.
Similar Threads
-
By derMuller in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 03-11-17, 09:24
-
By harkne in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 06-09-17, 14:44
-
By dholtmann in forum NEWSboard Programmierung
Antworten: 14
Letzter Beitrag: 12-05-17, 14:29
-
By dschroeder in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 18-12-15, 12:01
-
By Gimli in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 03-03-03, 10:23
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