|
|
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, УВАЖАЕМЫЕ, необходимо обработать текстовые файлы в екселе, текст переносится без вопросов, формируется таблица, возникает вопрос как удалить ненужные данные (в примере выделено синим) оставив только таблицы с названиями. Простым удалением строк возможно, но в разных текстовых файлах имеется разное кол-во таблиц, приходится удалять в ручную. Как я понимаю возможно 2 варианта- или при экспорте данных выбирать только необходимые данные или по признакам выбирать необходимые данные макросом. Заранее благодарен за совет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2009, 16:03 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
пример файла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2009, 16:20 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Макросом пробежаться по UsedRange, если в Cells(cc.Row, 1) like "СПТ" и Cells(cc.Row, 3) Numeric, то оставляем строку. Если нет, удаляем. Этот код можно добавить после query импорта файла. Справку (внизу) уже не надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2009, 16:29 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Ну например так (всё было в папке c:\temp\_Teplo\) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2009, 17:52 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Слово teplo считать словом truba :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2009, 17:53 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
в том то и беда, что надо получить из тестовых файлов таблицы с данными, (правильно определен ключевое слово СПТ), дальше идет таблица, те должно быть как в примере, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2009, 18:55 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
ТСчто надо получить из тестовых файлов таблицы с данными, (правильно определен ключевое слово СПТ), дальше идет таблица Так и делайте, как советует Hugo121 . В качестве разделителя при импорте задайте вот такой символ ¦ , получите каждую колонку таблицы из текстового файла в отдельной колонке экселевского файла. Затем проходите по всем использованным строкам и ищите, для заглавия таблицы, нужные слова в колонке А, для остальных нужных колонок таблицы в соответствующих колонках. Используйте конструкцию IF с несколькими условиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2009, 09:47 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Так в моём файле так и сделано. Правда если системный разделитель не точка, код сглючит (проще всего побороть, заменив в исходном текстовом файле все точки на системный разделитель). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2009, 10:08 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Да, если справка не нужна, замени в коде "СПТ" на "Код трубопровода" и анализ 3-й ячейки на анализ 5-й - получишь результат точно как в примере, если строчки поуже сделать (кстати, это тоже можно сделать программно). Или тебе , как в примере, только два столбца импортировать надо? Удали лишние кодом в конце. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2009, 10:15 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Ааа, сумма лишняя - анализируй 1-ю или 7-ю. Ну вроде что ещё... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2009, 10:27 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Вся суть в 3 строки укладывется, остальное импорт и обвязка: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2009, 10:43 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Большое спасибо, что откликнулись на мою проблему. Выбор строки по "ключевому слову" у Вас прописан изумительно. Только необходимо, чтобы конечный результат был такой как в приложенном файле. Не могу сообразить как после преобразования в ексель > выбрав нужную строку (содержащую "Код трубопровода") удалить 7 сток вниз и 8 вверх (может есть другие варианты), спасибо Р S сорри, что сразу не ответил, приболел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 12:54 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
файл не прилипился ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 12:55 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Вы последний аттачмент вообще смотрели? Я никаких отличий, кроме самих значений, не вижу между ним и 1.7z ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 13:18 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Да, и вот это: как после преобразования в ексель удалить меня сбивает с толку - там ведь всё в одном коде сразу и делается... смотрите мой файл целиком, там нет изначально query, данные импортируются макросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 13:21 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Импортируется без таблицы (только названия) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 13:23 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Hugo121Так в моём файле так и сделано. Правда если системный разделитель не точка, код сглючит (проще всего побороть, заменив в исходном текстовом файле все точки на системный разделитель). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 13:27 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Как это я сразу не заметил, что в Вашем файле разделители запятые... Т.к. мой код определяет строки с нужными данными по тому, цифры там или нет, то 11.11 он воспримет как цифру, если системный разделитель точка. Можно в макросе перед импортом replace по всему текстовому файлу все точки на запятые, ка вариант... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 13:34 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Спасибо, попробую отпишусь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 13:51 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Или попробуй строку .TextFileColumnDataTypes = Array(2) заменить на .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1) Так работает, но данные остаются текстом, т.е. позже сложить их как цифры не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 13:53 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Вернее у меня так цифры умножаются на 1000 - я точки в тексте поменял на запятые, импортнул, а в системе "," разделитель разрядов. С виду красиво, как в тексте, а по сути неправильно. Осторожно, не напутайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 13:57 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
А замена формата разве не поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 13:57 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Наверное, экспериментируйте. Можно на чистом файле записать экспорт в макрос, затем полученный код вставить в файл вместо моего, если импорт устраивает. Ну и затем в коде подкорректировать, какие ячейки и как анализировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 14:00 |
|
||
|
обработка текстового файла
|
|||
|---|---|---|---|
|
#18+
Работает замечательно, и после преобразвания формата воспринимает как цифры, только в текстовом файле преобразование идет оочень долго! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 14:32 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=179&tid=2178838]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 392ms |

| 0 / 0 |
