Nachtrag zu UltraEdit Script: Daten auslesen
Hallo,
habe von colinardo folgendes script bekommen.
UltraEdit.activeDocument.selectAll();
var leer = " "
var doc = UltraEdit.activeDocument.selection;
var regex = /^N\d+ LAST_TOOL[^\r\n]*|^N\d+ R3\d=[^\r\n]*/gmi;
while (result = regex.exec(doc)){
UltraEdit.activeDocument.write(result + "\r\n");
}
Das script liefert auch die benötigten Dateien.
Beispiel:
N920 LAST_TOOL="5489566" ;LAST_TOOL beschreiben
N1010 R30=800 R96=8000 ; R30 Arbeitsvorschub, Drehzahl fuer Arbeitsvorschub
N1140 LAST_TOOL="5496078" ;LAST_TOOL beschreiben
N1360 R30=900 R96=6000 ; R30 Arbeitsvorschub, R96 Drehzahl fuer Arbeitsvorschub
N1370 R31=450 ; R31 reduzierter Arbeitsvorschub R32 reduzierter Arbeitsvorschub
N1380 R32=225 ; R32 reduzierter Arbeitsvorschub
N1740 LAST_TOOL="5489569" ;LAST_TOOL beschreiben
N1960 R30=2000 R96=8000 ; R30 Arbeitsvorschub, R96 Drehzahl fuer Arbeitsvorschub
N1970 R31=1500 ; R31 Arbeitsvorschub stechen
Um es auch optisch sauber in eine Form zu bringen, brauche ich eine Leerzeile immer vor einem Satz indem das "LAST_TOOL" vorkommt.
Beispiel:
N920 LAST_TOOL="5489566" ;LAST_TOOL beschreiben
N1010 R30=800 R96=8000 ; R30 Arbeitsvorschub, Drehzahl fuer Arbeitsvorschub
N1140 LAST_TOOL="5496078" ;LAST_TOOL beschreiben
N1360 R30=900 R96=6000 ; R30 Arbeitsvorschub, R96 Drehzahl fuer Arbeitsvorschub
N1370 R31=450 ; R31 reduzierter Arbeitsvorschub R32 reduzierter Arbeitsvorschub
N1380 R32=225 ; R32 reduzierter Arbeitsvorschub
N1740 LAST_TOOL="5489569" ;LAST_TOOL beschreiben
N1960 R30=2000 R96=8000 ; R30 Arbeitsvorschub, R96 Drehzahl fuer Arbeitsvorschub
N1970 R31=1500 ; R31 Arbeitsvorschub stechen
Bitte um Hilfe
Danke
habe von colinardo folgendes script bekommen.
UltraEdit.activeDocument.selectAll();
var leer = " "
var doc = UltraEdit.activeDocument.selection;
var regex = /^N\d+ LAST_TOOL[^\r\n]*|^N\d+ R3\d=[^\r\n]*/gmi;
while (result = regex.exec(doc)){
UltraEdit.activeDocument.write(result + "\r\n");
}
Das script liefert auch die benötigten Dateien.
Beispiel:
N920 LAST_TOOL="5489566" ;LAST_TOOL beschreiben
N1010 R30=800 R96=8000 ; R30 Arbeitsvorschub, Drehzahl fuer Arbeitsvorschub
N1140 LAST_TOOL="5496078" ;LAST_TOOL beschreiben
N1360 R30=900 R96=6000 ; R30 Arbeitsvorschub, R96 Drehzahl fuer Arbeitsvorschub
N1370 R31=450 ; R31 reduzierter Arbeitsvorschub R32 reduzierter Arbeitsvorschub
N1380 R32=225 ; R32 reduzierter Arbeitsvorschub
N1740 LAST_TOOL="5489569" ;LAST_TOOL beschreiben
N1960 R30=2000 R96=8000 ; R30 Arbeitsvorschub, R96 Drehzahl fuer Arbeitsvorschub
N1970 R31=1500 ; R31 Arbeitsvorschub stechen
Um es auch optisch sauber in eine Form zu bringen, brauche ich eine Leerzeile immer vor einem Satz indem das "LAST_TOOL" vorkommt.
Beispiel:
N920 LAST_TOOL="5489566" ;LAST_TOOL beschreiben
N1010 R30=800 R96=8000 ; R30 Arbeitsvorschub, Drehzahl fuer Arbeitsvorschub
N1140 LAST_TOOL="5496078" ;LAST_TOOL beschreiben
N1360 R30=900 R96=6000 ; R30 Arbeitsvorschub, R96 Drehzahl fuer Arbeitsvorschub
N1370 R31=450 ; R31 reduzierter Arbeitsvorschub R32 reduzierter Arbeitsvorschub
N1380 R32=225 ; R32 reduzierter Arbeitsvorschub
N1740 LAST_TOOL="5489569" ;LAST_TOOL beschreiben
N1960 R30=2000 R96=8000 ; R30 Arbeitsvorschub, R96 Drehzahl fuer Arbeitsvorschub
N1970 R31=1500 ; R31 Arbeitsvorschub stechen
Bitte um Hilfe
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 230233
Url: https://administrator.de/contentid/230233
Ausgedruckt am: 24.11.2024 um 09:11 Uhr
3 Kommentare
Neuester Kommentar
Hello Peter,
hättest du aber auch ruhig in deinem alten Thread nachfragen können
Grüße Uwe
UltraEdit.activeDocument.selectAll();
var doc = UltraEdit.activeDocument.selection;
var regex = /(^N\d+ LAST_TOOL[^\r\n]*)|^N\d+ R3\d=[^\r\n]*/gmi;
while (result = regex.exec(doc)){
if (result[1]){
UltraEdit.activeDocument.write("\r\n" + result + "\r\n");
}else{
UltraEdit.activeDocument.write(result + "\r\n");
}
}
Grüße Uwe
Zitat von @newbie58:
Ich habe da noch eine Frage:
Wie ist das "/(^N\d+ LAST_TOOL[^\r\n]*)|^N\d+ R3\d=[^\r\n]*/gmi" zu interpretieren?
Das sind Regular Expressions, das hier jetzt lang und ausführlich zu erläutern würde Stunden dauern. Ausgeschrieben lässt es sich so beschreiben:Ich habe da noch eine Frage:
Wie ist das "/(^N\d+ LAST_TOOL[^\r\n]*)|^N\d+ R3\d=[^\r\n]*/gmi" zu interpretieren?
Options: case insensitive; ^ and $ match at line breaks
Match either the regular expression below (attempting the next alternative only if this one fails) «(^N\d+ LAST_TOOL[^\r\n]*)»
Match the regular expression below and capture its match into backreference number 1 «(^N\d+ LAST_TOOL[^\r\n]*)»
Assert position at the beginning of a line (at beginning of the string or after a line break character) «^»
Match the character “N” literally «N»
Match a single digit 0..9 «\d+»
Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
Match the characters “ LAST_TOOL” literally « LAST_TOOL»
Match a single character NOT present in the list below «[^\r\n]*»
Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
A carriage return character «\r»
A line feed character «\n»
Or match regular expression number 2 below (the entire match attempt fails if this one fails to match) «^N\d+ R3\d=[^\r\n]*»
Assert position at the beginning of a line (at beginning of the string or after a line break character) «^»
Match the character “N” literally «N»
Match a single digit 0..9 «\d+»
Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
Match the characters “ R3” literally « R3»
Match a single digit 0..9 «\d»
Match the character “=” literally «=»
Match a single character NOT present in the list below «[^\r\n]*»
Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
A carriage return character «\r»
A line feed character «\n»
Regular Expressions Tutorial
Bei dieser Variante werden zwei Regex-Patterns mit einem Pipe | Symbol verknüpft (bedeutet oder), um beide Varianten von Zeilen zu erfassen. Also entweder matcht das ein oder das andere Pattern, sonst nichts. Die runden Klammern um das gesamte linke Konstrukt erstellen eine "Backreference" auf die nachher mit einem Index im Array result[x] zugegriffen werden kann. Mit der IF-Prüfung prüfen wir ob diese Backreference mit Daten gefüllt wurde, und wenn ja schreiben wir eine Zeile die zusätzlich einen weiteren Zeilenumbruch vor den Daten einfügt.
Grüße Uwe