![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
из dbf в txt [D7, dBase, FoxPro]
Jann © (2005-01-13 09:52:00)написал вот так:
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;
выдает ошибку ошибка 'I/O error 105', что не так?
sniknik (2005-01-13 11:11:00) [1]> Str:= Str + '"<? xmlversion=""1.0"" encoding=""utf-16""?>';
это не то же самое что clientdataset/adodataset по savetofile записывает? если так то это не txt.
Александр Иванов (2005-01-13 10:58:00) [2]А что есть последняя ячейка строки?
Нужно просто посмотреть все это в отладчике, что куда выводит.
Jann (2005-01-13 10:57:00) [3]первую строку выводит нормально, а во второй
WriteLn(e,<client_data_ext><birth_place>' + Table1.Fields[Table1.FieldCount - 1].AsString + '</birth_place></client_data_ext>)
выводит полную чушь, вместо содержимого последней ячейки строки
Александр Иванов (2005-01-13 10:00:00) [4]Честно говоря я так и не разобрал вчерашнюю задумку АП, поэтому исправлю по-своему:
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
Str:=Str + Table1.fields[i].AsString + #9;
end; // for
Str:= Str + '"<?xml version=""1.0"" encoding=""utf-16""?>';
Str:= Str+'<client_data_ext><birth_place>' + Table1.Fields[Table1.FieldCount - 1].AsString + '</birth_place></client_data_ext>';
Str:= Str+'"';
WriteLn(e,Str);
Table1.Next;
end;
CloseFile(e);
end;