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.
Gruß RonaldPHP-Code:ctl-opt dftactgrp(*no) bnddir('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 %EoF( MyFile ); // Lesen bis zum bitteren Ende
Satz = Gueltige_Zeichen( Satz ); // 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 char( 80 ); // x'F0' bis x'F9' ist
Zeile char( 80 ); // Übergabe des String
end-pi;
dcl-s Rueckgabe char( 80 ); // Rückgabe_String
dcl-s Text char( 80 ); // Hier gibt es den Übergabe Text
dcl-s Zeichen char( 1 ); // Zu überprüfendes Zeichen
dcl-s Index packed( 4: 0 ); // Index für Zerlegen des Strings
Text = Zeile; // Erstmal den ganzen Text
For Index = 1 to %Len( %Trim( Text )); // Alles durch ackern
Zeichen = %SubSt( Text : Index: 1); // zu prüfendes Zeichen
If Zeichen = x'40'; // Leerzeichen
Rueckgabe = %Trim( Rueckgabe ) + 'Q'; // Platzhalter für das Blank
EndIf;
If (Zeichen >= x'F0' and Zeichen <= x'F9'); // Ziffer
Rueckgabe = %Trim( Rueckgabe ) + 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;
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks