Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Nachtrag zu UltraEdit Script: Daten auslesen

Frage Entwicklung IDE & Editoren

Mitglied: newbie58

newbie58 (Level 1) - Jetzt verbinden

18.02.2014 um 06:55 Uhr, 1628 Aufrufe, 3 Kommentare

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[0] + "\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
Mitglied: colinardo
LÖSUNG 18.02.2014, aktualisiert um 10:29 Uhr
Hello Peter,
01.
UltraEdit.activeDocument.selectAll(); 
02.
var doc = UltraEdit.activeDocument.selection; 
03.
var regex = /(^N\d+ LAST_TOOL[^\r\n]*)|^N\d+ R3\d=[^\r\n]*/gmi; 
04.
 
05.
while (result = regex.exec(doc)){ 
06.
	if (result[1]){ 
07.
		UltraEdit.activeDocument.write("\r\n" + result[0] + "\r\n"); 
08.
	}else{ 
09.
		UltraEdit.activeDocument.write(result[0] + "\r\n"); 
10.
11.
}
hättest du aber auch ruhig in deinem alten Thread nachfragen können

Grüße Uwe
Bitte warten ..
Mitglied: newbie58
18.02.2014 um 10:36 Uhr
Hallo Uwe,

vielen Dank, das passt genauso wie ich es benötige.
Einfach klasse Arbeit.

Ich habe da noch eine Frage:
Wie ist das "/(^N\d+ LAST_TOOL[^\r\n]*)|^N\d+ R3\d=[^\r\n]*/gmi" zu interpretieren?

Danke nochmals und schöne Grüße
Peter
Bitte warten ..
Mitglied: colinardo
18.02.2014, aktualisiert um 10:49 Uhr
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:

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»
Ein Turorial zu RegEx findest du z.B. hier:
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
Bitte warten ..
Ähnliche Inhalte
IDE & Editoren
UltraEdit Script: Bestimmte Daten über ein Script ausgeben
gelöst Frage von newbie58IDE & Editoren2 Kommentare

Hallo, in Sachen UltraEdit bin ich ein Neuling, darum erhoffe ich mir Hilfe. Ich will aus einem NC-Programm bestimmte ...

PHP
PHP Script zum Daten auslesen gesucht
Frage von majas3PHP2 Kommentare

Hallo, ich habe viele taußend HTML Seiten in verschiedenen Verzeichnissen und bin auf der Suche nach einem PHP Script ...

IDE & Editoren
UltraEdit mit Script die Anzahl Zeilen und Wörter ermitteln
gelöst Frage von newbie58IDE & Editoren2 Kommentare

Hallo, ich will im UltraEdit mittels Script von einer Textdatei die Anzahl der Zeilen und Wörter ermitteln. Wie müsste ...

IDE & Editoren
UltraEdit: Textdatei für Excel aufbereiten
gelöst Frage von newbie58IDE & Editoren12 Kommentare

Hallo, ich habe eine Textdatei (Ausschnitte aus einem NC-Programm) die wie folg aussieht: 5112281 ; NC_JOB: 30001 VORFRAESEN AUSLASSSEITE ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 6 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 13 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 TagWindows 103 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless17 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...