UltraEdit: Textdatei für Excel aufbereiten
Hallo,
ich habe eine Textdatei (Ausschnitte aus einem NC-Programm) die wie folg aussieht:
5112281
; NC_JOB: 30001 VORFRAESEN AUSLASSSEITE AZ+0.5MM
; NC_JOB: 30001 FRAESEN AUSLASSSEITE
; NC_JOB: 30011 VORFRAESEN FIXIERUNG MONTAGEPLATTE
; NC_JOB: 30011 FRAESEN FIXIERUNG MONTAGEPLATTE
; NC_JOB: 30021 FRAESEN FLAECHE DMC
; NC_JOB: 60001 FLAECHE STIRNSEITE FRAESEN_1(1)
; NC_JOB: 60001 FLAECHE STIRNSEITE FRAESEN_1
; NC_JOB: 67601 FRAESEN FUER BOHRUNG TEMPERATURFUEHLER
N1500 LAST_TOOL=5085102
; NC_JOB: 30201 FIXIERUNG ADAPTERPLATTE BOHREN TYP T
; NC_JOB: 30202 FIXIERUNG ADAPTERPLATTE BOHREN TYP T
N1780 LAST_TOOL=5085098
; NC_JOB: 33701 OELBOHRUNG KETTENSPANNER PILOTIEREN
Nun meine Frage:
Wie muss ein Script aussehen, damit ich folgendes Ergebnis erreiche?
5112281
;30001;VORFRAESEN AUSLASSSEITE AZ+0.5MM
;30001;FRAESEN AUSLASSSEITE
;30011;VORFRAESEN FIXIERUNG MONTAGEPLATTE
;30011;FRAESEN FIXIERUNG MONTAGEPLATTE
;30021;FRAESEN FLAECHE DMC
;60001;FLAECHE STIRNSEITE FRAESEN_1(1)
;60001;FLAECHE STIRNSEITE FRAESEN_1
;67601;FRAESEN FUER BOHRUNG TEMPERATURFUEHLER
5085102
;30201;FIXIERUNG ADAPTERPLATTE BOHREN TYP T
;30202;FIXIERUNG ADAPTERPLATTE BOHREN TYP T
5085098
;33701;OELBOHRUNG KETTENSPANNER PILOTIEREN
Mit einem Makro konnte ich es nur zum Teil lösen.
Gruß
Peter
ich habe eine Textdatei (Ausschnitte aus einem NC-Programm) die wie folg aussieht:
5112281
; NC_JOB: 30001 VORFRAESEN AUSLASSSEITE AZ+0.5MM
; NC_JOB: 30001 FRAESEN AUSLASSSEITE
; NC_JOB: 30011 VORFRAESEN FIXIERUNG MONTAGEPLATTE
; NC_JOB: 30011 FRAESEN FIXIERUNG MONTAGEPLATTE
; NC_JOB: 30021 FRAESEN FLAECHE DMC
; NC_JOB: 60001 FLAECHE STIRNSEITE FRAESEN_1(1)
; NC_JOB: 60001 FLAECHE STIRNSEITE FRAESEN_1
; NC_JOB: 67601 FRAESEN FUER BOHRUNG TEMPERATURFUEHLER
N1500 LAST_TOOL=5085102
; NC_JOB: 30201 FIXIERUNG ADAPTERPLATTE BOHREN TYP T
; NC_JOB: 30202 FIXIERUNG ADAPTERPLATTE BOHREN TYP T
N1780 LAST_TOOL=5085098
; NC_JOB: 33701 OELBOHRUNG KETTENSPANNER PILOTIEREN
Nun meine Frage:
Wie muss ein Script aussehen, damit ich folgendes Ergebnis erreiche?
5112281
;30001;VORFRAESEN AUSLASSSEITE AZ+0.5MM
;30001;FRAESEN AUSLASSSEITE
;30011;VORFRAESEN FIXIERUNG MONTAGEPLATTE
;30011;FRAESEN FIXIERUNG MONTAGEPLATTE
;30021;FRAESEN FLAECHE DMC
;60001;FLAECHE STIRNSEITE FRAESEN_1(1)
;60001;FLAECHE STIRNSEITE FRAESEN_1
;67601;FRAESEN FUER BOHRUNG TEMPERATURFUEHLER
5085102
;30201;FIXIERUNG ADAPTERPLATTE BOHREN TYP T
;30202;FIXIERUNG ADAPTERPLATTE BOHREN TYP T
5085098
;33701;OELBOHRUNG KETTENSPANNER PILOTIEREN
Mit einem Makro konnte ich es nur zum Teil lösen.
Gruß
Peter
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 352687
Url: https://administrator.de/contentid/352687
Ausgedruckt am: 24.11.2024 um 04:11 Uhr
12 Kommentare
Neuester Kommentar
Mit folgendem Regex ein Replace machen:
und durch Null ersetzen, dann erneut mit
durch ";" ersetzen, fertig!
^[^=;\r\n]+=
^; NC_JOB:
Mach es Dir doch nicht so kompliziert.
Importiere die Datei als Textdatei nach Excel.
Wichtig: Feste Breite
Setze die Spaltentrenner entsprechend.
Wichtig: Alle zu importierenden Spalten erstmal als TEXT und nicht als STANDARD importieren
Ich hab es mit dem Auszug von Dir probiert.
Geht fehlerfrei. Danach kannst Du die Spalten positionieren,w ie Du magst.
Export in TXT-Datei geht natürlich dann auch.
Importiere die Datei als Textdatei nach Excel.
Wichtig: Feste Breite
Setze die Spaltentrenner entsprechend.
Wichtig: Alle zu importierenden Spalten erstmal als TEXT und nicht als STANDARD importieren
Ich hab es mit dem Auszug von Dir probiert.
Geht fehlerfrei. Danach kannst Du die Spalten positionieren,w ie Du magst.
Export in TXT-Datei geht natürlich dann auch.
Zitat von @beidermachtvongreyscull:
Ich bewundere immer Leute, die Regex draufhaben.
Ich hab's leider nie verstanden und auch keinen brauchbaren Einstieg gefunden.
Pippifax Ich bewundere immer Leute, die Regex draufhaben.
Ich hab's leider nie verstanden und auch keinen brauchbaren Einstieg gefunden.
UltraEdit.perlReOn();
UltraEdit.activeDocument.selectAll();
UltraEdit.activeDocument.findReplace.regExp = true;
UltraEdit.activeDocument.findReplace.replaceAll = true;
UltraEdit.activeDocument.findReplace.mode = 1;
UltraEdit.activeDocument.findReplace.replace('^[^=;\r\n]+=',"");
UltraEdit.activeDocument.findReplace.replace('^;\\s*NC_JOB:\\s*',';');
Anstatt in die Ecke stellen hier lesen
Regular Expressions Tutorial
Muss nur einmal klick machen, dann findest du es gar nicht mehr so schwer...
Regular Expressions Tutorial
Muss nur einmal klick machen, dann findest du es gar nicht mehr so schwer...
Zitat von @newbie58:
@kokosnuss:
Deine Zeien funktionieren soweit ganz gut, jedoch fehlt noch das Semikolon (;) nach der 5-stelligen Nummer (;33701 OELBOHRUNG KETTENSPANNER BOHREN).
Das habe ich dir als MiniMini-Hausaufgabe gelassen. @kokosnuss:
Deine Zeien funktionieren soweit ganz gut, jedoch fehlt noch das Semikolon (;) nach der 5-stelligen Nummer (;33701 OELBOHRUNG KETTENSPANNER BOHREN).
Wenn du die Denkzeit nicht investieren willst ==> mit n' büschen PayPal kannst du mich überreden
Es gibt kein Problem ...
Wie gesagt, gerne bekommst du die Lösung frei Haus -> PN.
Das ganze hilft hier ja offensichtlich nur dir selbst und keinem anderen.
Es darf nur das erste Leerzeichen nach der 5-stelligen Nummer finden und mit einem Semikolon ersetzen.
Weiter Leerzeichen in der gleichen Zeile dürfen nicht verändert werden.
Den obigen zweiten Regex brauchst du nur minimal verändern/anpassen, ein bisschen mitdenken sollte man hier schon erwarten können wenn man schon mit Skripten arbeitet!Weiter Leerzeichen in der gleichen Zeile dürfen nicht verändert werden.
Wie gesagt, gerne bekommst du die Lösung frei Haus -> PN.
Das ganze hilft hier ja offensichtlich nur dir selbst und keinem anderen.
Servus!
oder alternativ auch mit den Standard-JavaScript-Functions
Grüße Uwe
UltraEdit.perlReOn();
UltraEdit.activeDocument.selectAll();
UltraEdit.activeDocument.findReplace.regExp = true;
UltraEdit.activeDocument.findReplace.replaceAll = true;
UltraEdit.activeDocument.findReplace.mode = 1;
UltraEdit.activeDocument.findReplace.replace('^[^=;\r\n]+=',"");
UltraEdit.activeDocument.findReplace.replace('^;\\s*NC_JOB:\\s*(\\d+)\\s*',';$1;');
UltraEdit.perlReOn();
UltraEdit.activeDocument.selectAll();
var txt = UltraEdit.activeDocument.selection;
var result = txt.replace(/^[^=;\r\n]+=/gmi,"");
var result = result.replace(/^;\s*NC_JOB:\s*(\d+)/gmi,";$1;");
UltraEdit.activeDocument.write(result);