Я раньше не использовал CS Script с Notepad++, но я работаю над несколькими большими файлами, где мне нужно создать скрипт. Обычно я работаю в Excel и использую VBasic, но файлы слишком велики для Excel. Я установил CS Script и создал страницу скрипта, но ничего не знаю о коде, поэтому мне бы очень пригодилась помощь. Ниже приведен пример строк в файлах, которые у меня есть.
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
Столбцы в Excel разделены символом ;
. Я хочу начать со второй строки и пройтись по каждой строке до конца файла.
В каждой строке он должен проверить, является ли число в предпоследнем столбце (т.е. перед последним ;
) отрицательным. Если это не так, он просто переходит к следующей строке. Если оно отрицательно, он должен изменить числа в последних трех столбцах 0
.
Итак, основываясь на моем примере выше, это изменит строку 6 на то, что я показал ниже. Все остальные строки останутся прежними.
6. 699;2022-06-30 18:49:03.154;1.1.8;2409;Line_1_IP_Router:0/1/0;w;0;0;0
Надеюсь, все это имеет смысл, и я был бы очень признателен за любую помощь. Я уверен, что это довольно простой код для кого-то, кто знаком с CS Script. Спасибо заранее.
решение1
Я не знаю скрипт CS, но это можно сделать с помощью стандартной операции поиска/замены (CTRL+H) с регулярным выражением
найдите ;[0-9.]*;-[0-9.]*;[0-9.]*$
и замените на ;0;0;0
.
Объяснение: [0-9.]*
ищет любое количество (даже 0) символов из диапазона 0
- 9
или .
, $
соответствует концу строки. Шаблон также будет соответствовать строкам, заканчивающимся на eg
;;-;
;1.2.3;-4..5;6....7
Если реальная потребность заключается в замене данных в одной строке на основе значений предыдущей строки, то это будет сложнее.