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

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

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

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)
Просмотров: 598 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Все смайлы
Код *:
Вход на сайт
Поиск
Друзья сайта
Copyright MyCorp © 2022
Версия для мобильных устройств. Яндекс.Метрика БКНС Анализ сайта