|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.04.2010, 18:25 | #1 |
Регистрация: 16.04.2010
Сообщений: 4
|
Выгрузка из Эксель в текстовый документ без разделителей...
Вобщем есть макрос, который берет ДБФ-файл, вытягивает оттуда таблицу в Эксель и с Экселя сохраняет файл в текстовый. Когда открываю полученый текстовый файл (в Фаре), то разделителем столбцов(бывших) являеться Таб. Как сделать так, чтоб при экспорте в текстовый формат строчки были без разделителей (т.е. чтоб были одни пробелы)????
Думаю собака порылась где-то здесь))): If (OptionButton1.Value = True) Then TextBox6.Text = ComboBox1.Text + " за " + ComboBox2.Text + " мiсяць " + Str(DTPicker2.Year) + " року" UserForm1.CommonDialog1.Filename = UserForm1.TextBox5.Text Workbooks.Open Filename:=UserForm1.CommonDialog1.F ilename A1 = Trim(UserForm1.CommonDialog1.Filena me) a2 = Len(A1) i = a2 fr = True While (fr) If (i <> 0) Then a3 = Left(A1, i) If (Mid(a3, Len(a3)) = ".") Then a4 = Len(a3) ElseIf (Mid(a3, Len(a3)) = "\") Then a5 = Len(a3) fr = False End If i = i - 1 Else fr = False End If Wend a6 = Mid(A1, a5 + 1, a4 - 1 - a5) Sheets(a6).Select fr = True i = 2 k = "F" + Trim(Str(i)) While (fr) If (Range(k).Text <> "") Then A1 = Range(k).Text * 100 Range(k).Value = A1 Range(k).Select Selection.NumberFormat = "0" i = i + 1 k = "F" + Trim(Str(i)) Else fr = False End If |
20.04.2010, 05:24 | #2 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Чем шире угол зрения, тем он тупее.
|
|
20.04.2010, 14:44 | #3 |
Регистрация: 16.04.2010
Сообщений: 4
|
Прикрепляю dbf файл, и 2 текстовых файла. Один, который получаеться в результате выполнения макроса, а второй - то что я хочу получить (edit)...
|
21.04.2010, 05:50 | #4 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Предлагаю макрос, который преобразует текстовый файл, заменив табуляцию на пробелы.
Код:
Чем шире угол зрения, тем он тупее.
|
21.04.2010, 16:48 | #5 |
Регистрация: 16.04.2010
Сообщений: 4
|
Так а можно его вставить в мой макрос, или его надо выполнять отдельно?
|
22.04.2010, 05:27 | #6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Если лист Excel требуется сохранить в формате txt, то для того, чтобы преобразовать разделители столбцов (tab) в пробелы, потребуется формировать каждую текстовую строку и записывать в txt-файл построчно, либо формировать эту строку, перебирая столбцы, строки, ячейки. Что долго и утомительно (даже для макроса).
Предлагаю после того, как Вы сохранили txt-файл, следующей строкой кода запускать предложенный мной макрос, в который передавать 2 параметра: myPath и myName. Для этого, имя макроса заменить на Код:
После этого, запускать макрос из Вашего кода можно, например, так: Код:
Чем шире угол зрения, тем он тупее.
|
28.04.2010, 16:53 | #7 |
Регистрация: 16.04.2010
Сообщений: 4
|
И еще... Я макрос запускаю на Win2000 SP4, а на ХР работает так, как надо...Что это может быть?
|
30.06.2010, 10:43 | #8 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 56
|
У меня похожая проблема.
С помощью макросов в таблицу подгружаются данные из текстовых файлов, там обрабатываются и формируется таблица. Эту таблицу нужно сохранить в текстовый(как я понимаю) файл, требования которые выдвигает разработчик софта в который будет данный файл подгружаться следующие: "в качестве разделителя полей используется – символ с HEX кодом «10» , в качестве раделителя записей символ с HEX кодом «0A»" Вышеуказанный код помогает заменить разделители пробелами, а как заменить символами по HEX коду? Еще желательно бы в конце (как в Example.dat) добавить контрольную сумму CRC16 всех строчек данных(я даже боюсь представить что это такое) Для меня это китайская грамота, может поможете разобраться. Во вложении архив. В нем файл таблица - как она формируется после обработки, файл Example.dat - то что должно получиться(прислано разработчиками софта) и файл Compas.dat то как сохраняется сейчас. |
01.07.2010, 01:20 | #9 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Во вложении подсчет контрольной суммы CRC16 и CRC 32.И макрос по формированию файла dat.Пробовал несколько алгоритмов CRC16 ,сумма с разработчиком не совпала.У вас с ними должен быть один алгоритм подсчета ее.
символ с HEX кодом «0A» Chr(10) символ с HEX кодом «10» Chr(16)
Анализ,обработка данных Недорого
|
07.07.2010, 13:24 | #10 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 56
|
Уважаемый doober, спасибо что отреагировали на мое письмо, пытался запустить макросы в вашем файле - ничего не происходит, файл не формируется, с чем это может быть связано?
По поводу CRC не могу третий день связаться с разработчиками, если абстрагироваться от CRC и сделать только формирование DAT файла с разделителями, то как это может выглядеть? Я тут пытался воспользоваться решением выше, но не пойму каким символом начинается новая строка, т.е. табуляцию меняю на символ с кодом DEC 16, но тогда и в конце строк тот же символ встает,а как сделать чтобы в конце строки вставал символ с кодом DEC 10? |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как откомпилировать текстовый документ | Vitalyir84 | Общие вопросы Delphi | 9 | 15.02.2010 23:07 |
имена файлов в текстовый документ | Mobile™ | Операционные системы общие вопросы | 7 | 02.11.2009 23:41 |
Вставка картинок в текстовый документ | PONKA | Общие вопросы Delphi | 0 | 04.02.2009 12:54 |
Как с помощью Delphi открыть/сохранить/удалить текстовый документ | SeRhy | Помощь студентам | 4 | 02.11.2007 20:27 |
Ввод даты без разделителей (311007) | avtor101 | Microsoft Office Excel | 1 | 31.10.2007 19:57 |