Anmelden

View Full Version : *ENTRY Frage



sirdidi
26-07-11, 09:43
Hallo,

ich habe folgendes Problem:

Ich rufe ein ILE Programm auf mit folgenden 3 Parameter auf
Programm . . . . . . . . . . . . > SUBVER2 Name
Bibliothek . . . . . . . . . .. > MBLIB Name, *LIBL, *CURLIB
Parameter . . . . . . . . . . . > 'LIB'
> 'SOURCE'
>'/home/MBLIB/SVN/svn_diso/trunk/'

Wenn ich nun den dritten Parameter im Programm mit DEBUG anschaue(Länge 78), dann steht da (+ ein paar inverse Zeichen)

/home/LIB/SVN/svn_diso/trunk/  o SUBVER2o DIETRICHf PARMØ'

Was mir schleierhaft ist wo das "Zeugs" ab "trunk/" herkommt. Nachdem ich den Debug bereits im 1. Statment anschauen (ohne das bis dahin irgendetwas verändert wurde.
Liegt das an den "/" ? Wie bekomme ich den Pfad einfach da rein?

Danke für die Hilfe

Pikachu
26-07-11, 09:58
Das typische Problem mit den Parametern beim Befehl CALL. Näheres dazu siehe hier bei der Beschreibung des Parameters PARM (http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/cl/call.htm).

Am besten du erstellst dir einen Befehl (CMD) dazu und definierst die Parameter in der gleichen Länge wie in deinem ILE-Programm, und rufst das ganze immer über diesen Befehl auf.

Fuerchau
26-07-11, 10:23
Und genau dieses Problem passiert dann:

Character string constants of 32 bytes or less are always passed with a length of 32 bytes (padded on the right with blanks). If a character constant is longer than 32 bytes, the whole length of the constant is passed. If the parameter is defined to contain more than 32 bytes, the calling program must pass a constant that contains exactly that number of bytes. Constants longer than 32 characters are not padded to the length expected by the receiving program.