Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

конвертация из dbf в txt [D7, Win2k, WinXP]


Jann ©   (2005-01-12 14:40:00) 

Люди добрые помогите, али объясните, как осуществить сию процедуру.


Jann   (2005-01-13 08:30:00) [1]

ошибка 'I/O error 105'


Jann   (2005-01-13 08:19:00) [2]

написал вот так:
var
 i: Integer;
 Str: String;
 e: TextFile;
begin
 AssignFile(e,'Text.txt');
 Rewrite(e);
 Table1.Open;
 Table1.First;
 while not Table1.Eof do
 begin
   for i := 0 to Table1.FieldCount - 2 do    // Iterate
   begin
     write(Str,Table1.fields[i].AsString + #9);
   end;  // for
   WriteLn(Str + '"<?xml version=""1.0"" encoding=""utf-16""?>');
   WriteLn(Str,'<client_data_ext><birth_place>' + Table1.Fields[Table1.FieldCount - 1].AsString + '</birth_place></client_data_ext>');
   WriteLn(Str,'"');
 end;
 CloseFile(e);
end;

выдает ошибку, что не так?


aus   (2005-01-12 22:41:00) [3]

Field s


Jann   (2005-01-12 17:27:00) [4]

при компиляции выдает ошибку, ругается на Field, говорит, что не задекларирован, да у Table и свойства Fild нет. Есть FildList, FildDef и еще много, а вот Fild нет.
Что сделать????


Jann   (2005-01-12 17:27:00) [5]

при компиляции выдает ошибку, ругается на Field, говорит, что не задекларирован, да у Table и свойства Fild нет. Есть FildList, FildDef и еще много, а вот Fild нет.
Что сделать????


Anatoly Podgoretsky   (2005-01-12 15:31:00) [6]

end;
WriteLn(Str);
WriteLn(Str, Table1.Field[Table1.FieldCount - 1].AsString);
WriteLn(Str, '"');


Anatoly Podgoretsky   (2005-01-12 15:29:00) [7]

Ну так выше примеры даны
for i:=0 to Table1.FieldCount - 2 do begin
Write(Str, Table1.Field[i].AsString + #9); // Tab
end;
WriteLn(Str, Table1.Field[Table1.FieldCount - 1].AsString);
WriteLn(Str, '"');

Разделитель полей здесть табуляция #9


Jann   (2005-01-12 15:25:00) [8]

например формат такой:
содержимое первой строки таблицы кроме последней ячейки выводим в первую строку текстового файла, во вторую строку текстового файла выводим содержимое последней ячейки первой строки таблицы и в третью строку текстового файла ставим значек ", и так далее до конца dbf файла.


Anatoly Podgoretsky   (2005-01-12 15:12:00) [9]

Чтобы не тритить время по постоянное перераспределения памяти под строку, можно сделать так:

for i:=0 to Table1.FieldCount - 1 do begin
 Write(Str, Table1.Field[i].AsString + #9); // Tab
end;
WriteLn(Str);

или подобное, зависит от нужного формата вывода.


Александр Иванов   (2005-01-12 15:07:00) [10]

Jann ©   (12.01.05 14:52) [2]
var f:Text;Str:string;i:integer;
begin
AssignFile(f,'Table.txt');
Rewrite(f);
Table1.Open;
Table1.First;
while not Table1.eof do
 begin
  for i:=0 to Table1.FieldCount - 1 do
   S:=S+'Field'+IntToStr(i)+': "'+Table1.Field[i].AsString+'"';
  WriteLn(Str,f);
  Table1.Next;
 end;
CloseFile(f);
end;


Fay   (2005-01-12 15:05:00) [11]

DBF и так весьма текстовый.


stone   (2005-01-12 15:04:00) [12]


> объясните, как осуществить сию процедуру.

Создаешь текстовый файл (AssignFile + F1, там и пример есть)
Отрываешь таблицу.
В цикле пробегаешь по записям и полям, пишешь в файл.
Закрываешь файл и таблицу.


Jann   (2005-01-12 14:52:00) [13]

а по подробнее, может у кого пример есть


Anatoly Podgoretsky   (2005-01-12 14:44:00) [14]

WriteLn


Наверх

Титульная страница Поиск, карта сайта Написать письмо