测试字符串读取类: TStringReader


TStringReader 比 TStringWriter 的方法少得多, 分别可按: 字符、行或全部读取;

读取字符时得到的是字符编码, 全部或按行读取得到是字符串, 也可读取到字符数组.

unit Unit1;interfaceuses  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}// TStringReader.Read 是按字符读取, 返回字符编码procedure TForm1.Button1Click(Sender: TObject);var  Reader: TStringReader;  i: Integer;begin  Reader := TStringReader.Create('ABCDEFGHIJKLMNOPQRSTUVWXYZ');  {读取}  i := Reader.Read;  ShowMessageFmt('%d : %s', [i, Chr(i)]); {65 : A}  {继续读取}  i := Reader.Read;  ShowMessageFmt('%d : %s', [i, Chr(i)]); {66 : B}  {将要读取的}  i := Reader.Peek;  ShowMessageFmt('%d : %s', [i, Chr(i)]); {67 : C}  Reader.Free;end;//试试中文procedure TForm1.Button2Click(Sender: TObject);var  Reader: TStringReader;  i: Integer;begin  Reader := TStringReader.Create('万一的 Delphi 博客');  {读取}  i := Reader.Read;  ShowMessageFmt('%d : %s', [i, Chr(i)]); {19975 : 万}  {继续读取}  i := Reader.Read;  ShowMessageFmt('%d : %s', [i, Chr(i)]); {19968 : 一}  {将要读取的}  i := Reader.Peek;  ShowMessageFmt('%d : %s', [i, Chr(i)]); {30340 : 的}  Reader.Free;end;//读取一行procedure TForm1.Button3Click(Sender: TObject);var  Reader: TStringReader;begin  Reader := TStringReader.Create('123' + sLineBreak + 'abc' + sLineBreak + 'xyz');  ShowMessage(Reader.ReadLine); {123}  ShowMessage(Reader.ReadLine); {abc}  ShowMessage(Reader.ReadLine); {xyz}  Reader.Free;end;//一次读取全部procedure TForm1.Button4Click(Sender: TObject);var  Reader: TStringReader;begin  Reader := TStringReader.Create('123' + sLineBreak + 'abc' + sLineBreak + 'xyz');  ShowMessage(Reader.ReadToEnd); {123 / abc / xyz}  Reader.Free;end;//按字符读取全部procedure TForm1.Button5Click(Sender: TObject);var  Reader: TStringReader;  str: string;begin  Reader := TStringReader.Create('123' + sLineBreak + 'abc' + sLineBreak + 'xyz');  while Reader.Peek > 0 do str := str + Chr(Reader.Read);  ShowMessage(str); {123 / abc / xyz}  Reader.Free;end;//按行读取全部procedure TForm1.Button6Click(Sender: TObject);var  Reader: TStringReader;  str: string;begin  Reader := TStringReader.Create('123' + sLineBreak + 'abc' + sLineBreak + 'xyz');  while Reader.Peek > 0 do str := str + Reader.ReadLine;  ShowMessage(str); {123abcxyz}  Reader.Free;end;//读取到字符数组procedure TForm1.Button7Click(Sender: TObject);var  Reader: TStringReader;  buf: TCharArray;begin  Reader := TStringReader.Create('ABCDEFGHIJKLMNOPQRSTUVWXYZ');  SetLength(buf, 3);  Reader.ReadBlock(buf, 0, Length(buf));  ShowMessageFmt('%s%s%s', [buf[0], buf[1], buf[2]]); {ABC}  Reader.Free;end;end.
posted on 2009-10-12 17:04 万一 阅读(4960) 评论(0) 编辑 收藏©著作权归作者所有:来自51CTO博客作者JLee79的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 测试字符串写入类: TStringWriter
  2. 将字符串转换成 UTF8 编码的函数
  3. 学用 ASP.Net 之 System.TimeSpan 结构
  4. 学用 ASP.Net 之 "字符串" (1): 基础
  5. 学用 ASP.Net 之 System.Char 结构
  6. 学用 ASP.Net 之 "字符串" (6): StringInfo 类
  7. 学用 ASP.Net 之 "字符串" (5): StringBuilder 类
  8. 学用 ASP.Net 之 "字符串" (4): string 类的扩展方法
  9. 学 Win32 汇编[19]: 查看二进制等相关函数

随机推荐

  1. Android(安卓)Q 接入 MQTT
  2. android 扫描SD卡与系统文件(转)
  3. android搭建环境错误 daemon not running
  4. Eclipse 卡死在 Android SDK Content Loa
  5. Android有效解决加载大图片内存溢出问题
  6. 屏蔽警告: WARNING: EmulatorService.cpp:
  7. Android 中文 API 文档 (44) ―― Chronome
  8. android 控件xml属性
  9. Android调试工具 adb
  10. android Linearlayout中有关gravity与lay