![]() |
Удалить лишние строки из txt
Всем доброго времени суток!
Есть такая задачка, Существует текстовый файл с кучей строк Пример: ![]() Нужно удалить те строки у которых после третьего числового столбца нет четвертого (то есть после столбца с тремя цифрами 010,007 и тд) Заранее огромно спасибо!!! |
aos, выложите часть текстового файла, обрамив его тэгом «code». Возиться, высчитывая количество пробелов на изображении, желания мало.
|
Цитата:
Я бы сам, но вообще забыл всё напрочь, а желание вспоминать всё это ни как не приходит :) |
Код:
2012060623595950012832АБАКУМОВА ТАТЬЯНА СЕРГЕЕВНА 11022148 010 |
aos, пробуйте
Код:
@Echo Off |
Он просто копирует не нужные строки в другой текстовик, а хотелось бы их удалять
|
Продолжаю рекламировать Log Parser:
Код:
"C:\Program Files\Log Parser 2.2\LogParser.exe" "SELECT Text FROM 'Input.txt' WHERE TRIM(SUBSTR(Text, 97, 10)) <> ''" -i:TEXTLINE -iCodepage:1251 -q:on >Output.txt |
Спасибо! Работает! Подскажите еще пожалуйста, что прописать чтобы исходящий файл имел следующее название "partnerfull20120606.txt" (дата год месяц число) И можно, чтобы он еще сразу на ftp готовый файл отсылал?
Спасибо! |
....и на работу за вас ходил :)
|
Цитата:
|
aos, пользователь обладает административными привилегиями? Машина не с Home-версией Windows?
|
Да обладает, винда 2003 server
|
Тогда можно примерно так:
Код:
@echo off Для отсылки полученного файла на ftp-сервер — нужны детали. |
Почему то не отрабатывает
|
aos, опишите подробнее.
|
Запускаю скрипт, ничего не происходит...он открывается и сразу закрывается
|
Цитата:
Или проще — перетащите исходный файл на пакетный файл. |
Создается пустой выходной файл, делаю следующим образом:
cd:\d\prod\tranz (путь для готового файла) D:\prod\tranz>d:\prod\test.bat d:\prod\input.txt (первая часть-путь где лежит батник, вторая часть путь где лежит файл который нужно обработать) Или я, что то не так делаю? |
aos, проверю, что там у меня может быть не так, но несколько попозже.
|
Здравствуйте! Еще не было возможности посмотреть, что не работает в скрипте?
|
aos, посмотрел. Ошибка здесь:
Код:
"C:\Program Files\Log Parser 2.2\LogParser.exe" "SELECT Text FROM 'Input.txt' WHERE TRIM(SUBSTR(Text, 97, 10)) <> ''" -i:TEXTLINE -iCodepage:1251 -q:on 1>"!sDestFile!" |
Огромное спасибо!!! Все работает!
|
Новый прикол, после отрабоки через какое то время самоочищается )))
|
aos, поясните пожалуйста, что самоочищается, через какое именно время.
|
Цитата:
Код:
Тюрин Д. С.;Алейск,Ширшова ул,5,55;630000002936;42039.52 |
naifrit, с помощью LogParser — напрямую никак: средство предназначено для извлечения данных, но не удаления (т.е., есть операция SELECT, но нет операции DELETE).
Но можно пойти от обратного: извлечь все строки, четвёртое поле которых не содержит «0.00»: Код:
"C:\Program Files\Log Parser 2.2\LogParser.exe" "SELECT Field1 AS FIO, Field2 AS Address, Field3 AS INN, SUBSTR(TO_STRING(Field4), 0, SUB(STRLEN(TO_STRING(Field4)), 4)) AS Summ FROM 'Source.txt' WHERE Summ <> '0.00'" -i:TSV -iSeparator:; -headerRow:OFF -nFields:4 -iCodepage:1251 -q:on -o:TSV -headers:OFF -oSeparator:;>Destination.txt |
Время: 07:06. |
Время: 07:06.
© OSzone.net 2001-