-
Rückgabe eines Arrays aus einer Funktion
Hallo zusammen,
ich habe folgendes Problem.
Ich habe eine selbt geschriebene Funktion die als Rückgabewert ein Array hat
PHP-Code:
dGetLngTxt pr 256 dim(10) d 6 const d 9 const d 2 const options(*nopass)
Habe ich in meinem Programm in welchem ich die Funktion benutzen möchte die Möglichkeit auf das 2. Element zuzugreifen ????
Also z.B. Text = getLngTxt('XXX':'XXXX')(2)
So gehts natürlich nicht. Das habe ich mir zwar erhofft aber ging leider nicht.
Habt ihr eine Idee ? Sonst müsste ich in allen Programmen ein Hilfsarray verwenden und dort erst rein stellen.
-
Zitat von harkne
Habt ihr eine Idee ? Sonst müsste ich in allen Programmen ein Hilfsarray verwenden und dort erst rein stellen.
Da wird wohl nichts anderes übrig bleiben. Es gibt keine Möglichkeit direkt auf eine Element in einem Rückgabe-Wert zuzugreifen.
Eine andere Möglichkeit wäre, Du schreibst eine weitere Funktion, mit einem zusätzlichen Parameter, in dem Du das gewünschte Element angibst. Diese Funktion ruft dann die erste auf und gibt nur das entsprechende Element zurück.
Da man in RPG leider nicht überladen kann, muss die neue Funktion natürlich auch anders heißen als die bereits bestehende.
Birgitta
-
Ein Hilfsarray spart sogar ggf. Aufrufe, wenn man auf mehr als 1 Element zugreifen will. Was anderes wäre mit dieser Funktion sowieso schlecht. Warum sollte ein Array zurückgegeben werden, wenn immer nur 1 Element benötigt wird ?
-
Ihr habt alle recht und ich danke Euch allen.
Ich hätte natürlich nicht ein Array zurückgegeben wenn es nicht an manchen Stellen von nöten wäre. Damit spare ich mir die Funktion 10mal aufzurufen. Im Moment da >ICH< sie zum ersten mal selbst verwende bin ich schlauer und hätte einfach einen String zurückgegeben den ich mit substring hätte auflösen können, nur hat mein Kollege inzwischen die Funktion bereits in ca 40 Programme eingebaut und das wollte ich ihm dann doch nicht antun .
Ansonsten hab ich mir jetzt halt auch eine Funktion gemacht die diese Funktion aufruft und nur das erste Element zurück gibt.
Also nochmals danke an alle.
Aber irgendwie finde ich hat da IBM ein bischen gepatzt. Eine Funktion ist sozusagen ein Array aber ich kann nicht auf dessen Elemente zugreifen.
-
Diese Aussage ist da etwas falsch. Die Funktion ist eine Funktion und kein Array, deshalb erlaubt die RPG-Syntax da keine Erweiterung.
Andere Programmiersprachen (VB/C++/Java) können den Rückkehrwert einer Funktion als temporäre Variableoder oder Adresse übernehmen und daher auf diese mittels Array-Index auch zugreifen.
Du kannst dir dies auch als allgemeine BuiltIn-Funktion denken, die als Argument ein Array bekommt und als Ergebnis ein Element liefert.
Das funktioniert aber nur durch o.g. überladene Funktionen, die RPGLE nun mal (leider oder Gott-sei-Dank) nicht kennt. (Gerade Überladungen dienen häufig der Verwirrung des Programm-Lesers, machmal auch des programmierers.)
Du könntest dir also auch eine eigene Funktion schreiben, die speziell für dieses Array das Problem löst.
Similar Threads
-
By mwithake in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 04-08-09, 14:57
-
By Marsman in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 27-09-06, 12:32
-
By steven_r in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 01-06-06, 12:16
-
By GHoffmann in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 07-07-05, 09:18
-
By Robi in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 28-07-04, 10:30
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