⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readerwriter_mainform.pas

📁 source code for the Marco Cantu s book Delphi 2009 Handbook
💻 PAS
字号:
unit ReaderWriter_MainForm;

interface

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

type
  TFormReaderWriter = class(TForm)
    btnWrite: TButton;
    btnRead: TButton;
    btnWriteAndRead: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Memo1: TMemo;
    Label3: TLabel;
    btnXmlCorrect: TButton;
    btnXmlUnbalanced: TButton;
    btnClassic: TButton;
    procedure btnWriteClick(Sender: TObject);
    procedure btnReadClick(Sender: TObject);
    procedure btnWriteAndReadClick(Sender: TObject);
    procedure btnXmlCorrectClick(Sender: TObject);
    procedure btnXmlUnbalancedClick(Sender: TObject);
    procedure btnClassicClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormReaderWriter: TFormReaderWriter;

implementation

{$R *.dfm}

uses
  Generics.Collections;

type
  TTrivialXmlWriter = class
  private
    fWriter: TTextWriter;
    fNodes: TStack<string>;
  public
    constructor Create (aWriter: TTextWriter);
    destructor Destroy; override;
    procedure WriteStartElement (const sName: string);
    procedure WriteEndElement;
    procedure WriteString (const sValue: string);
  end;


procedure TFormReaderWriter.btnWriteAndReadClick(Sender: TObject);
var
  sw: TStringWriter;
  sr: TStringReader;
  theString: string;
begin
  sw := TStringWriter.Create;
  try
    sw.WriteLine ('Hello, world');
    sw.WriteLine ('Have a nice day');
    sw.WriteLine (Left);
    theString := sw.ToString;
  finally
    sw.Free;
  end;

  sr := TStringReader.Create(theString);
  try
    while sr.Peek <> -1 do
      Memo1.Lines.Add (sr.ReadLine);
  finally
    sr.Free;
  end;
end;

procedure TFormReaderWriter.btnWriteClick(Sender: TObject);
var
  sw: TStreamWriter;
begin
  sw := TStreamWriter.Create('test.txt', False, TEncoding.UTF8);
  try
    sw.WriteLine ('Hello, world');
    sw.WriteLine ('Have a nice day');
    sw.WriteLine (Left);
  finally
    sw.Free;
  end;
end;

procedure TFormReaderWriter.btnXmlCorrectClick(Sender: TObject);
var
  sw: TStringWriter;
  txw: TTrivialXmlWriter;
  theString: string;
begin
  sw := TStringWriter.Create;
  try
    txw := TTrivialXmlWriter.Create (sw);
    try
      txw.WriteStartElement('book');
        txw.WriteStartElement('title');
          txw.WriteString('Delphi 2009 Handbook');
        txw.WriteEndElement;
        txw.WriteStartElement('author');
          txw.WriteString('Marco Cant

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -