Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
ADO [17]
ASCII и CSV [12]
Access [20]
Alias [24]
BDE [37]
BLOB поля [19]
Clipper [2]
DB2 [2]
DBASE и DBF [26]
Fox Pro [1]
Interbase [21]
MSSQL [0]
ODBC [10]
Oracle [0]
Paradox [0]
SQL [29]
Sybase [1]
База данных [0]
Закладки [2]
Записи [0]
Индексы [10]
Компоненты и Базы данных [0]
Модуль данных [3]
Отчеты [2]
Ошибки БД [17]
Поиск [16]
Поля [0]
Сортировка и Фильтр [6]
Таблицы [0]

Наш опрос
Оцените мой сайт
Всего ответов: 30

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Базы данных » ASCII и CSV

ASCII-файл с использованием полей
В том случае, когда вы собираетесь использовать содержимое текстового файла таким образом, как будто он имеет поля, вам необходим файл схемы, содержащий описание формата текстового файла и который необходим для осуществления вызовов при работе с полями (Fields / FieldByName / Post / и др.). Ниже приводится код, который вы можете использовать при создании своей программы:



{ Подразумеваем, что Table1 - файл, который мы хотим скопировать
в ASCII-файл. Используем TBatchMove, поскольку быстро работает.
Также это автоматически создаст файл схемы }

procedure TForm1.Button1Click(Sender: TObject);
var

  oDest: TTable;
  oBMove: TBatchMove;
begin

  try
  oDest := nil;
  oBMove := nil;
  Table1.Close;

  oDest := TTable.Create(nil);
  with oDest do
  begin
  DatabaseName := 'c:\delphi\files';
  TableName := 'Test.Txt';
  TableType := ttASCII;
  end; {Обратите внимание на то, что нет необходимости вызывать CreateTable}

  oBMove := TBatchMove.Create(nil);
  with oBMove do
  begin
  Source := Table1;
  Destination := oDest;
  Mode := batCopy;
  Execute;
  end;
  finally
  if Assigned(oDest) then
  oDest.Free;
  if Assigned(oBMove) then
  oBMove.Free;
  end;
end;

{ Теперь, допустим, файл схемы существует;
сам текстовый файл может как быть, так его может и не быть.
С помощью файла схемы мы уже можем работать с полями }

procedure TForm1.Button2Click(Sender: TObject);
var

  oTxt: TTable;
  i: Integer;
  f: System.Text;
begin

  try
  oTxt := nil;

  if not FileExists('c:\delphi\files\Test.Txt') then
  begin
  AssignFile(f, 'c:\delphi\files\Test.Txt');
  Rewrite(f);
  CloseFile(f);
  end;

  oTxt := TTable.Create(nil);
  with oTxt do
  begin
  DatabaseName := 'c:\delphi\files';
  TableName := 'Test.Txt';
  TableType := ttASCII;
  Open;
  end;

  with Table1 do
  begin
  DisableControls;
  if not Active then
  Open;
  First;
  while not EOF do
  begin
  oTxt.Insert;
  { В данном случае файл схемы описывает формат текстового файла; в этом
  примере фактически один к одному воспроизводятся поля таблицы
  в логическое определение полей в .sch-файле }
  for i := 0 to FieldCount - 1 do
  oTxt.Fields[i].AsString := Fields[i].AsString;
  oTxt.Post;
  Next;
  end;
  end;
  finally
  Table1.EnableControls;
  if Assigned(oTxt) then
  oTxt.Free;
  end;

end;
Категория: ASCII и CSV | Добавил: Skinner (03.07.2008) | Автор: OAmiry (Borland)
Просмотров: 411 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2024 Хостинг от uCoz