|
|
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Как средствами вижал бэйсика конвртнуть дбэфину из оем в анси? с помошью библиотеки Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 11:46 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
на hiprog.com был готовый класс который работает с DBF файлами без никаких дополнительных бибилиотек напрямую работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 12:02 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Легко. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 12:29 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Всегда рад помочь. К тому же на таком (не подлизываясь к модерам) уважаемом форуме! (сам админ, но на менее уважаемом сайте. На своем собственном.) :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 13:09 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Оказывается, что еще не совсем спасибо)))))))))))))))) Дело в том, что мне приходит файлик в OEM, мне надо его залить на SQL. есть процедурка, о которой говорил я в самом начале (которая отлетает), так вот, она переписывает один байт и поидее этот файл становится с виндовой кодировкой. А ваша процедура, Уважаемый AndreyMp , уже работает с содержимым. С содержимым мне по выбранному пути вообще работать не надо, если только на SQL сервере, так как содержимое заливается все через DTS. Так вот, нет ли способа изменить кодировку самого файла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 17:21 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Говорил же вам на hiprog.com есть класс для работы с DBF-файлами Кривцова А. вот выложил пример конвертации с помощью этого класса. класс был взят с сайта hiprog.com. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 07:30 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Примерчик чуть-чуть кривоватый, но отшлифовать не составит труда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 07:31 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Спасибо, порадовало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2006, 12:15 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
orunbekГоворил же вам на hiprog.com есть класс для работы с DBF-файлами Кривцова А. вот выложил пример конвертации с помощью этого класса. класс был взят с сайта hiprog.com. А никто не сталкивался с проблемой, что этот класс при создании нового файла названия всех столбцов добивает до 11 знаков пробелами? В итоге столбец "ID" в файле выглядит как "ID " со всеми вытикающими. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 08:43 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Rustygold orunbekГоворил же вам на hiprog.com есть класс для работы с DBF-файлами Кривцова А. вот выложил пример конвертации с помощью этого класса. класс был взят с сайта hiprog.com. А никто не сталкивался с проблемой, что этот класс при создании нового файла названия всех столбцов добивает до 11 знаков пробелами? В итоге столбец "ID" в файле выглядит как "ID " со всеми вытикающими. не знаю, базы я еще не создавал, тока читал и экспорт в mdb и т.д. насчет этого не знаю, автору не пробовали обратиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 10:42 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Не пробовал. Честно говоря, я не нашел на hiprog.com этого кода. Попробую еще сам код поковырять - может чего откопаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 11:10 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
А у меня таблица, переконвертированная с помощью Кривцова А., ничем не читается. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 13:00 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
В смысле: не открывается. "Объект не найден ядром..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 13:03 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Уменьши длину названия таблицы до 8 символов и называй только латинскими буквами. С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 13:12 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
А я бы не занимался никакой конвертацией ибо в DBF-ках проще правильно выставить 29-ый байтик. И ничего конвертить не нужно будет по определению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 14:04 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Ааа, всё равно ошибка. Да и я вытащил ту функцию - работает неправильно, как и OemToChar и др. ботва того же плана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 14:06 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
2AndrF а что произойдет если данные в таблице будут хранится в DOS кодировке, а Вы поставите 29 байт соответствующий Win? Помнится я ставил такие опыты... ничего хорошего из этого не вышло. С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 14:52 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
gjghjc2AndrF а что произойдет если данные в таблице будут хранится в DOS кодировке, а Вы поставите 29 байт соответствующий Win? Помнится я ставил такие опыты... ничего хорошего из этого не вышло. С уважением, Николай. И у меня тоже не вышло :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 15:02 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Я решил проблему следующим образом. Файлообмен у нас осуществялся при помощи dbf - файликов. Головная контора требовала WIN1251. Чтобы сильно не иметь себе и окружающим мозг я формировал и проверял файлики в DOS866, а перед отправкой конвертил их в Win при помощи програмки DbfToWin (DbfToDos обратный конвертер). Поскольку я так и не нашел как через VB корректно работать с файлами в кодировке Win1251. Есть еще пара конвертеров DosToWin и WinToDos, но они работают медленнее и ругаются на файлы у которых длина имени не равна 8-ми символам и начинающихся не с букв а с цифр. У DbfToDos и DbfToWin есть грабля такого рода что если файл данные в котором хранятся в Dos кодировке повторно сконвертировать в Dos то буква Х (ха) мифическим образом меняется на скобку :) С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 15:21 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
gjghjc2AndrF а что произойдет если данные в таблице будут хранится в DOS кодировке, а Вы поставите 29 байт соответствующий Win? Помнится я ставил такие опыты... ничего хорошего из этого не вышло. И нафига это нужно? Должен стоять байт соответствующий кодировке. Обычно так все и стоит. Но дюже редко бывают случаи, когда этот байтик установлен неверно (может злые хакеры покопались, чтобы жизнь чайникам усложнить) - его надо просто выставить соответственно кодировке (возможно еще переиндексировать таблички придется). И все - таблички будут нормально читаться. Безо всяких извратов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 15:47 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
gjghjcПоскольку я так и не нашел как через VB корректно работать с файлами в кодировке Win1251. DBF-ка должна быть создана с 29-ым байтиком указывающим на Win-кодировку. И все. Конкретного значения не помню - оно легко находится в интернете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 15:50 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Создавал таблички при помощи DAO и Create Table. в 29 байте был 0.... :( С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 17:29 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
gjghjcСоздавал таблички при помощи DAO и Create Table. в 29 байте был 0.... :( С уважением, Николай. А можно поподробней? Какие там параметры хитрые? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 18:15 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Гугли по "Структура DBF" С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 18:35 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
У нас тут форум или презентация Гугла? :( Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 22:16 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Ну можно и в яндексе поискать... без разницы. Суть в том что если набрать в поисковике предложеное мной словосочетание то в ссылках напервой же странице ты найдешь очень много разнообразной информации о структуре DBF таблиц. Почитаешь, переваришь. Попробуешь что-то сам... поэкспериментируешь. Или мне за тебя поискать и тебе ссылки выложить??? С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 23:14 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
gjghjcСоздавал таблички при помощи DAO и Create Table. в 29 байте был 0.... :( Ну и? По умолчанию - OEM кодировка. Выставь данный байтик ручками. Может можно одним из параметров соединения задавать, но не гарантирую ибо не задавался целью проверить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 08:41 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
А вот и нет. У меня по умолчанию почему-то всегда получалась DOS. Параметры соединения почем-то игнорировались. А вот ручками выставлять байтики мне было не с руки потому как проверить 200-300 файлов в день автоматически, а потом залезть в них и ручками поправить 29 байт... Попахивает извращением. :) Хотя теперь вот думаю, а если при записи данных в файл конвертить строки при помощи CharToOem... может что и получится :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 09:34 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Мне структура DBF файла как-то не нужна. И 29-й байт у меня ни на что не влияет. Меня интересовала строка подключения через DAO, когда таблица присоединяется с ANSI-кодировкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 09:41 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Чур без обид.... :) Поиск по форуму "DAO", "OpenDatabase" "Openrecordset" OpenDatabase(MainPath, False, False, "dBASE IV;LANGID=0x0419;CP=866;COUNTRY=0") Вот эта строка подключается к базе dbf при этом используется кодовая страница DOS 866. Особо обрати внимание на то что под базой понимается ПАПКА в которой лежат твои таблицы. Длина имени таблицы не должна превышать 8 символов и называться латинскими буквами (об этом я уже писал.) Читай, смотри если где будут затыки в коде попробуем разобраться вместе. :) С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 09:59 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Ага. Вот это уже дело. Теперь бы подключиться с виндовой кодировкой. Параметр CP=1251 - не прокатил, ни на что не повлиял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 13:48 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
А что вообще тебе нужно сделать с этими DBF?? С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 14:48 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Присоединить к аккессу и поработать с ним. Вооот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 15:27 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 15:42 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Эх, спорщики... Держите код создающий две разные таблички в кодировках OEM Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 15:52 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
AndrFЭх, спорщики... Держите код создающий две разные таблички в кодировках OEM и ANSII и пишущий в них строку данных. Любая из этих табличек правильно откроется в том-же Access... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 15:54 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Чуть поправил: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 15:59 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
tbANSII.DBF содержится вместо информации куча знаков вопроса.... цитирую :) ?????????? ANSII А oem читается нормально С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 16:11 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
gjghjctbANSII.DBF содержится вместо информации куча знаков вопроса.... цитирую :) ?????????? ANSII А oem читается нормально Смотрим на скриншот во вложенном файле. P.S Откуда я знаю чем у Вас читается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 16:20 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
А на какой версии ADO галочка стоит??? Ибо сделал все тоже самое.... содержимое tbANSII.DBF не читается :( Вот эти версии ADO стоят у меня. Может заплатку какую привинтить??? С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 16:52 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Смена бита по смещению 29 ничего не дает. А обе таблицы читаются нормально, ибо в обеих записан ASCII русский текст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 16:56 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Letter_DСмена бита по смещению 29 ничего не дает. А обе таблицы читаются нормально, ибо в обеих записан ASCII русский текст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 17:31 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Letter_DСмена бита по смещению 29 ничего не дает. А обе таблицы читаются нормально, ибо в обеих записан ASCII русский текст. Вот мои таблички. Посмотрев их даже тем-же FAR-ом можно явно увидеть что они записались в разных кодировках. Попробуйте прилинковать любую из них в Access-e - увидите то что я присылал на скриншоте. Любая из них нормально откроется и из кода. Что-же я все-же не так делаю-то, что все работает без проблем??? И притом много лет. Ибо про 29-ый байтик я узнал еще со времен FoxPro for Dos v2.5 - лет так ~15 назад... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 17:37 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Никто не спорит с тобой, просто я пытаюсь понять почему у меня на протяжении 3-лет все попытки научится корректно работать с DBF таблицами в WIN кодировке заканчивались полным крахом. И даже сейчас когда ты дал готовый код у меня все равно ничего не получается. Мне вот что интересно. С какой версией ADO ты работаешь??? Скорее всего дело в этом... хотя.. хвост его знает. Сначала я обрадовался как слон думаю ну все.. мучения закончились.. есть красивый рабочий код, ан нет.. С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 18:13 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
gjghjcСначала я обрадовался как слон думаю ну все.. мучения закончились.. есть красивый рабочий код, ан нет... Не все еще потеряно. Значит так - приведенный выше код я набрасывал и проверял на рабочей машине (WinXP). Дома он не пошел (Vista) - в табличку писались вопросики. На скорую руку внес небольшие изменения: Так создаем таблички, чтобы они создались в старом DOS-формате (впрочем тут все как и раньше): Код: plaintext 1. 2. 3. 4. 5. 6. 7. А вот через такой коннект с ними работаем дальше: Код: plaintext 1. 2. 3. 4. 5. 6. Так все заработало и дома. ------------ Что установлено на рабочей машине что там все работает без проблем я уж не помню - мне не столь часто приходится работать с Win-кодировкой в DBF-ках, чтобы на этом заостряться. -- OLEDB-шного провайдера для FoxPro я брал здесь . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 21:11 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Спасибо, попробую помучать этот код. :) С уважением, Николай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 00:09 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Я посмотрел b FAR'ом и блокнотом - в обоих таблицах текст записался ANSI русской кодировкой. У меня стоит XP и Office 2002. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 10:44 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
Letter_DЯ посмотрел b FAR'ом и блокнотом - в обоих таблицах текст записался ANSI русской кодировкой. У меня стоит XP и Office 2002. Последний пример (с FoxPro-шным провайдером) отлично отрабатывает на рабочей и домашней машине. -------------- Вообще-же меня сейчас больше интересует вопрос - из-за чего возникает разница в работе с DBF-ками провайдера Microsoft.Jet.OLEDB.4.0 на разных машинах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 10:57 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
AndrFВообще-же меня сейчас больше интересует вопрос - из-за чего возникает разница в работе с DBF-ками провайдера Microsoft.Jet.OLEDB.4.0 на разных машинах...Разные кодировки по умолчанию на уровне системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 17:24 |
|
||
|
DBF. oem/ansi converter
|
|||
|---|---|---|---|
|
#18+
White Owl AndrFВообще-же меня сейчас больше интересует вопрос - из-за чего возникает разница в работе с DBF-ками провайдера Microsoft.Jet.OLEDB.4.0 на разных машинах...Разные кодировки по умолчанию на уровне системы. Это не причем. В обоих местах установлены русские версии Windows. Настройки везде одинаковы (по крайней мере я ничего такого в операционке не выкручиваю). В табличках явно задана их кодовая страница - так что и никакого умолчания нет. Тем не менее провайдер Microsoft.Jet.OLEDB.4.0 на одной машине отрабатывает правильно (распознавая кодовую страницу как надо), а на другой - нет. И с теми-же табличками FoxPro-шный провайдер на обоих машинах работает без проблем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 17:35 |
|
||
|
|

start [/forum/topic.php?all=1&fid=60&tid=2163763]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
103ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 529ms |

| 0 / 0 |
