So,
mache die Daten jetzt mit einen RPG "Hübsch"

Die daten wurden aus dem IFS in eine Datei MyFile kopiert. Diese Datei hat ein Feld Satz mit der Länge 80 und den Format MyFileF.

PHP-Code:
  ctl-opt dftactgrp(*nobnddir('QC2LE'Option( *NoDebugIO )                             
     
datfmt(*DMY.) timfmt(*HMS:) datedit(*DMY.) Decedit('0,'Debug(*YES);                
                                                                                          
  
dcl-f MyFile    Usage(*Input: *Update) ; // Daten vom externen Partner                  
                                                                                          
  // Konstanten                                                                           
  
dcl-c True *On;                                                                         
  
dcl-c False *Off;                                                                       
                                                                                          
                                                                                          
  
// Main-Programm                                                                        
  
Setll *Start MyFile;                        // Alles auf Anfang               
  
Read MyFile;                                // 1.Satz lesen                   
  
DoW not %EoFMyFile );                     // Lesen bis zum bitteren Ende    
    
Satz Gueltige_ZeichenSatz );          // Nur Blanks und Ziffern bleiben 
    
Update MyFileF;                            // Update auf den Record          
  
Read MyFile;                                 // Und ab zum nächsten Record     
  
EndDo;                                       // Ende der Schleife              
                                                                                           
  
*Inlr True;                               // Endezeiger einschalten          
                                                                                           
  // Prozeduren                                                                            
  
dcl-proc Gueltige_Zeichen;              // Alles töten was nicht x'40' oder
    
dcl-pi *n char80 );                       // x'F0' bis x'F9' ist             
      
Zeile char80 );                        // Übergabe des String             
    
end-pi;                                                                                
    
dcl-s Rueckgabe  char80 );               // Rückgabe_String                 
    
dcl-s Text       char80 );               // Hier gibt es den Übergabe Text  
    
dcl-s Zeichen    char(  );                // Zu überprüfendes Zeichen        
    
dcl-s Index packed40  );                // Index für Zerlegen des Strings  
    
Text Zeile;                                       // Erstmal den ganzen Text         
    
For Index 1 to %Len( %TrimText ));              // Alles durch ackern              
      
Zeichen = %SubStText Index1);               // zu prüfendes Zeichen            
      
If Zeichen x'40';                               // Leerzeichen                     
        
Rueckgabe = %TrimRueckgabe ) + 'Q';              // Platzhalter für das Blank    
      
EndIf;                                                                               
      If (
Zeichen >= x'F0' and Zeichen <= x'F9');       // Ziffer                          
        
Rueckgabe = %TrimRueckgabe ) + Zeichen;          // Zeichen geht mit zurück   
      
EndIf;                                                                            
    EndFor;                                                                             
    
// Platzhalter wieder mit Blanks ersetzen                                           
    
Rueckgabe = %ScanRpl'Q'' 'Rueckgabe);                                         
    
// Und das Ergebniss zurück geben                                                   
    
Return Rueckgabe;                                                                   
  
end-proc
Gruß Ronald