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

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


unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = 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;varForm1: TForm1;implementation{$R *.dfm}// TStringReader.Read 是按字符读取, 返回字符编码
procedure TForm1.Button1Click(Sender: TObject);
varReader: TStringReader;i: Integer;
beginReader := 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);
varReader: TStringReader;i: Integer;
beginReader := 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);
varReader: TStringReader;
beginReader := 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);
varReader: TStringReader;
beginReader := TStringReader.Create('123' + sLineBreak + 'abc' + sLineBreak + 'xyz');ShowMessage(Reader.ReadToEnd); {123 / abc / xyz}Reader.Free;
end;//按字符读取全部
procedure TForm1.Button5Click(Sender: TObject);
varReader: TStringReader;str: string;
beginReader := 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);
varReader: TStringReader;str: string;
beginReader := 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);
varReader: TStringReader;buf: TCharArray;
beginReader := 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.

转载于:https://www.cnblogs.com/wanqian/archive/2013/05/20/3089852.html

测试字符串读取类: TStringReader相关推荐

  1. C# JSON格式的字符串读取到类中

    2019独角兽企业重金招聘Python工程师标准>>> 将JSON格式的字符串读取到类中 本例中建立JSON格式的字符串json,将其内容读取到Person类中 运行本代码需要添加引 ...

  2. 也谈C#之Json,从Json字符串到类代码

    也谈C#之Json,从Json字符串到类代码 原文:也谈C#之Json,从Json字符串到类代码  阅读目录 json转类对象 逆思考 从json字符串自动生成C#类  json转类对象 自从.net ...

  3. C语言sscanf()函数(从字符串读取格式化输入,提取需要的信息)

    需包含头文件:C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例 我在VS上测试(VS上要用sscanf_s) 示例1 示例2(提取时能默认以空格分割) 描述 C ...

  4. C#基础 字符串读取/写入文本文件 代码示例

    C#基础 字符串读取/写入文本文件 代码示例 写入文本文件: 1 class Program 2 { 3 static void Main(String[] args) 4 { 5 //写入strin ...

  5. java测试字符串的编码_Java字符串测验

    java测试字符串的编码 Welcome to Java String Quiz. String is one of the most important classes in Java. If yo ...

  6. StringUtils字符串工具类

    StringUtils类目录 StringUtils类是在 cn.hutool.core.util包下的一个类. StringUtils中方法的操作对象是java.lang.String类型的对象,是 ...

  7. KepServer如何和欧姆龙NJ系列通讯并进行字符串读取

    1.PLC端的配置 利用SysmacStudio对NJ501-1300进行IP地址设置,也可以采用默认值,这里使用的是默认IP地址 从图中可知,该设备的节点地址为1. 如果设置端口号,在以下界面设置- ...

  8. c#测试字符串是否为GUID的几种方法

    以前为了赶项目遇到这种需求时,也没过多考虑性能因素,随便写了一个(现在看起来很原始的)方法来实现: static bool IsGuidByError(string strSrc){if (Strin ...

  9. 字符串工具类、数组工具类、集合工具类、转型操作工具类、编码与解码操作工具类...

    package hjp.smart4j.framework.util;import org.apache.commons.lang3.StringUtils;/*** 字符串工具类*/ public ...

最新文章

  1. 什么业务场景适合使用Redis?
  2. HTTP API 自动化测试从手工测试到平台的演变
  3. 139. Word Break
  4. 如何制作一条网线?(双绞线在水晶头中的排列顺序)
  5. Java笔记-SM3(国密3)和SM4(国密4)的使用
  6. Linux—编写shell脚本操作数据库执行sql
  7. rust原地复活_植物大战僵尸英雄锈铁螺栓新手卡组推荐 rustbolt多手牌陷阱恢复后期流卡组...
  8. form表单提交数据的同时上传文件代码示例
  9. ALV 行、列、单元格颜色设置
  10. vmware虚拟机连接网络
  11. C语言----输入人数和姓名,输出最长姓名
  12. 计算机itunes无法安装,电脑一直显示无法安装iTunes怎么回事
  13. 高分Essay写作要点分析
  14. microsoft bing browser advance search
  15. 【附源码】计算机毕业设计java校园食堂订餐系统设计与实现
  16. 最小二乘法构建线性回归方程
  17. 主力用计算机吸筹,主力进场买点 找主力吸筹提款 通达信副图指标 源码 贴图(图文)...
  18. 条件概率的本质是样本空间的缩减
  19. 大疆Tello编队飞行教程(特洛教育版)/多机视频流获取
  20. html5播放器播放尺寸出界了,移动端弹性滑动以及滑动出界解决方案

热门文章

  1. python中opener_详解在Python程序中使用Cookie的教程
  2. ireport怎么套打_阴阳师:当前版本道馆突破怎么打?九套阵容让你成为道馆小能手...
  3. Vivado如何计算关键路径的保持时间裕量?
  4. [CF.Skills]播放嵌入资源的声音文件
  5. 全网最详细的Xshell或SecureCRT下spark-shell里出现无法退格或者删除的问题现象的解决办法(图文详解)...
  6. Appium之创建、连接夜神模拟器
  7. 学嵌入式Linux软件开发需要的知识
  8. openstack-swift云存储部署(一)
  9. EXC_BAD_ACCESS错误
  10. Exchange Server 2010安装测试