Hallo zusammen,

nachdem ich zuletzt hier und da Probleme mit zu wenig dynamischem Speicher hatte -- ein Konzept, dass ich noch nicht richtig verstehe -- möchte ich hier mal fragen, wie ich am intelligentesten Funktionen/Prozeduren designe, die ähnlich wie die BIFs %Xlate, %ScanRpl etc. Charactervariablen manipulieren.

Bisher habe ich hierzu VARYING-Felder mit LEN(4000000) genutzt. Parameter jeweils mit CONST versehen.

Also:
Code:
     
     P fURLEscape      B                    EXPORT
     D fURLEscape      PI              A    LEN(4000000) VARYING
     D  Text                           A    LEN(4000000) CONST VARYING
Ist es ratsam, so vorzugehen? Durch den Rückgabewert brauche ich ja mehr Speicher, als wenn ich nur einen per Referenz übergebenen Parameter hätte, oder? Es scheint Probleme zu geben, wenn ich viele solcher Funktionen in einem Programm benutze.

Wie machen das denn die BIFs? Denen kann man sehr große Felder übergeben und bekommt auch schöne Rückgabewerte. ohne dass ich bisher auch bei großen Feldern Probleme bekommen hätte. Kann man deren Verhalten simulieren?

Schöne Grüße