[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Nov 2009
    Beiträge
    208

    altes rpg, in einem string was tauschen

    Guten Tag.
    wie kan ich in 'altem' RPG in einem Strig einen Wert tauschen?

    also

    eval Ergebnis = %subst(basis:1:zahl) + variable + %subst(basis:zahl+laenge)

    als nicht ILE, nicht Free
    Danke

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    MOVEA ist den Freund (schauder!!!)

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Jan 2001
    Beiträge
    833
    oder auch ein MOVE oder MOVEL
    und SUBST gibt es auch im old RPG

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Oder versuch embedded SQL zu verwenden. Auch das lässt sich in altes RPGIII einbinden.

    Code:
    C/EXEC SQL
    C+ SET :ERGEBNIS = SUBSTR(:BASIS, 1, :ZAHL) CONCAT :VARIABLE CONCAT 
    C+                 SUBSTR(:BASIS, :ZAHL + :LAENGE)
    C/END-EXEC
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    Nov 2009
    Beiträge
    208
    Das mit dem SQL find ich am besten aber die Programmierer sagen das es kein SQLRPT gibt.
    Aber movea hilft
    Danke
    Dietlinde Beck

  6. #6
    Registriert seit
    May 2002
    Beiträge
    1.121
    Ehmm,
    Lochkarten müsst ihr aber nicht mehr stanzen... oder ?
    ;-)

    PHP-Code:
         E                    ARA        16  1                  
         E                    ARB        20  1                  
          
    *                                                     
         
    C                     MOVEL'ABCDEFGH'TEXT   16         
         C                     MOVE 
    'IJKLMNOP'TEXT              
         C                     MOVE 
    'XXXX'    TEXT4   4         
          
    *                                                     
         
    C                     MOVEATEXT      ARA               
         C                     MOVEAARA       HILFE   8         
         C                     MOVEAHILFE     ARB               
         C                     MOVEATEXT4     ARB
    ,9             
         C                     MOVEAARA
    ,9     HILFE             
         C                     MOVEAHILFE     ARB
    ,13            
         C                     MOVEAARB       TEXT20 20         
          
    *                                                     
         
    C                     SETON                     LR 
    Am Anfang steht in TEXT "ABCDEFGHIJKLMNOP".
    Dieser wird bei dann bei H und I geteilt, und 4* das "X" eingefügt.
    Am Ende steht in TEXT20 'ABCDEFGHXXXXIJKLMNOP'

    Alt genug ??

    Gruß
    Ronald

  7. #7
    Registriert seit
    Nov 2009
    Beiträge
    208
    Wieso Lochkarten?
    Wir haben die alten Programme auf Streifen!
    Danke für das Beispiel. Das 'können' wir auch.
    Unser Problem ist, das wir halt nicht wissen WO im String wir was einfügen sollen. Das suchen wir vorher mit scan. Wir haben, auf anraten von Robi, das nun in ein ILE Pgm ausgelagert was wir rufen.

    Danke
    DB

  8. #8
    Registriert seit
    May 2002
    Beiträge
    1.121
    ILE ist natürlich besser,
    im 36er-Code geht es auch. Das mit dem nicht genau wissen wo und suchen war mir so nicht ersichtlich.

    PHP-Code:
         E                    ARA        16  1             
         E                    ARB        20  1             
          
    *                                                
         
    C                     MOVEL'ABCDEFGH'TEXT   16    
         C                     MOVE 
    'IJKLMNOP'TEXT         
         C                     MOVE 
    'XXXX'    TEXT4   4    
          
    *                                                
         
    C                     MOVEATEXT      ARA          
         C           
    'DE'      SCAN TEXT      P       20   
         C           P         ADD  1         BIS     20   
         C           1         
    DO   BIS       I       20   
         C                     MOVEAARA
    ,I     HILFE   1    
         C                     MOVEAHILFE     ARB
    ,I        
         C                     ENDDO                       
         C                     MOVEATEXT4     ARB
    ,I        
         C           I         ADD  4         P            
         C                     MOVEAARA
    ,I     ARB,P        
         C                     MOVEAARB       TEXT20 20 
          
    *                                                
         
    C                     SETON                     LR 
    In diesem Beispiel wird nach 'DE' in TEXT gesucht.
    Nach dem DE wird wieder die 4*XXXX eingefügt

    Gruß
    Ronald

    gar nicht mehr so einfach in dem alten Code zu denken..

  9. #9
    Registriert seit
    Apr 2005
    Beiträge
    385
    Es gibt auch in RPT den befehl SUBST
    Code:
    C      LEN    SUBST    BASIS       ZZTEXT 
    C               CHECKR  VARIAB      L1 
    C               CAT       VARIAB:0   ZZTEXT
    C               SUBST    BASIS:L1   ZZTXT1
    C               CAT       ZZTXT1:0   ZZTEXT
    So sollte es gehen :-)

    I Love The Basics

Similar Threads

  1. suchen im string mit sql
    By ILEMax in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 11-01-14, 09:32
  2. mit SQL sortieren nach String
    By heynem in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 07-11-07, 11:53
  3. QRYPROD in einem CL
    By heynem in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 10-04-03, 09:23
  4. String ausschneiden
    By heynem in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 20-03-03, 09:15
  5. Programmname aus String ermitteln
    By LaLeLi in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 19-06-02, 08:38

Berechtigungen

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