Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
13 / 13 / 3
Регистрация: 05.06.2015
Сообщений: 93
1

Конвертирование файлов DBF III в DBF IV

17.06.2015, 22:32. Просмотров 849. Ответов 2
Метки нет (Все метки)

Существует некая форма, которая подключается к dbf файлам и берет из них данные.
строка подключения такая:
vb.net
1
 ConnP.ConnectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE IV;Data Source={0};", FolderWORK.ToString) '
проблема в том, что иногда попадаются файлы в dbase iii. Но даже несмотря на это на некоторых машинах оно обрабатывается без проблем. А на некоторых выдает ошибку типа индекс не найден на строку с fill:
vb.net
1
2
oleCommanda.CommandText = "SELECT * from TABLE"
adapter.Fill(ds, "dsTable")
При этом на проблемных машинах если открыть dbf файл DBF навигатором и сохранить его не в dBase iii а в dBase iv то все начинает работать хорошо.
Посему вопрос: Можно ли конвертировать средствами vb.net файл dbase iii в dbase iv. Или максимально автоматизировать этот процесс используя сторонние приложения? или как-то иначе решить эту проблему не затрагивая ПК на котором выполняется приложение?
(лазить к каждому в реестр и добавлять там ключи возможности нет)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2015, 22:32
Ответы с готовыми решениями:

Конвертирование DBF файлов в другую кодировку
Народ, подскажите кто-нибудь (Через поиск вразумительного ответа не нашел). Пытаюсь открыть...

Ошибка при загрузке DBF файлов с датой 'dd.mm.yy' (DBF FoxPro, TADOQvery, DataSource, DBGrid)
Возьмем для примера текущую дату - '04.09.2003'. В результате выполнения этого запроса данные...

Конвертирование Db в Dbf
Есть db-таблицы определенной структуры. Их необходимо загружать в 1С. Подскажите, пожалуйста, как...

MDB в DBF конвертирование
Добрый день. Уважаемые пользователи. Подскажите пожалуйста, как переконвертировать из MDB в DBF...

2
2504 / 1125 / 582
Регистрация: 07.06.2014
Сообщений: 3,273
17.06.2015, 23:51 2
если я не ошибаюсь, то версия DBF файла - это первый байт заголовка. В простейшем случае, когда нет мемо-полей, индексных файлов и других версионно-зависимых наворотов, думаю, достаточно изменить 1-й байт файла.
Ну это надо смотреть, возможно, в данном случае всё не так просто.

Если не получится, тогда дай посмотреть два файла - один в dBase III, который не открывается и второй, этот же файл после
Цитата Сообщение от LEonardo_ Посмотреть сообщение
если открыть dbf файл DBF навигатором и сохранить его не в dBase iii а в dBase iv то все начинает работать хорошо
1
13 / 13 / 3
Регистрация: 05.06.2015
Сообщений: 93
18.06.2015, 08:35  [ТС] 3
не могу к сожалению передать файлы...
подскажите, чем это можно поглядеть?
по поводу первого байта немного поизучал... и попытался через vb поглядеть первые несколько в файлах примерно вот так:

vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Dim myFileStream As System.IO.FileStream
        Dim myFileStream2 As System.IO.FileStream
        myFileStream = New System.IO.FileStream(FolderIN & "FILE.DBF", IO.FileMode.Open)
        myFileStream2 = New System.IO.FileStream(FolderIN & "FILE2.DBF", IO.FileMode.Open)
        Dim myBinaryReader As New System.IO.BinaryReader(myFileStream)
        Dim myBinaryReader2 As New System.IO.BinaryReader(myFileStream2)
        Dim bData() As Byte = myBinaryReader.ReadBytes(myFileStream.Length)
        Dim bData2() As Byte = myBinaryReader2.ReadBytes(myFileStream2.Length)
        Dim str() As String
        ReDim str(bData.Length)
        Dim str2() As String
        ReDim str2(bData2.Length)
        For i As Integer = 0 To bData.Length - 1
            Str(i) = Hex(bData(i).ToString)
        Next
        For i As Integer = 0 To bData2.Length - 1
            str2(i) = Hex(bData2(i).ToString)
        Next
        myBinaryReader.Close()
        myFileStream.Close()
        myBinaryReader2.Close()
        myFileStream2.Close()
        System.IO.File.AppendAllText("log\hextest.txt", str(0) & " " & str(1) & " " & str(2) & " " & str(3) & " " & str(4) & " " & str(5) & " " & str(6) & " " & str(7) & " " & str(8) & " " & str(9) & vbCrLf)
        System.IO.File.AppendAllText("log\hextest.txt", str2(0) & " " & str2(1) & " " & str2(2) & " " & str2(3) & " " & str2(4) & " " & str2(5) & " " & str2(6) & " " & str2(7) & " " & str2(8) & " " & str2(9))
они одинаковые...

можете подсказать где еще покопаться?
или чем посмотреть?

уже думаю о том, что как-то нужно попробовать написать скрипт для dbf навигатора чтобы он открывал файл, сохранял его в dbase 4 на автомате, там дело шести кликов, но как-то это через известное место...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2015, 08:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

DBF, DBASE, JAVA, парсинг, конвертирование, работа, редактирование
добрый день. Решил написать программу, которая будет конвертировать обычный текстовый документ в...

Копирование данных из одной таблицы dbf в шаблон dbf
Есть источник файл med.dbf с данными, необходимо перенести часть данных в файл-шаблон med.dbf....

Создание dbf-файла dBASE III с использованием JetOleDB4: на одном из ПК файл создается в кодировке ANSI
Здравствуйте. Возникла у меня интересная проблема: Программно создаю dbf файл dBASE III...

Работа с dbf в C# - вывести содержимое dbf в dataGridView
Необходимо вывести содержимое dbf в dataGridView, подскажите как сделать.... Заранее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.