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

•  DeLiKaTeS Tetris (Тетрис)  112

•  TDictionary Custom Sort  3 302

•  Fast Watermark Sources  3 052

•  3D Designer  4 806

•  Sik Screen Capture  3 303

•  Patch Maker  3 521

•  Айболит (remote control)  3 621

•  ListBox Drag & Drop  2 980

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

•  Графические эффекты  3 906

•  Рисование по маске  3 217

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

•  Canvas Drawing  2 722

•  Рисование Луны  2 547

•  Поворот изображения  2 155

•  Рисование стержней  2 155

•  Paint on Shape  1 559

•  Генератор кроссвордов  2 218

•  Головоломка Paletto  1 759

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

•  Пазл Numbrix  1 678

•  Заборы и коммивояжеры  2 049

•  Игра HIP  1 273

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

•  Симулятор лифта  1 465

•  Программа укладки плитки  1 211

•  Генератор лабиринта  1 537

•  Проверка числового ввода  1 345

•  HEX View  1 484

•  Физический маятник  1 351

 
скрыть


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

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



Delphi Sources

TWriter и TReader - читаем и пишем в файл





unit MsForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    ButtonReadText: TButton;
    ButtonWriteLines: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Memo1: TMemo;
    ButtonReadLines: TButton;
    ButtonWriteRev: TButton;
    ButtonMoveLines: TButton;
    procedure ButtonReadTextClick(Sender: TObject);
    procedure ButtonWriteLinesClick(Sender: TObject);
    procedure ButtonReadLinesClick(Sender: TObject);
    procedure ButtonWriteRevClick(Sender: TObject);
    procedure ButtonMoveLinesClick(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ButtonReadTextClick(Sender: TObject);
var
  Str1: TFileStream;
  I: Integer;
begin
  OpenDialog1.Filter :=
    'Text File (*.txt)|*.txt|Pascal File (*.pas)|*.pas|' +
    'ReadWrite File (*.rwt)|*.rwt|Any file (*.*)|*.*';
  OpenDialog1.DefaultExt := 'txt';
  if OpenDialog1.Execute then
  begin
    Str1 := TFileStream.Create (
      OpenDialog1.Filename, fmOpenRead);
    try
      Memo1.Lines.LoadFromStream (Str1);
    finally
      Str1.Free;
    end;
    // enable all buttons
    for I := 0 to ControlCount - 1 do
      if Controls [I] is TButton then
        TButton (Controls [I]).Enabled := True;
  end;
end;


procedure TForm1.ButtonWriteLinesClick(Sender: TObject);
var
  Str1: TFileStream;
  Writer1: TWriter;
  I: Integer;
begin
  SaveDialog1.Filter :=
    'Read Write file (*.rwf)|*.rwf|Any file (*.*)|*.*';
  SaveDialog1.FilterIndex := 1;
  SaveDialog1.DefaultExt := 'rwt';
  if SaveDialog1.Execute then
  begin
    Str1 := TFileStream.Create (
      SaveDialog1.FileName, fmCreate or fmOpenWrite);
    Writer1 := TWriter.Create (Str1, 1024);
    try
      Writer1.WriteListBegin;
      for I := 0 to Memo1.Lines.Count - 1 do
        Writer1.WriteString (Memo1.Lines [I]);
      Writer1.WriteListEnd;
    finally
      Writer1.Free;
      Str1.Free;
    end;
  end;
end;

procedure TForm1.ButtonReadLinesClick(Sender: TObject);
var
  Str1: TFileStream;
  Reader1: TReader;
  I: Integer;
begin
  OpenDialog1.Filter :=
    'Read Write file (*.rwf)|*.rwf|Any file (*.*)|*.*';
  OpenDialog1.FilterIndex := 1;    
  OpenDialog1.DefaultExt := 'rwt';
  if OpenDialog1.Execute then
  begin
    Str1 := TFileStream.Create (
      OpenDialog1.Filename, fmOpenRead);
    Reader1 := TReader.Create (Str1, 1024);
    try
      Reader1.ReadListBegin;
      Memo1.Lines.Clear;
      while not Reader1.EndOfList do
      begin
        Memo1.Lines.Add (Reader1.ReadString);
        Application.ProcessMessages;
      end;
      Reader1.ReadListEnd;
    finally
      Reader1.Free;
      Str1.Free;
    end;
    // enable all buttons
    for I := 0 to ControlCount - 1 do
      if Controls [I] is TButton then
        TButton (Controls [I]).Enabled := True;
   end;
end;

procedure TForm1.ButtonWriteRevClick(Sender: TObject);
var
  Str1: TFileStream;
  Writer1: TWriter;
  I: Integer;
begin
  SaveDialog1.Filter :=
    'Read Write Test file (*.rwt)|*.rwt|Any file (*.*)';
  SaveDialog1.DefaultExt := 'rwt';
  if SaveDialog1.Execute then
  begin
    Str1 := TFileStream.Create (
      SaveDialog1.FileName, fmCreate or fmOpenWrite);
    Writer1 := TWriter.Create (Str1, 1024);
    try
      Writer1.WriteListBegin;
      for I := Memo1.Lines.Count - 1 downto 0 do
        Writer1.WriteString (Memo1.Lines [I]);
      Writer1.WriteListEnd;
    finally
      Writer1.Free;
      Str1.Free;
    end;
  end;
end;

procedure TForm1.ButtonMoveLinesClick(Sender: TObject);
var
  MemStr1: TMemoryStream;
  Writer1: TWriter;
  Reader1: TReader;
  I: Integer;
begin
  MemStr1 := TMemoryStream.Create;
  try
    Writer1 := TWriter.Create (MemStr1, 1024);
    try
      Writer1.WriteListBegin;
      Randomize;
      while Memo1.Lines.Count > 0 do
      begin
        I := Random (Memo1.Lines.Count);
        Writer1.WriteString (Memo1.Lines [I]);
        Memo1.Lines.Delete (I);
        Application.ProcessMessages;
      end;
      Writer1.WriteListEnd;
    finally
      Writer1.Free;
    end;
    // reset, rewind, move back
    // to the beginning of the stream
    MemStr1.Seek (0, soFromBeginning);
    Reader1 := TReader.Create (MemStr1, 1024);
    try
      Reader1.ReadListBegin;
      while not Reader1.EndOfList do
      begin
        Memo1.Lines.Add (Reader1.ReadString);
        Application.ProcessMessages;
      end;
      Reader1.ReadListEnd;
      finally
        Reader1.Free;
      end;
    finally
      memStr1.Free;
  end;
end;

end.

Загрузить весь проект





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

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

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

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

Поиск файлов

 

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

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

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




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

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