[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jul 2003
    Beiträge
    338

    Thumbs up FREE RPG Z-Add / Move

    Folgendes Problemchen:

    2 Variablen

    D FeldA s 5 0 inz(12345)
    D FeldB s 3 0 inz(0)

    Mit welcher Anweisung in Free RPG bekomme ich den Wert von FeldA (letzten 3 Stellen = 345 ) nach FeldB.

    Bei EVAL gibts einen Programm-Abbruch.

    Im festen Format könnte man z.B.: verwenden:
    z-add FeldA FeldB
    oder
    move FeldA FeldB

    mfg. Ludger

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo Ludger,

    das was Du da im fixed Format macht, darf ja eigentlich nicht wahr sein und würde auch in keiner ordentlichen Programmiersprache gehen. Da wird ein numerisches Feld als Alfa angefasst und rein zufällig (in Worten zufällig) landen die 3 letzten Stellen woanders; jede Änderung der Deklaration verändert den Code.
    Was willst Du eigentlich wirklich??
    Ich vermute mal, Du willst den Rest nach Division durch 1000, das geht dann mit:
    FeldB = %rem(FeldA : 1000);
    den Ewald kannst Du getrost weglassen, es reicht schon, wenn Du das ebenso unsinnige /free nicht weglassen darfst.

    mfg

    Dieter Bender
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Jul 2003
    Beiträge
    338
    Guten Morgen Dieter,

    es ist d o c h wahr, weil die Deklarationen genauestens bekannt sind und die Übertragung der letzten drei Stellen geschieht nicht zufällig, sondern bewußt gewollt.

    Der Tipp mit dem Rest nach der Division durch 1000 ist sehr gut. Das kann ich hierfür verwenden.

    Die Sache mit "Ewald" ist bekannt.

    Es ist doch schön zu sehen, dass auch andere am Karneval am Computer sitzen.

    In diesem Sinne: Vielen Dank und Helau

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo Ludger,

    ich kenne diese Art zu programmieren, aber schlechter Stil ist es dennoch, eine Änderung an einer Stelle (der Deklaration) hat völlig unübersehbare Auswirkungen an anderer Stelle (im Code). Zudem ist es so, dass man den code nicht versteht ohne in der Deklaration nachzusehen. Man macht scheinbar eine Zuweisung, erwartet also, dass in beiden Feldern dasselbe steht und zieht die "Denkste" Karte.

    BTW: Karl ist im free ebenso überflüssig wie Ewald.
    Alternative zu %rem ist hier Casting mit %char und dann %subst und dann wieder Cast rückwärts mit %int

    Dieter Bender
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Jul 2003
    Beiträge
    338
    Hallo Dieter,

    BTW.
    %char %subst %int

    BIFs sind in vielen Fällen recht hilfreich. Doch in manchen Fällen fährt man mit der Kuh ums Dorf.

    mfg Ludger

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo Ludger,

    dann macht man sich eine eigene Procedure, die weiss wie man mit einer Kuh um's Dorf fährt, gibt der einen sprechenden Namen und dann wird es in der Anwendung wieder einfach und lesbar.

    mfg

    Dieter Bender
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Nun, eine genauso eindeutige Variante ist die korrekte Definition:

    Code:
    d          ds
    d Felda            5 0  inz(12345)
    d feldb            3 0 overlay(felda:2)
    Nun spart man sich den EVAL und kann an der Definition erkennen, was man erreichen will.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    @Baldur: Dafür gilt dasselbe, wie für die MOVE, Z-ADD Variante, verdeckte Programmierung => schlechter Stil. Die Sparsamkeit mit EVAL ist auch so 'ne Sache. Man schreibt meist nur einmal und liest mehrfach und beim lesen wird's hier aufwändiger.

    mfg

    Dieter Bender

    PS: einfach nur meine Meinung, mit der ich meist nicht hinter dem Berg halte.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Datum-Konvertierung free rpg
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 14-03-08, 06:21
  2. Frei Porn Site!
    By Fucasdreh in forum NEWSboard Server Job
    Antworten: 0
    Letzter Beitrag: 10-01-07, 13:12
  3. Mehrere Bezugszahlen auf *off in Free RPG
    By mgraskamp in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 16-02-06, 16:01
  4. FREE RPG .. TESTN
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 25-01-05, 07:43
  5. Free Rpg Zeitdauer errechnen
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 12-07-04, 09:27

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •