![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
конвертация из 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