powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Открытие DBF файла
18 сообщений из 18, страница 1 из 1
Открытие DBF файла
    #35762489
Gena108
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открываю dbf файл с помощью Екселя, латынь и цифры импортируются нормально, кириллица непонтным текстом. Подскажите пожалуйста что делать?
...
Рейтинг: 0 / 0
Открытие DBF файла
    #35762513
alex_gearbox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй импортировать данные.
...
Рейтинг: 0 / 0
Открытие DBF файла
    #35762519
Gena108
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В случае открытия с помощью получается таблица, все данные распологается там где им нужно, но текст не тот. В случае импорта, данные вставляются в одну ячейку и практически без логики.
...
Рейтинг: 0 / 0
Открытие DBF файла
    #35762856
alex_gearbox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Без римера несколько сложно.

1. попробуйте разные настройки импорта;
2. найдите где-нибудь Excel 2000, он вроде как кирилицу нормально выводил.
...
Рейтинг: 0 / 0
Открытие DBF файла
    #35764287
Gena108
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное нужно менять кодировку в реестре?
...
Рейтинг: 0 / 0
Открытие DBF файла
    #35764947
Gena108
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реестр изменить не могу. Нашел в форуме след. ф-ю:
Код: plaintext
1.
2.
3.
4.
5.
Public Function ANSI2OEM(ByVal sAnsi As String) As String
    Dim sOem As String
    sOem = String(Len(sAnsi), Chr( 0 ))
    CharToOem sAnsi, sOem
    ANSI2OEM = sOem
End Function

Но не все симовлы кооректно переводит, например "╫" должно быть "Ч", а ставит "+".
Помогите, п-та разобраться.
...
Рейтинг: 0 / 0
Открытие DBF файла
    #35765734
alex_gearbox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Файл пуст что-ли?
...
Рейтинг: 0 / 0
Открытие DBF файла
    #35766097
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gena108Наверное нужно менять кодировку в реестре?
Гена, в Вашем примере ничего кроме заголовка DBF нет.
А без данных рекомендации больше похожи на гадания. Попробуем погадать.
В заголовке DBF 29-й байт равен 0x65. Это обычно означает кодировку CP866.
Попробуйте применить приложенный в архиве RUS.REG
Нужно запустить его, и подтвердить.
В приложении есть также вспомогательная Excel-табличка, в которой можно нажать кнопку Пуск и сравнить установки реестра для DOS и Windows кодировок с требуемыми.
...
Рейтинг: 0 / 0
Открытие DBF файла
    #35766394
Gena108
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, спасибо за помощь.
В приложении файл DBF с данными. RUS.REG не применяется, выдает ошибку "Не удалось импортировать. Не все данные были записаны в реестр", наверное нет доступа к редактиваронию. Я вчера пробывал на дом. ПК менять DataCodePage на ANSI, файл не перекодирует. По проверке все совпадает из требуемыми.
...
Рейтинг: 0 / 0
Открытие DBF файла
    #35768298
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получите :)
Код: 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.
Option Explicit
Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

' ZVI:2009-01-20 http://www.sql.ru/forum/actualthread.aspx?tid=631075
' Перекодировка DBF из Windows-1251 в DOS-866 для работы в Excel
Sub Dbf_Win2Rus()
  Dim FN%, s$, ptrType&, ptrData&, b() As Byte, FileName
  On Error GoTo exit_
  ' Выбрать DBF файл
  ChDrive Mid(ThisWorkbook.Path,  1 ,  1 )
  ChDir ThisWorkbook.Path & "\"
  FileName = Application.GetOpenFilename("DBF File (*.dbf), *.dbf", , _
            "DBF Win2Dos")
  If FileName = False Then GoTo exit_
  ' Открыть DBF файл
  FN = FreeFile
  Open FileName For Binary Access Read Write As #FN
  ' Считать все в байтовый массив
  ReDim b( 0  To LOF(FN) -  1 )
  Get #FN, , b
  ' Проверить флаг перекодировки для исключения двойной
  If CInt(b( 29 )) =  38  Then
    If MsgBox("DOS-кодировка уже установлена," & vbLf _
             & "Все равно продолжить?", _
             vbExclamation + vbOKCancel + vbDefaultButton2, _
             "Не навреди!") <> vbOK Then
      GoTo exit_
    End If
  End If
  ' Установить указатель на начало данных
  ptrData = b( 9 ) *  256  + b( 8 ) +  1 
  ' Считать данные в Unicode
  s = StrConv(MidB(b, ptrData), vbUnicode)
  ' Перекодировать данные в DOS-866
  ReDim b( 0  To Len(s) -  1 )
  b = StrConv(Win2Dos(s), vbFromUnicode)
  ' Переписать данные в DBF
  Put #FN, ptrData, b
  ' Установить флаг DOS-866 в DBF
  Put #FN,  30 ,  38 
exit_:
  Close #FN
  If Err <>  0  Then
    Debug.Print "Error: " & Err.Number & " - " & Err.Description
  Else
    MsgBox "Преобразовано успешно!", vbInformation, "DBF Win2Dos"
  End If
End Sub

Private Function Win2Dos(ByVal sWin As String) As String
  Win2Dos = String(Len(sWin), Chr( 0 ))
  Call CharToOem(sWin, Win2Dos)
End Function
...
Рейтинг: 0 / 0
Открытие DBF файла
    #35768480
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо: If FileName = False Then GoTo exit_
Правильнее: If FileName = False Then Exit Sub

И можно убрать лишнюю переменную: ptrType&

После обработки файл DBF нормально читается в Excel.
...
Рейтинг: 0 / 0
Открытие DBF файла
    #35768996
Gena108
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Открытие DBF файла
    #36946391
Dream.357
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здесь нужно поменять либо кодовую страницу (866<->1251), либо тип файла (dBase4<->Visual FoxPro), либо сделать конверт ANSI<->OEM. Это все можно сделать, например, с помощью бесплатной http://elphsoft.com/dbfcommander.html
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Открытие DBF файла
    #39024850
asai9493
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет Всем !!. Не знаю, может и не по теме, но на Вас последняя надежда.
Мне нужно открыть файл dbf формата. Пробовал все программы, какие только есть- fox pro, dbf manager, excell, total commander.... все напрасно. Файл dbf открывают, но вот только появляются ????. Думаю, скорее всего это файл из далекого прошлого....
Кто знает решение... помогите. НУжно срочно!
...
Рейтинг: 0 / 0
Открытие DBF файла
    #39025004
T1gRa_NT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asai9493, Вы уже создали свой вопрос, Вам задали вопросы для помощи тут: 17988397
не надо плодить вопросы, отвечайте в 1 теме.
...
Рейтинг: 0 / 0
Открытие DBF файла
    #39245438
Jagare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZVI,

Интересный макрос, но только что мы получим, если хотя бы один из столбцов таблицы имеет бинарный тип данных I?
...
Рейтинг: 0 / 0
Открытие DBF файла
    #39430130
btm_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZVI,
спасибо, мучилась два дня , спа-спа
...
Рейтинг: 0 / 0
Открытие DBF файла
    #39432279
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
btm_1ZVI, спасибо, мучилась два дня , спа-спа
Рад, что помогло, спасибо за отклик! :)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Открытие DBF файла
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]