Ich habe CS Script noch nie mit Notepad++ verwendet, arbeite aber an mehreren großen Dateien, für die ich ein Skript erstellen muss. Normalerweise arbeite ich in Excel und verwende VBasic, aber die Dateien sind zu groß für Excel. Ich habe CS Script installiert und die Skriptseite erstellt, weiß aber nichts über den Code und könnte daher wirklich etwas Hilfe gebrauchen. Unten sehen Sie ein Beispiel der Zeilen in den Dateien, die ich habe.
1. 699;2022-06-30 18:44:03.187;1.1.8;2409;Line_1_IP_Router:0/1/0;w;15.9371195;15.9371194999999997;0.000
2. 699;2022-06-30 18:45:03.179;1.1.8;2409;Line_1_IP_Router:0/1/0;w;16.183062;0.245942499999999953;59.992
3. 699;2022-06-30 18:46:03.173;1.1.8;2409;Line_1_IP_Router:0/1/0;w;16.315498;0.132436000000001997;59.994
4. 699;2022-06-30 18:47:03.169;1.1.8;2409;Line_1_IP_Router:0/1/0;w;16.40275;0.0872519999999994411;59.996
5. 699;2022-06-30 18:48:03.163;1.1.8;2409;Line_1_IP_Router:0/1/0;w;16.469275;0.066524999999998613;59.994
6. 699;2022-06-30 18:49:03.154;1.1.8;2409;Line_1_IP_Router:0/1/0;w;16.428036;-0.0412390000000009138;59.991
7. 699;2022-06-30 18:50:03.152;1.1.8;2409;Line_1_IP_Router:0/1/0;w;16.565973;0.137937000000000864;59.998
Die Spalten in Excel sind durch getrennt ;
. Ich möchte bei der zweiten Zeile beginnen und jede Zeile bis zum Ende der Datei durchlaufen.
In jeder Zeile muss geprüft werden, ob die Zahl in der vorletzten Spalte (also vor der letzten ;
) negativ ist. Wenn nicht, wird einfach zur nächsten Zeile übergegangen. Wenn sie negativ ist, müssen die Zahlen in den letzten drei Spalten geändert werden 0
.
Basierend auf meinem obigen Beispiel würde sich also Zeile 6 wie unten gezeigt ändern. Alle anderen Zeilen würden gleich bleiben.
6. 699;2022-06-30 18:49:03.154;1.1.8;2409;Line_1_IP_Router:0/1/0;w;0;0;0
Ich hoffe, das alles ergibt Sinn und würde mich über jede Hilfe sehr freuen. Ich bin sicher, dass es für jemanden, der mit CS Script vertraut ist, ziemlich einfacher Code ist. Vielen Dank im Voraus.
Antwort1
Ich kenne mich mit CS-Skripten nicht aus, aber dies kann mit der Standard-Such-/Ersetzungsoperation (STRG+H) mit regulären Ausdrücken durchgeführt werden
suchen ;[0-9.]*;-[0-9.]*;[0-9.]*$
und durch ersetzen ;0;0;0
.
Erläuterung: [0-9.]*
sucht nach einer beliebigen Anzahl (auch 0) von Zeichen aus dem Bereich 0
- 9
oder .
, $
findet das Zeilenende. Das Muster würde auch auf Zeilen passen, die mit z. B. enden
;;-;
;1.2.3;-4..5;6....7
Wenn die eigentliche Anforderung darin besteht, Daten in einer Zeile basierend auf den Werten der vorherigen Zeile zu ersetzen, wird es schwieriger.