Страницы: 1
RSS
еще раз про импорт кракозяб из ДБФ
 
добрый день.  
прочитал много ссылок на подобное - но нигде нету конкретного ответа или решения.  
я сделал наглядный пример (файлы надо сохранить на диске С:\1)  
в эксель файле настроено подключение к ДБФ. пробую обновить данные - получаются какие то иероглифы. может у кого то была такая проблема?  
судя по форуму ZVI, Alex_ST, Казанский многое про это знают. Помогите с такой проблемой пожалуйста.
 
забыл пример прикрепить
 
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=631075&msg=6713135  
---------------    
Почитайте решение от Владимира(ZVI)
Спасибо
 
вставил код в "эту книгу" - а он дает ошибку.  
что я не так делаю ?
 
так и не нашёл в той теме совет вставлять код в "эту книгу". вы это сами придумали?  
вставьте пустой стандартный модуль и скопируйте код в него.  
если не знаете, что это такое, вам сюда:   
http://www.planetaexcel.ru/tip.php?aid=122
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
спасибо - не туда поставил.  
запустил - а толку нету - все равно иероглифы выходят.  
Владимир(ZVI)! не подскажете в чем может быть проблема?  
какие параметры могут быть тут неправильные ?  
СПАСИБО
 
разобрался - все работает - спасибо.  
только есть один нюанс.  
у меня база 30 столбцов и 243 000 строк.  
не хочет преобразовывать.  
 
пробую 30 столбцов - 100 000 строк - все работает.  
не подскажете в чем может быть проблема ?
 
еще одно уточнение - преобразовывает файл ДБФ размером 125 мегабайт максимум, если больше - никакой реакции.  
как это можно "ВЫЛЕЧИТЬ" ?  
СПАСИБО
 
Разбить на 2 dbf, потом в Excel склеить :)
 
Тема кодировок DBF обсуждалась и здесь:  
http://www.planetaexcel.ru/forum.php?thread_id=20905  
   
А проблема в данном случае в том, что Excel понимает только классически явный формат DBF-файла, при котором код первого символа DBF-файла равен 03.  
   
Прикладываю обновленную версию, исправляющую этот символ.  
Нажмите кнопку RUN, укажите DBF-файл для преобразования кодировки.  
После преобразования загружайте DBF в Excel как обычно.
 
Пока отвечал на один вопрос, пришел другой :-)  
Размер обработки ограничен объемом памяти компьютера и операционной системой, а также алгоритмом - считывание всего файла (без заголовков) в память.
 
преобразует нормально - спасибо.  
только почему то файлы ДБФ до125 мегабайт.  
можете подсказать в чем проблема ?  
у меня файл 170 Мб - не берет, обрезаю его до 125 - нормально  
СПАСИБО
 
это реально вылечить програмно ?
 
{quote}{login=brother_alex}{date=13.08.2012 01:48}{thema=}{post}это реально вылечить програмно ?{/post}{/quote}  
Для этого нужно считывать, обрабатывать и перезаписывать не все данные сразу, а по частям с помощью буферного байтового массива разумного размера, например,  в несколько мегабайт.
 
Вы сможете в этом мне помочь ?  
очень надо
 
подскажите  возможен ли тогда такой вариант:  
я например в ячейку А1 ввожу число. эксель ищет строку с этим числом (это число уникальное)в ДБФ, после нахождения - преобразует по Вашему коду в нормальный вид, а затем выводит результат (всю строку) в эксель ?  
это было бы вообще идеальным вариантом (только не знаю как быстро будет идти поиск в дбф размером 143 Мб.)
 
{quote}{login=brother_alex}{date=13.08.2012 02:25}{thema=}{post}Вы сможете в этом мне помочь ?  
очень надо{/post}{/quote}  
Что-то сделал, проверяйте
 
{quote}{login=brother_alex}{date=13.08.2012 02:51}{thema=}{post}подскажите  возможен ли тогда такой вариант{/post}{/quote}  
Тогда - когда? :-)  
Прокомментированный код - перед Вами, пробуйте сами что-то делать.  
Где застопорится - спрашивайте. Подскажут в чем проблема - пытайтесь идти дальше. Иначе не научитесь.  
Помощь на форуме это же помощь в изучении, а не в исполнение ночных желаний ;-)
 
ошибку дает какую то
 
{quote}{login=brother_alex}{date=13.08.2012 03:43}{thema=}{post}ошибку дает какую то{/post}{/quote}  
Запустите мою книгу, там ведь работает.  
Причина ошибки у Вас в сообщении написана однозначно: Вы не скопировали весь код из моей книги, а именно вот эту строку сверху:  
Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
 
РАЗОБРАЛСЯ - СПАСИБО - РАБОТАЕТ  
 
ЕЩЕ ОДИН ВОПРОС ЕСЛИ МОЖНО  
 
У МЕНЯ ЕСТЬ ТАБЛИЦІ НА УКРАИНСКОМ ЯЗІКЕ. В НИХ ВАША ПРОГРАММА ПЕРЕВОДИТ БУКВЫ "І" И "Ї" КАК "_" - ЭТО КАК МОЖНО ПЕРЕСТРОИТЬ ?  
СПАСИБО
 
1. Хорошо, что заработало!  
 
2. Перекодировкой занимается внешняя функция CharToOem из библиотеки MICROSOFT, ее модификация невозможна.  
 
3. В коде раскомментируйте вот эту строку:    
On Error GoTo exit_  
эта строчка была отключена при отладке  
 
4. Доброй ночи :-)
 
Поддержал украинский и белорусский языки.  
Для этого пришлось отказаться от внешней библиотеки Microsoft,  
т.е. теперь работает без API
 
ПРОСТО СУПЕР - спасибо  
можно ли Вам задать еще вопрос по импорту из ДБФ ?
 
Конечно, спрашивайте, форум - для вопросов, и главные здесь те, кто спрашивает.  
Но вопросы лучше задавать не персонализировано, я могу чего-то не знать или быть занятым. А тот, кто знает, и у кого есть время и желание помочь – ответят Вам.  
 
Если вопрос не по данной теме, то лучше создать новую.  
В правилах форума по этому поводу написано: 4. Придерживайтесь правила "Один вопрос - одна тема".
 
у меня есть 4 файла ДБФ в папке С:\TEMP.  
как переделать этот макрос чтобы он автоматически (не выбирая каждый файл) их все по очереди переконвертировал?  
СПАСИБО
 
сам что то не могу
Страницы: 1
Читают тему
Наверх