Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 1567 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst HTML-Seiten öffnen und bestimmte Daten auslesen (1)

Frage von makroll10 zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
Daten nach dem auslesen per Powershell moven - kopieren - löschen (1)

Frage von Luckyyluck zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...