DELPHI FAQ: Как экспортировать таблицу базы данных в ASCII-файл?


Как экспортировать таблицу базы данных в ASCII-файл?
Previous  Home  Next



procedure
 TMyTable.ExportToASCII;

var

  I: Integer;
  Dlg: TSaveDialog;
  ASCIIFile: TextFile;
  Res: Boolean;

begin

  if
 Active then
    if
 (FieldCount > 0and (RecordCount > 0then
      begin

        Dlg := TSaveDialog.Create(Application);
        Dlg.FileName := FASCIIFileName;
        Dlg.Filter := 'ASCII-Fiels (*.asc)|*.asc'
;
        Dlg.Options := Dlg.Options+[ofPathMustExist, 
          ofOverwritePrompt, ofHideReadOnly];
        Dlg.Title := 'Экспоритровать данные в ASCII-файл'
;
        try

          Res := Dlg.Execute;
          if
 Res then
            FASCIIFileName := Dlg.FileName;
        finally

          Dlg.Free;
        end
;
        if
 Res then
          begin

            AssignFile(ASCIIFile, FASCIIFileName);
            Rewrite(ASCIIFile);
            First;
            if
 FASCIIFieldNames then
              begin

                for
 I := 0 to FieldCount-1 do
                  begin

                    Write
(ASCIIFile, Fields[I].FieldName);
                    if
 I <> FieldCount-1 then
                      Write
(ASCIIFile, FASCIISeparator);
                  end
;
                Write
(ASCIIFile, #13#10);
              end
;
            while
 not EOF do
              begin

                for
 I := 0 to FieldCount-1 do
                  begin

                    Write
(ASCIIFile, Fields[I].Text);
                    if
 I <> FieldCount-1 then
                      Write
(ASCIIFile, FASCIISeparator);
                  end
;
                Next;
                if
 not EOF then
                  Write
(ASCIIFile, #13#10);
              end
;
            CloseFile(ASCIIFile);
            if
 IOResult <> 0 then
              MessageDlg('Ошибка при создании или переписывании '
+
                'в ASCII-файл'
, mtError, [mbOK], 0);
          end
;
      end

    else

      MessageDlg('Нет данных для экспортирования.'
,
        mtInformation, [mbOK], 0
)
  else

    MessageDlg('Таблица должна быть открытой, чтобы данные '
+
      'можно было экспортировать в ASCII-формат.'
, mtError,
      [mbOK], 0
);
  end
;




DELPHI FAQ




EOMY TOP 100      Рейтинг@Mail.ru      Rambler's Top100