[NEWSboard IBMi Forum]

Threaded View

  1. #15
    Registriert seit
    Aug 2014
    Beiträge
    181
    wie wärs mal mit Pointern?

    Ich denke, das Problem das du ansprichst, hat damit zu tun, dass die Summe der Variablen in einem RPG-Programm, einschließlich der Variablen in Prozeduren, 16MB nicht übersteigen darf.

    Mittlerweile bietet das Teraspace-Konzept die Möglichkeit, über Pointer in einem Programm Speicher in Terabyte-Größen zu addressieren.

    Auch die IBM API's nutzen Pointer zur Kommunikation z.B. das API iconv, mit dem man einen String von einer CCSID in eine andere konvertieren kann oder das API cvthc (convert character to hex).

    Anbei zwei Programme, die mit Pointern kommunizieren. Performanceprobleme, wie bei der Übergabe von großen Variablen treten hier nicht auf. Das aufgerufe Programm ist bereits mit dem neuen allfree RPG geschrieben, das rufende ist noch old fashioned.

    Das aufgerufene Programm entfernt einen ungültigen Hexcode aus einem String, der maximal 16MB groß ist.

    Wichtig: Im Header muss alloc(*teraspace) angegeben werden, dann werden statt 8, 16 Byte große Pointer benutzt.

    kleiner Tipp: große Variablen nicht mit *blanks initialisieren, sondern mit clear, das spart Performance.

    Herzliche Grüße
    Rainer Ross
    www.myhofi.com
    schnelle und komfortable Hotelsuchmaschine mit Volltextsuche – powered by IBM i
    Angehängte Dateien Angehängte Dateien

Similar Threads

  1. Foxtrot erledigt Datawarehouse/MIS Funktionen
    By Dick Dekker in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 14-01-03, 14:14
  2. Antworten: 0
    Letzter Beitrag: 04-07-02, 06:31

Tags for this Thread

Berechtigungen

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