[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2006
    Beiträge
    132

    String und Leerzeichen

    Hallo,
    ich versuche gerade einen String bei dem ich an bestimmten stellen Werte einsetzen muss zu bearbeiten.(mit %scan und %replace kann ich mir die richtige Stelle suchen und dort etwas einfügen)
    Ich habe jedoch das Problem das Leerzeichen die ich bei der Instanzierung angeben fehlen.

    zb:
    PHP-Code:
    Dheader3                        80A   inz('     A*==  Dateiname   :       +
    D                                                            Datum :                    +
    D                                                         =='

    Was in der Variable steht ist aber:
    PHP-Code:
         A*==  Dateiname   :       Datum :                    == 
    Was muss ich tun damit er mir keine Leerzeichen weglässt?

    Gruß Martin

    Edit: Der erste PHP Code wird komisch dargestellt...Der Sring der instanziert wird ist folgender:
    PHP-Code:
    A*==  Dateiname   :                Datum :                                  == 
    Dateiname und Datum will ich über mein Programm einfügen. Die Instanzierung geht über 3 Zeilen weil der String insg. 80 Zeichen lang ist. dh von Keywordanfang bis 79 sind meine Zeichen bei Spalte 80 ein "+".

  2. #2
    Registriert seit
    Jan 2006
    Beiträge
    111
    Moinsen,

    poste mal bitte Deinen Programmcode, normalerweise dürften nicht automatisch irgendwelche Leerzeichen fehlen, sofern Du %replace benutzt...

    Gruß
    Maxx


    Im folgenden Beispiel wird 'ABC' durch 'ZXYDE' ersetzt.:

    Code:
     
    
    D Text50          S             50A   inz(*Blanks)     
    D MyString        S             10A   varying          
    D NewString       S             10A   varying          
    D Position        S              5U 0                  
    *--------------------------------------------------------- 
    /free                                                                         
        Text50      = 'ABCxyABCvwABC123ABC50';                                     
        Dsply Text50;                                                              
        MyString    = 'ABC';                                                       
        NewString   = 'ZXYDE';                                                     
        Position    = 1;                                                           
                                                                                   
        DoW  %Scan(MyString: Text50: Position) <> *Zeros;                          
             Text50   = %Replace(NewString: Text50:                                
                           %Scan(MyString: Text50: Position): %Len(MyString));     
             Dsply Text50;       
        Enddo;                                                                     
                                                                                   
        Dsply Text50;      
        *INLR = *ON;                                                        
    /End-Free 
    
    
    
    
    oder per SQL 
    
    
    c/EXEC SQL   Set :Text50 = Replace(:Text50, :MyString, :NewString) 
    C/END-EXEC

  3. #3
    Registriert seit
    Sep 2006
    Beiträge
    132
    Mein Programmcode:

    PHP-Code:
     DHeader           DS
         Dheader1                        80A   inz
    ('     A*  ')
         
    Dheader2U6                      80A   inz('     A*========================+
         D                                     ====================================+
         D                                     ========='
    )
         
    Dheader3                        80A   inz('     A*==  Dateiname   :       +
         D                                              Datum :                    +
         D                                            =='
    )
         
    Dheader4                        80A   inz('     A*==----------------------+
         D                                     ------------------------------------+
         D                                     -------=='
    )
         
    Dheader5                        80A   inz('     A*==  Autor       :       +
         D                                                                         +
         D                                            =='
    )
         
    Ddatnam           S             10A   inz('DateinameA')
         
    Ddate             S             20A
         Dautor            S             40A

         C                   
    eval      pos=%scan(':':header3)
         
    C                   eval      pos=pos+3
         C                   
    eval      header3=%replace(datnam:header3:pos
    Die Beispiele hatte ich mir schon angeschaut und wie gesagt von der Sache her funktioniert das auch ganz gut nur werden mir halt die Leerzeichen "geklaut".

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ein '+' am Ende bedeutet, Fortsetzung in der nächsten Zeile ab dem 1. Zeichen <> Blank.

    Ein '-' am Ende entfernt die Leerzeichen der Folgezeile NICHT !
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Sep 2006
    Beiträge
    132
    Zitat Zitat von Fuerchau
    Ein '+' am Ende bedeutet, Fortsetzung in der nächsten Zeile ab dem 1. Zeichen <> Blank.

    Ein '-' am Ende entfernt die Leerzeichen der Folgezeile NICHT !
    Ah ok vielen Dank!

    Gruß Martin

Similar Threads

  1. String mit Returns in iSeries Datenfeld speichern
    By e_sichert in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 07-11-06, 15:25
  2. CPYTOIMPF - Leerzeichen am Ende?
    By mott in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 09-10-06, 11:28
  3. String zusammenstellen
    By edig in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 07-07-06, 10:51
  4. Systemdatum nach String
    By codierknecht in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 03-07-06, 15:25
  5. String mit HexInhalt muss als Hex-Wert in Variable
    By cheffe1008 in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 16-05-06, 07:45

Berechtigungen

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