Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 12.02.2008
Сообщений: 49

Есть база *.dbf, как ее перегнать в текстовый файл?

28.02.2009, 00:15. Показов 2966. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть база на *.dbf (в ней 7 полей ) и в конце дня мне нужно сформировать файл текстовый и скопировать в него содержимое моей базы чтобы в текст. Файле это выглядело точно также как и в базе. Помогите, я не знаю как это сделать,а нужно .
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.02.2009, 00:15
Ответы с готовыми решениями:

Перегнать текстовый файл в базу
Здравствуйте. Есть огромный файл(больше 100 000) транзакций(1 строка - одна транзакция вида a,b,c,d,e и т.д максимальной длины 26). В...

Текстовый файл как база данных
Имеется такая задача. Есть игра, написанная на лазарусе. Рекорды оттуда должны записываться в DBGrid и выводиться (в отсортированном виде,...

Есть текстовый файл, первый символ каждой строки записать в другой текстовый файл
Есть текстовый файл, первый символ каждой строки записать в другой текстовый файл помогите в написании такой программы

6
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
28.02.2009, 00:49
Если вам не обязательно использовать для этого Delphi, то проще всего сделать это каким-нибудь скриптовым языком: Положите следующий файл с расширением vbs в ту же директорию, где находится ваш dbf-файл (пусть его имя mytable1) и запустите его двойным кликом мыши. Отчет должен появиться в файле dbflist.txt. Поля разделены символом табуляции, так что результат можно сразу загрузить в Excel или в таблицу Word. При желании можете подправить скрипт, чтобы сделать другой формат или дополнительный отбор или обработку записей. Надеюсь, ваш файл не содержит MEMO-полей, иначе всё было бы несколько сложнее.
Code
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
set fso = CreateObject('Scripting.FileSystemObject')
set f = fso.CreateTextFile('dbflist.txt')
set cn = CreateObject('ADODB.Connection')
cn.Open 'Driver={Microsoft dBASE Driver (*.dbf)}; ' & _
        'DriverID=533'
set rs = cn.Execute('SELECT * FROM mytable1')
nf=rs.Fields.Count
For i = 0 To nf-1
  If i=0 Then
    buf = rs.Fields(i).Name
  Else
    buf = buf & Chr(9) & rs.Fields(i).Name
  End If
Next
f.WriteLine(buf)
Do While Not rs.EOF
  For i = 0 To nf-1
    If i=0 Then
      buf = rs.Fields(i)
    Else
      buf = buf & Chr(9) & rs.Fields(i)
    End If
  Next
  f.WriteLine(buf)
  rs.MoveNext
Loop
f.Close
rs.Close
set rs = Nothing
cn.Close
set cn = Nothing
0
0 / 0 / 0
Регистрация: 12.02.2008
Сообщений: 49
28.02.2009, 16:48  [ТС]
Спасибо за скрипт, но я пишу эту программу на Delphi.
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
01.03.2009, 00:35
Ну тогда как-нибудь так (я вывожу результат на консоль)
Code
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
program listdbf;
{$APPTYPE CONSOLE}
uses
  SysUtils, DB, DBTables, Provider, DBClient;
var
  Table: TTable;
  DataSetProvider: TDataSetProvider;
  ClientDataSet: TClientDataSet;
  fcount, i: Word;
begin
  Table := TTable.Create(nil);
  try
    Table.TableName := 'mytable.dbf'
    Table.Open;
    DataSetProvider := TDataSetProvider.Create(nil);
    try
      DataSetProvider.DataSet := Table;
      ClientDataSet := TClientDataSet.Create(nil);
      try
        ClientDataSet.SetProvider(DataSetProvider);
        ClientDataSet.Open;
        fcount:=ClientDataSet.Fields.Count;
        For i:=0 To fcount - 1 Do Begin
          If i>0 Then Write(Chr(9));
          Write(ClientDataSet.FieldDefs[i].Name)
        End;
        writeln;
        while Not ClientDataSet.Eof Do Begin
          For i:=0 To fcount - 1 Do Begin
            If i>0 Then Write(Chr(9));
            Write(ClientDataSet.Fields[i].Value)
          End;
          writeln;
          ClientDataSet.Next;
        End;
        ClientDataSet.Close
      finally
        ClientDataSet.Free
      end
    finally
      DataSetProvider.Free
    end;
    Table.Close
  finally
    Table.Free
  end
end.
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
01.03.2009, 00:39
Только exe-файл получается примерно в 1000 раз больше, чем скрипт, который я предложил вам в начале.
0
1 / 1 / 1
Регистрация: 21.02.2009
Сообщений: 39
01.03.2009, 03:07
че вы тупите?
1.открыл в excel как файл DBase
2.сохранил как текстовый файл
0
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
01.03.2009, 11:16
По условия задачи во-первых нужно, чтобы была программа, во-вторых, чтобы было на дельфи.

А для вашего способа нужно, чтобы на компьютере был установлен Excel, кроме-того Excel не сможет открыть слишком длинный файл (имеется ограничение на количество строк).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2009, 11:16
Помогаю со студенческими работами здесь

Можно ли Документ перегнать в dbf
Хочу узнать, можно ли Документ выгрузить в dbf? Если да, то как?

Как программно перегнать базу из *.dbf в базу access
Как программно перегнать базу из *.dbf в базу access. С указанием полей из которых в которые надо перегнать

Файл: Есть 5 классов, как их записать в текстовый файл?
Ребята пожалуйста кто знает как разобраться с файлами. Есть 5 классов как их записать в текстовый файл??????Чтобы они потом в этом файле...

пишет что .dbf файл не найден, хотя .accdb файл есть
куда мог подеваться файл с .dbf ? и как его вернуть, файл с расширением .accdb на месте.

есть база даных и как туда закинуть файл .sql
у меня есть база даных и как туда закинуть файл .sql


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru