что такое основной формат файла DBF4 (dBase IV)(*.dbf)
? И как создать этот файл в том же текстовом редакторе, что и Notepad
, с вводом текста? (Обновление: или Excel VBA?)
Что это за спецификации формата:
Delimiter
(то же, что:,
илиtab
и т. д.)Separator
(может То же, что и выше!) (Если эти два слова не являются синонимами)Row End
символ: (то же, чтоvbCrLf
)- Определение заголовков столбцов (полей).
Code-Page
изencoding
: (то же, что:Unicode - 1256
и т. д.)- и другие...
Пожалуйста, представьте алгоритм для создания этого формата файла DB
, который позволил нам легко создать тот же файл с помощью метода VBA
, который создает текстовый файл. (Обновите или используйте встроенные методы VBA или его ссылки.)
Я использую ниже для создания текстового файла.
Sub CsvExportRange(rngRange As Object, strFileName As String, strCharset, strSeparator As String, strRowEnd As String, NVC As Boolean) 'NVC: _
Null Value Control (If cell contain Null value, suppose reached end of range), d: delimiter
Dim rngRow As Range
Dim objStream As Object
Dim i, lngFR, lngLR As Long 'lngFR: First Row, lngLR: Last Row
lngFR = rngRange.SpecialCells(xlCellTypeVisible).Rows(1).row - rngRange.Rows(1).row + 1
lngLR = rngRange.End(xlDown).row - rngRange.Rows(1).row + 1
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = 2
objStream.Charset = strCharset
objStream.Open
For i = lngFR To lngLR
If Not (rngRange.Rows(i).EntireRow.Hidden) Then
If IIf(NVC, (Cells(i + rngRange.Rows(1).row - 1, _
rngRange.SpecialCells(xlCellTypeVisible).Columns(1).column).Value = vbNullString), False) Then Exit For
objStream.WriteText CsvFormatRow(rngRange.Rows(i), strSeparator, strRowEnd)
End If
Next i
objStream.SaveToFile strFileName, 2
objStream.Close
End Sub
Function CsvFormatRow(rngRow As Variant, strSeparator As String, strRowEnd As String) As String
Dim arrCsvRow() As String
ReDim arrCsvRow(rngRow.SpecialCells(xlCellTypeVisible).Cells.Count - 1)
Dim rngCell As Range
Dim lngIndex As Long
lngIndex = 0
For Each rngCell In rngRow.SpecialCells(xlCellTypeVisible).Cells
arrCsvRow(lngIndex) = CsvFormatString(rngCell.Value, strSeparator)
lngIndex = lngIndex + 1
Next rngCell
CsvFormatRow = Join(arrCsvRow, strSeparator) & strRowEnd
End Function
Function CsvFormatString(strRaw, strSeparator As String) As String
Dim boolNeedsDelimiting As Boolean
Dim strDelimiter, strDelimiterEscaped As String
strDelimiter = """"
strDelimiterEscaped = strDelimiter & strDelimiter
boolNeedsDelimiting = InStr(1, strRaw, strDelimiter) > 0 _
Or InStr(1, strRaw, chr(10)) > 0 _
Or InStr(1, strRaw, strSeparator) > 0
CsvFormatString = strRaw
If boolNeedsDelimiting Then
CsvFormatString = strDelimiter & _
Replace(strRaw, strDelimiter, strDelimiterEscaped) & _
strDelimiter
End If
End Function
(забытый источник)
Потому что я пришел к этому: я должен создать файл dbf
из моего Excel Range
вручную! После поиска найденных веб-источников.
Обновлено:
Как объявить кодировку DBF?
Что касается необходимой кодировки, то здесь довольно часто встречается кодировка Иранская система.
Как я могу хранить данные в подходящей кодировке как Иранская система в записях таблицы БД?
Range
вDBF
этап, и меня обескуражило получение кода для создания этого макроса экспортера. Итак, я пытаюсь найти структуру и алгоритм внутриDBF
для создания этого файла из моего excelRange
вручную с помощью макросаVBA
. - person mgae2m   schedule 31.08.2017CSV
с помощью настраиваемыхDelimiter
иRow end
иCharset
, мне нужно создать файлDBF
с контролируемым вводом данных в приведенном выше примере макроса. Фактически, обращение к слову «Блокнот» было примером или сравнением для моей цели. - person mgae2m   schedule 31.08.2017Range
. - person mgae2m   schedule 31.08.2017Chars
в вышеуказанный метод, алгоритмический? - person mgae2m   schedule 31.08.2017Chr
для записи файла, содержащего соответствующие коды, и, таким образом, создать свою собственную функцию экспорта DBF. Это, безусловно, выполнимо, и я желаю вам удачи, если вы решите попробовать. - person YowE3K   schedule 31.08.2017DBF
. Я не могу найти этот путь после попытки поиска в течение дня. Поэтому я думаю о разработке создателя DBF с помощью VBA. - person mgae2m   schedule 01.09.2017import
. Я должен создать макрос в Excel VBA, чтобы экспортировать мой отчетный диапазон в DBF. - person mgae2m   schedule 01.09.2017Access
объект (Set App = CreateObject("Access.Application")
) не может задействовать БД и Таблицы в памяти? Итак, если бы этот подход был тихим, у меня не было проблем с временными файлами. Наконец, метод @jsotola@ точен и краток. - person mgae2m   schedule 01.09.2017