Неверов Евгений Викторович
Меню сайта
Категории раздела
Программирование на языке Паскаль [27]
В данной категории представлены новые функции, созданные на языке Паскаль, которые могут пригодиться при написании своих программ
Программирование на Delphi [18]
В данной категории представлены полезные подпрограммы, которые могут пригодиться при написании своих программ, а также рассматриваются примеры готовых проектов, создаваемых в среде программирования Delphi
Программирование на HTML [0]
В данной категории рассматриваются примеры готовых проектов, создаваемых на языке HTML
Прочее [0]
Свободная тематика
Мини-чат
200
Наш опрос
Оцените мой сайт
Всего ответов: 41
Статистика

Рейтинг@Mail.ru
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Программирование на Delphi [ Добавить статью ]

Безопасное открытие и закрытие файла

1. Открытие файла


function slLoadFromFile(var sl: TStringList; f: string): boolean;
const MaxBufSize=$F000;
var H, Count: integer;
    Buffer: pChar;
    Text: string;
begin
   Result:=false;
   sl.Clear;
   H:=FileOpen(f, 64);
   If H=-1 then
      Exit;
   Result:=true;
   Text:='';
   FileSeek(H, 0, 0);
   GetMem(Buffer, MaxBufSize);
   Repeat
      Count:=FileRead(H, Buffer^, MaxBufSize);
      If Count>0 then
         Text:=Text+Copy(Buffer, 1, Count);
   Until Count<=0;
   FreeMem(Buffer, MaxBufSize);
   FileClose(H);
   sl.Text:=Text;
end;

где

sl - переменная типа TStringList, в которую загружают файл f;

f - полное имя открываемого файла.


2. Сохранение файла


function slSaveToFile(var sl: TStringList; f: string): boolean;
const MaxBufSize=$F000;
var H, Count: integer;
    Buffer: pChar;
    Text: string;
begin
   Result:=false;
   H:=FileCreate(f);
   If H=-1 then
      Exit;
   Result:=true;
   Text:=sl.Text;
   FileSeek(H, 0, 0);
   Repeat
      Buffer:=pChar(Copy(Text, 1, MaxBufSize));
      Count:=Length(Buffer);
      If Count>0 then
      begin
         FileWrite(H, Buffer^, Count);
         Text:=Copy(Text, Count+1, Length(Text));
      end;
   Until Count<=0;
   FileClose(H);
end;

procedure TForm1.Button1Click(Sender: TObject);
const f1='E:\Delphi.txt';
      f2='E:\Delphi2.txt';
var sl: TStringList;
begin
   sl:=TStringList.Create;
   slLoadFromFile(sl, f1);
   Memo1.Text:=sl.Text;
   slSaveToFile(sl, f2);
   sl.Free;
end;

При нажатии на данную кнопку открывается файл, его содержимое загружается в компонент Memo1 (он служит в качестве блокнота), затем сохраняется в новом файле.

Категория: Программирование на Delphi | Добавил: newerow1989 (14.08.2016 13:53 )
Просмотров: 109 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Все смайлы
Код *:
Поиск
Друзья сайта
  • Создать сайт
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Все проекты компании
  • Copyright MyCorp © 2018
    Автор этого сайта: Неверов Евгений Викторович

    Мои координаты
    Бесплатный конструктор сайтов - uCozЯндекс.Метрика