-
numerisches Feld auf numerischen Inhalt prüfen free
Hallo zusammen,
ich bekomme aus der S36 einen Satz, in dem mehrere numerische Felder nicht korrekt gefüllt bzw. im alten RPG36 erst gar nicht ausgegeben werden und damit auch nicht initialisiert sind !
Ich habe früher schon mal, aber dann pro Feld, die Länge auf *all x'00' innerhalb einer DS mit %subst abgefragt, das Feld selber konnte ich ja nicht abfragen :=)
Kann mir jemand sagen, wie man heute im FreeRpg solche "Probleme" am saubersten lösen kann ??? ...am besten ohne die jeweilige Feldlänge berücksichtigen zu müssen ...
Vielen Dank vorab und Vg.
-
Hallo den TESTN gibt es ja nicht mehr,
Ich habe mal vor vielen Jahren (nach der UmstelLung von S/36 -> as/400 das mittels RPG Programm gelöst
Beim Programm umwandeln den Parameter : Dezimaldatenfehler ignorieren . *YES setzen.
dann den Satz einlesen und wieder ausgeben. (Datei muss aber Beschreiben sein, also nicht alles in einem Feld) Habe damals sogar ein Programm geschrieben, was die DDS einließt und ein RPG Progamm schreibt, Umwandelt und ausführt. (lang lang ist's her)
Wenn du die Feldläng kennst dann mit %dec - Dazu gibt es von Baldur einen Beitrag von 2004 suche mal hier nach TESTN
Klaus
Programmierung
-
Guckst Du mal hier.
https://www.rpgpgm.com/2013/11/valid...out-testn.html
Simon wurde nicht umsonst dieses Jahr IBM Champion. Zu Recht wie ich finde.
Abgesehen davon hat es hier im Forum ähnliche Koryphäen ;-)
kf
-
Die allgemeingültige Variante (im obigen Link beschrieben) ist:
%DEC(Feld:%size(Feld):%decpos(Feld))
mit Monitor. Dasselbe gilt auch bei "eval testfeld = feld", wobei man "eval" auch weg lassen kann.
Letzteres ist das am schnellsten zu kodierende.
Der Nachteil ist halt, dass jedes Feld einzeln in eine Monitorgroup gepackt werden muss.
Dies wirkt auf zoned genauso wie auf packed. %size() gibt die Anzahl Stellen, %decpos() die Anzahl Nachkomma. Da %dec() ja nicht dynamisch ist, die Werte also konstan sein müssen, muss man hald jedes Feld prüfen.
TESTN funktioniert ja weiterin als fixed Anweisung. Man kann in Fullyfree durchaus mal ohne Aufwand eine C-Anweisung einschieben.
TESTN hält allerdings bei Zoned das "Ü" (x'D0' - x'D9') auf der rechten Seite für N-negativ.
-
Zitat von Peet
Hallo zusammen,
ich bekomme aus der S36 einen Satz, in dem mehrere numerische Felder nicht korrekt gefüllt bzw. im alten RPG36 erst gar nicht ausgegeben werden und damit auch nicht initialisiert sind !
Ich habe früher schon mal, aber dann pro Feld, die Länge auf *all x'00' innerhalb einer DS mit %subst abgefragt, das Feld selber konnte ich ja nicht abfragen :=)
Kann mir jemand sagen, wie man heute im FreeRpg solche "Probleme" am saubersten lösen kann ??? ...am besten ohne die jeweilige Feldlänge berücksichtigen zu müssen ...
Vielen Dank vorab und Vg.
Danke an alle für die Vorschläge !
Vg.
Similar Threads
-
By tarkusch in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 15-11-19, 12:16
-
By alex61 in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 06-07-16, 11:51
-
By harkne in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 11-04-16, 15:22
-
By ubas in forum NEWSboard Programmierung
Antworten: 17
Letzter Beitrag: 29-10-14, 15:36
-
By heynem in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 05-12-02, 09:27
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