[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Dec 2013
    Beiträge
    17

    Question RegEx, um RPG Fixed Form zu erkennen

    Hallo zusammen,

    hat schon mal jemand die Quelle eines RPG-Programms gelesen und per Regulärem Ausdruck validiert, ob es sich je Zeile um Fixed-Form-Programmierung handelt?

    Falls ja, wie lautet der Regular Expression Ausdruck?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Ich glaube, dafür benötigst du kein Regex.
    Fixedform hat immer in Spalte 5 einen Buchstaben.
    Total Free muss am Anfang der Quelle ein **FREE enthalten.

    Ansonsten kann seit V7R3 zwischen free und fixed ohne free/endfree beliebig gewechselt werden.
    Steht also in Spalte 5 ein bekannter Buchstabe ist es eine fixed Zeile.
    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

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Ich glaube, dafür benötigst du kein Regex.
    Fixedform hat immer in Spalte 5 einen Buchstaben.
    Total Free muss am Anfang der Quelle ein **FREE enthalten.

    Ansonsten kann seit V7R3 zwischen free und fixed ohne free/endfree beliebig gewechselt werden.
    Steht also in Spalte 5 ein bekannter Buchstabe ist es eine fixed Zeile.
    ds... ds... ds... Die Kartenart wird immer in Spalte 6 abgelocht, in Spalte 7 darf man noch ein '*' ablochen, der die ganze Karte zum Kommentar macht und ansonsten darf da nur was stehen, wenn man eine **FREE Karte als erste Lochkarte hat.

    D*B
    PS: sicher kann man das auch mit Regenechsen machen, vielleicht gibt es aber euch eine SQL Table Function dafür, das wäre eh' moderner.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Dec 2013
    Beiträge
    17
    Ich glaube, dafür benötigst du kein Regex.
    Fixedform hat immer in Spalte 5 einen Buchstaben.
    Total Free muss am Anfang der Quelle ein **FREE enthalten.
    Danke für den Input.
    ich bin zunächst auch so pragmatisch an die Sache ran gegangen und habe dann gemerkt, dass abhängig der Benennung von Variablen/Prozeduren und entsprechend "unglücklicher" Einrückung an besagter Stelle ein bekannter Buchstabe stehen kann, obwohl es kein fixed ist.
    Deswegen kam ich auf den RegEx gedanken

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Dann kannst du dir je "Karte" ein Muster ja bauen, dass allerdings sich nur um die Bereiche der zwingenden Leerzeichen kümmern muss.
    Bei der H-Zeile hast du schon gelitten.

    Wofür benötigst du das denn? Willst du einen Compiler schreiben?

    @D*B
    Man kann ja schon mal die falsche Taste treffen;-).
    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

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... entweder ist die erste Lochkarte **FREE, dann darf man keine fixed Lochkarten in den Stapel packen oder man darf in Spalte 6 nur für fixed was rauslochen, wenn nicht in Spalte 7 ein Kommentar-* abgelocht ist. Oder ist mir da eine Änderung entgangen???
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Ja, **FREE scheint man nicht mehr zu benötigen.
    Bei einem Kunden von mir steht nicht immer **FREE am Anfang, dann kann man altes und neues Format lustig mischen.
    Bei **FREE ist allerdings das alte Format nicht mehr erlaubt.
    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

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Ja, **FREE scheint man nicht mehr zu benötigen.
    Bei einem Kunden von mir steht nicht immer **FREE am Anfang, dann kann man altes und neues Format lustig mischen.
    Bei **FREE ist allerdings das alte Format nicht mehr erlaubt.
    ... **FREE hebt nur die Verträglichkeits-Restriktionen mit fixed auf (eben genau der Schutz von Spalte 6/7, der unsägliche rechte Kommentar-Rand und die Breitenbegrenzung)
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Dec 2013
    Beiträge
    17
    Wofür benötigst du das denn? Willst du einen Compiler schreiben?
    Nein, ich versuche die Komplexität zu berechnen, zu visualisieren und darzustellen, worauf beim Testen einer Änderung geachtet werden könnte, um negative Seiteneffekte zu verringern.

    Dann kannst du dir je "Karte" ein Muster ja bauen...
    Das mach ich bereits, steht' aber bei der Mischung aus free und fixed vor der Herausforderung, dass Elemente falsch interpretiert werden

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Das wird sich auch nicht ändern, da z-B. eine D-Zeile leer sein kann oder nur einen Namen enthält.
    Dies könnte auch der Name einer dcl-x sein, der zufällig da steht.
    Code:
     dcl-s
       DasFeld
       char(10);
    In der C-Karte siehts ja nicht anders aus.
    Code:
         C                       eval      Feld1 = Feld2
                                 eval      Feld1 = Feld2;
    Herausfinden kann man das nur, wenn man die Zeilen davor und die folgenden berücksichtigt, also eine Kontext-Evaluierung versucht.

    Da kannst du mal sehen, welche Leistung ein Compiler macht.

    Dein Problem bei Regex ist, dass Regex von variablem Text ausgeht.
    Somit musst du Alternativen beschreiben die die Varianten einer D-Karte darstellen.
    Oder eben die Karten als DS definieren und die Inhalte auf Fixformat prüfen, also ganz ohne Regex.
    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

  11. #11
    Registriert seit
    Dec 2013
    Beiträge
    17
    OK, vielen Dank für die Meinung.

    Ich hatte mich aktuell mit den einzelnen Prüfungen verzettelt, und habe gehofft, dass das noch etwas eleganter geht. Aber dann bleibt das zunächst so wie es jetzt ist.

  12. #12
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Dies könnte auch der Name einer dcl-x sein, der zufällig da steht.
    Code:
     dcl-s
       DasFeld
       char(10);
    nein, das kann nicht sein, das prüft der Compiler!!! bei c Zeilen ebenso!!! Probiert das doch gefälligst mal aus!!!
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Free Form von LOOKUP
    By tarkusch in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 23-02-17, 11:45
  2. Dataara Free Form RPG
    By camouflage in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 29-04-16, 14:17
  3. CPXFRMIMPF *fixed
    By dibe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 21-01-16, 11:12
  4. RPG Free Form TR7
    By camouflage in forum IBM i Hauptforum
    Antworten: 29
    Letzter Beitrag: 19-11-13, 15:52
  5. NEWS/400-Magazin in digitaler Form?
    By Peter Janocha in forum NEWSboard load'n'go
    Antworten: 1
    Letzter Beitrag: 04-04-01, 19:38

Berechtigungen

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