-
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?
-
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.
-
Zitat von Fuerchau
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.
-
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
-
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;-).
-
... 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???
-
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.
-
Zitat von Fuerchau
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)
-
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
-
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.
-
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.
-
Zitat von Fuerchau
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!!!
Similar Threads
-
By tarkusch in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 23-02-17, 10:45
-
By camouflage in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 29-04-16, 13:17
-
By dibe in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 21-01-16, 10:12
-
By camouflage in forum IBM i Hauptforum
Antworten: 29
Letzter Beitrag: 19-11-13, 14:52
-
By Peter Janocha in forum NEWSboard load'n'go
Antworten: 1
Letzter Beitrag: 04-04-01, 18:38
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks