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

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

из 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;


Наверх

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