• 测试字符串写入类: TStringWriter



    以前没见过这个类, 它是在 TStringBuilder 的基础上实现的; 使用它可以方便地把各种数据类型写入字符串.

    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        Button5: TButton;
        Button6: TButton;
        Button7: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
        procedure Button5Click(Sender: TObject);
        procedure Button6Click(Sender: TObject);
        procedure Button7Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    // 其 WriteLine、Write 各有写入多种数据类型的重载
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Writer: TStringWriter;
    begin
      Writer := TStringWriter.Create;
      Writer.WriteLine('aaa');
      Writer.WriteLine('bbb');
      ShowMessage(Writer.ToString);
      Writer.Free;
    
      Writer := TStringWriter.Create;
      Writer.Write('aaa');
      Writer.Write('bbb');
      Writer.WriteLine;
      Writer.Write('ccc');
      ShowMessage(Writer.ToString);
      Writer.Free;
    end;
    
    //写入 Boolean、Char
    procedure TForm1.Button2Click(Sender: TObject);
    const
      b1: Boolean = True;
      b2: Boolean = False;
      c1: Char = 'A';
      c2: Char = 'B';
    var
      Writer: TStringWriter;
    begin
      Writer := TStringWriter.Create;
      Writer.WriteLine(b1);
      Writer.WriteLine(b2);
      Writer.WriteLine(c1);
      Writer.WriteLine(c2);
      ShowMessage(Writer.ToString);
      Writer.Free;
    end;
    
    //写入整数和浮点数
    procedure TForm1.Button3Click(Sender: TObject);
    const
      n1 = 1;
      n2 = -1;
      f = 3.14;
    var
      Writer: TStringWriter;
    begin
      Writer := TStringWriter.Create;
      Writer.WriteLine(n1);
      Writer.WriteLine(n2);
      Writer.WriteLine(f);
      ShowMessage(Writer.ToString);
      Writer.Free;
    end;
    
    //格式化写入
    procedure TForm1.Button4Click(Sender: TObject);
    var
      Writer: TStringWriter;
    begin
      Writer := TStringWriter.Create;
      Writer.Write('%d + %d = %d', [1,2,3]);
      ShowMessage(Writer.ToString);
      Writer.Free;
    end;
    
    //写入字符数组
    procedure TForm1.Button5Click(Sender: TObject);
    var
      Writer: TStringWriter;
      cs: TCharArray;
      i: Integer;
    begin
      SetLength(cs, 26);
      for i := 0 to Length(cs) - 1 do cs[i] := Chr(65+i);
    
      Writer := TStringWriter.Create;
      Writer.WriteLine(cs);
      Writer.WriteLine(cs, 1, 3);
      ShowMessage(Writer.ToString);
      Writer.Free;
    end;
    
    //写入对象(类名)
    procedure TForm1.Button6Click(Sender: TObject);
    var
      Writer: TStringWriter;
    begin
      Writer := TStringWriter.Create;
      Writer.WriteLine(Self);
      Writer.WriteLine(Sender);
      ShowMessage(Writer.ToString);
      Writer.Free;
    end;
    
    //从 TStringBuilder 建立
    procedure TForm1.Button7Click(Sender: TObject);
    var
      Writer: TStringWriter;
      sb: TStringBuilder;
    begin
      sb := TStringBuilder.Create('ABC');
    
      Writer := TStringWriter.Create(sb);
      Writer.WriteLine;
      Writer.Write(123);
      ShowMessage(Writer.ToString);
    
      sb.Free;
      Writer.Free;
    end;
    
    end.
    
  • 相关阅读:
    Seasar2:SAStruts:View(JSP)
    Seaser2:SAStruts:エラーメッセージの設定
    Seaser2:SAStruts:アクションとアクションフォーム(Struts)
    SAStruts アクションにJSONを返すメソッドを作成してみる
    S2JDBC テーブルを利用した独自仕様のid採番メソッド
    【C++ 异常】error: jump to case label [fpermissive]
    MusicXML 3.0 (15) 倚音
    MusicXML 3.0 (9) 小节线、反复线、终止线
    MusicXML 3.0 (13) 歌词
    MusicXML 3.0 (10) 换行、换页
  • 原文地址:https://www.cnblogs.com/del/p/1581764.html
Copyright © 2020-2023  润新知