Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 256

•  TDictionary Custom Sort  6 299

•  Fast Watermark Sources  6 096

•  3D Designer  9 011

•  Sik Screen Capture  6 414

•  Patch Maker  6 832

•  Айболит (remote control)  6 816

•  ListBox Drag & Drop  5 693

•  Доска для игры Реверси  96 478

•  Графические эффекты  7 031

•  Рисование по маске  6 327

•  Перетаскивание изображений  5 203

•  Canvas Drawing  5 574

•  Рисование Луны  5 279

•  Поворот изображения  4 830

•  Рисование стержней  3 419

•  Paint on Shape  2 671

•  Генератор кроссвордов  3 557

•  Головоломка Paletto  2 852

•  Теорема Монжа об окружностях  3 656

•  Пазл Numbrix  2 392

•  Заборы и коммивояжеры  3 072

•  Игра HIP  2 033

•  Игра Go (Го)  1 959

•  Симулятор лифта  2 321

•  Программа укладки плитки  2 021

•  Генератор лабиринта  2 477

•  Проверка числового ввода  2 161

•  HEX View  2 492

•  Физический маятник  2 108

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

ASCII-файл с использованием полей



Автор: OAmiry (Borland)

В том случае, когда вы собираетесь использовать содержимое текстового файла таким образом, как будто он имеет поля, вам необходим файл схемы, содержащий описание формата текстового файла и который необходим для осуществления вызовов при работе с полями (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;





Похожие по теме исходники

AsciiMaker

Чтение PSD файлов

Шифратор файлов

Разбиение файла на части

 

Поиск файлов

FileMan (менеджер файлов)

Поиск открытых файлов

Текст внутри файла

 



Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте