-
Ich würde da eher das binäre Halbierungsverfahren anwenden. Da eine DTAARA immer noch nur 2000 Bytes lang sein kann, kommt man mit max. 11 Zugriffen hin (2^11=2048).
Bei einer DTAARA mit einer Länge > 11 Zeichen bist du dann sehr viel schneller als über eine sequentielle Schleife.
-
Grundsätzlich stimme ich dem zu.
Nur wie programmiert man das halbwegs vernünftig im CL?
Ne Schleife braucht mit DECLARE na sagen wir mal 7 Zeilen oder irgendwie sowas in der Richtung.
Bei ner Binärsuche muss ich doch immer die maxlen und die validlen mitziehen und je nachdem halbieren, zuzählen, entscheiden usw.
Gibts da ne knackige Formel für - umgesetzt in ein paar kurze Statements?
kuempi
Nachtrag:
ok habs mal gerade durchgespielt.
Nen 10-Zeiler oder so bei Binärsuche.... toll was alles so geht.
k.
-
Der Thread ist zwar schon ein Jahr alt, aber trotzdem:
würde mich wundern, wenns dafür nich nen API gibt.
Das geht nur per MI:
RSLVSP: Get Systempointer from Objekt
SETSPPFP: Get Spacepointer from Systempointer
Das API QWCRDTAA liefert nicht nur den Inhalt, sondern auch Type und Länge von Datenbereichen zurück.
Ist allerdings direkt aus CL nicht nutzbar; da muß man schon ein Kurzprogramm zum Aufruf drumsetzen.
Gruß,
Werner.
-
Dieses API ist identisch zum RTVDTAARA !
Es dient dazu, eben aus HLL's auch auf DTAARA's zuzugreifen, da aus diesen CMD's mit Rückgabeparametern nicht aufrufbar sind.
Im CLP bleibt es beim RTVDTAARA.
Allerdings kann man durch Nutzung des API's auf MONMSG verzichten und die Meldungen im Joblog vermeiden.
API's sind im Übrigen aus CLP genausogut oder schlecht aufrufbar wie in HLL's (RPG/COBOL/usw.).
-
Dieses API ist identisch zum RTVDTAARA !
Nein.
RTVDTAARA liefert mir den Wert der DTAARA, mindestens die Art muß ich kennen.
QWCRDTAA liefert mir eben auch Art, Länge und ggfs. Anzahl Dezimalstellen:
Retrieve Data Area (QWCRDTAA) API
Grüße,
Werner.
-
Stimmt 
Allerdings macht RTVDTAARA genau das Selbe !
Bei Dezimalfeldern habe ich sogar noch den Vorteil, wenn die Empfängervariable größer als die DTAARA ist, dass der Wert ausgerichtet wird.
Bei Zeichenbereichen kann ich immer mit der Länge 2000 arbeiten.
Nur beim CHGDTAARA benötige ich die genaue Länge, die mir allerdings obiges API liefern kann.
Similar Threads
-
By MatthiasK in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 10-01-07, 14:26
-
By ulbrecht in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 06-12-06, 18:06
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 13-11-06, 08:31
-
By M.Kasper in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 25-08-06, 08:32
-
By JonnyRico in forum NEWSboard Programmierung
Antworten: 14
Letzter Beitrag: 30-03-06, 13:33
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