Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2010, 09:31   #1
alvazor
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 122
По умолчанию считать txt с фильтром и записать в xls

Подскажите, профессионалы!
Требуется выборочно считать разнородные данные из первых строк текстового файла (причем число считываемых строк имеющейся в txt таблицы данных определяется цифрой из самого txt) и записать их в диапазон фиксированной длины книги excel, заменив при этом недостающие данные нулями и преобразовав разделители чисел в соответствии с пользовательским форматом (последнее не обязательно)
Два варианта исходных txt и подробные инструкции - во вложении
Пробовал Open...For Input As ... - что-то не потянуло -(
М.б. ADO ?? Но тут не смог подобрать провайдера для txt и, соответственно, прочитать результат в Recordset (хотя с БД - без проблем)
С уважением и надеждой, Алексей
Вложения
Тип файла: rar ReadTxtWithFilter.rar (1.7 Кб, 17 просмотров)
alvazor вне форума Ответить с цитированием
Старый 27.01.2010, 14:43   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Насчет пользовательского формата - только для полноты ощущений
Кайфа не поймал,не понял где ловить
Вложения
Тип файла: rar Задание.rar (21.1 Кб, 25 просмотров)
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 27.01.2010 в 14:46.
doober вне форума Ответить с цитированием
Старый 28.01.2010, 08:57   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно проще (см. вложение).
Вложения
Тип файла: rar ReadTxtWithFilter_2.rar (10.6 Кб, 43 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 28.01.2010, 12:13   #4
alvazor
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 122
По умолчанию

Спасибо большущее за оперативность и старания
Я вот вроде и старался внятно описать задачу, но все же, похоже, лоханулся. Самому-то все ясно, а как писать, так....Уж извините
1 Мне надо записать данные в существующий файл Data.xls (в котором, собственно, и должен быть макрос), расположенный в той же папке, что и текстовый файл с данными. Соответственно, FileDialog не нужен. Я этот файл добавил в папку(см. вложение). Диапазон для данных S!:S21. Поэтому OpenText сомнителен
2 Своими макросами из того же листа я этот диапазон использую и стираю (могу, конечно, и ставить нули). Для достоверности, при запуске макроса считывания лучше тоже этот диапазон либо очистить, либо проставить нули.
3 Все данные в текстовом файле - переменные, т.е. меняется не только количество строк данных в таблице, но и их значения, как и три последних цифры в номере установки. Не меняется структура текста, чтобы можно было в принципе выйти на нужные символы
В файл WhatDo я внес эти пояснения
Поэтому, Doober, извините, первый вариант не прошел, хотя там оказалась масса интересного для меня, надеюсь на продолжение
Ваш вариант, SAS888 еще не успел глянуть, потороплюсь, спасибо!
С уважением, Алексей
Вложения
Тип файла: rar ReadTxtWithFilter.rar (3.5 Кб, 12 просмотров)
alvazor вне форума Ответить с цитированием
Старый 28.01.2010, 12:33   #5
alvazor
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 122
По умолчанию Для SAS888

Спасибо, SAS888, все работает и понятно! FileDialog я и сам уберу...
Если Вас не слишком затруднит - можно ли аналогичный вариант *.vbs из той же папки?
Заранее спасибо!
alvazor вне форума Ответить с цитированием
Старый 28.01.2010, 16:11   #6
alvazor
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 122
По умолчанию

SAS888 - еще раз спасибо!
Блестяще сделаны конструкции команд в MAIN - сам бы ввек не додумался!
В качестве отчета во вложении доработанная под мои нужды программа и уже три примера *.txt - вдруг еще кому пригодится!
Кстати, Ваша кнопка на листе 1 - как объект вставлена? Не мог до нее локопаться -(
С уважением, Алексей
Вложения
Тип файла: rar ReadTxtWithFilter_3_SAS888.rar (18.3 Кб, 31 просмотров)
alvazor вне форума Ответить с цитированием
Старый 29.01.2010, 13:21   #7
alvazor
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 122
По умолчанию Теперь насчет пользовательского формата

Реплика от doober: Кайфа не поймал,не понял где ловить...
Эта проблемка сохранилась, подскажите, если можете, решение
Мне необходимо при считывании цифровых данных из *.txt сохранить при выводе в этикетки формы именно тот вид, который в текстовом файле.
Т.е цифра 1,00 должна воспроизводиться как 1,00, а не 1
Для этого ее надо записать в файл xls как текст.
В проге SAS888 (см. последнее вложение) я пробовал при вводе данных на лист заменить Val на Cstr, но это не помогло, преобразование текста в цифру где-то раньше произходит.
У себя я использую п/п замены запятой на точку, если у пользователя разделитель - точка (опять таки только для вывода текста в этикетки, с цифрами-то проблем нет), примерно так:

Sub SetSeparator()
'замена разделителя (запятой на точку) в параметрах для англ. версии
Dim Nch As Integer, i As Integer, Number As String, ModNb As String

If Application.International(xlDecimal Separator) = "." Then
'MsgBox "На данном компьютере сепаратор - точка!"
With ThisWorkbook.Worksheets("calculater ").Range("S3")
For Nch = 1 To N_CR * 3
Number = .Offset(Nch, 0)
ModNb = ""
For i = 1 To VBA.Len(Number)
If Not VBA.Mid(Number, i, 1) = "," Then
ModNb = ModNb & VBA.Mid(Number, i, 1)
Else
ModNb = ModNb & "."
End If
Next i
.Offset(Nch, 0) = ModNb
Next Nch
End With
End If

End Sub

Может и куце, но работает!
Подскажите, пож!
alvazor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите перенести из txt в xls max-tlt1 Microsoft Office Excel 3 08.01.2010 22:37
Как считать с txt? GaNDyPaC Общие вопросы Delphi 20 16.01.2009 22:02
Как побайтно считать файл и записать в другой SeRhy Общие вопросы Delphi 2 09.06.2008 21:54
xls - txt. VBS Xozer Свободное общение 2 03.03.2008 11:29
Перевод прайсов фирм из TXT в XLS Delphi_Manager Фриланс 2 13.02.2008 16:37