Delphi 2009 中 TStrings 与 TStream 的增强
TStrings 类(包括 TStringList 和包含 TStrings 属性的所有组件, 譬如 Memo.lines 属性、ListBox.Items 属性)、
TStream 类系列(包括 TFileStream、TMemoryStream 等) 的存取方法, 譬如:
LoadFromFile、SaveToFile、LoadFromStream、SaveToStream, 都有了选择 TEncoding 参数的重载.
本例效果图:
代码文件:
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Memo1: TMemo;Memo2: TMemo;Button1: TButton;Button2: TButton;Button3: TButton;Button4: TButton;Button5: TButton;Button6: TButton;Button7: TButton;Button8: TButton;Button9: TButton;procedure FormCreate(Sender: TObject);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);procedure Button8Click(Sender: TObject);procedure Button9Click(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}constFilePath = 'c:\temp\test.txt';varstr: string;procedure TForm1.FormCreate(Sender: TObject); beginMemo1.ReadOnly := True;str := Memo1.Text;Button1.Caption := 'TStrings 默认存取';Button2.Caption := 'TStrings ASCII 存取';Button3.Caption := 'TStrings UTF8 存取';Button4.Caption := 'TFileStream 默认存取';Button5.Caption := 'TFileStream ASCII 存取';Button6.Caption := 'TFileStream UTF8存取';Button7.Caption := 'TMemoryStream 默认存取';Button8.Caption := 'TMemoryStream ASCII 存取';Button9.Caption := 'TMemoryStream UTF8 存取'; end;procedure TForm1.Button1Click(Sender: TObject); varList: TStrings; beginList := TStringList.Create;List.Text := str;List.SaveToFile(FilePath);List.LoadFromFile(FilePath);Memo2.Lines := List;List.Free; end;procedure TForm1.Button2Click(Sender: TObject); varList: TStrings; beginList := TStringList.Create;List.Text := str;List.SaveToFile(FilePath, TEncoding.ASCII);List.LoadFromFile(FilePath, TEncoding.ASCII);Memo2.Lines := List;List.Free; end;procedure TForm1.Button3Click(Sender: TObject); varList: TStrings; beginList := TStringList.Create;List.Text := str;List.SaveToFile(FilePath, TEncoding.UTF8);List.LoadFromFile(FilePath, TEncoding.UTF8);Memo2.Lines := List;List.Free; end;procedure TForm1.Button4Click(Sender: TObject); varstream: TStream; beginstream := TFileStream.Create(FilePath, fmCreate);Memo1.Lines.SaveToStream(stream);stream.Position := 0;Memo2.Lines.LoadFromStream(stream);stream.Free; end;procedure TForm1.Button5Click(Sender: TObject); varstream: TStream; beginstream := TFileStream.Create(FilePath, fmCreate);Memo1.Lines.SaveToStream(stream, TEncoding.ASCII);stream.Position := 0;Memo2.Lines.LoadFromStream(stream, TEncoding.ASCII);stream.Free; end;procedure TForm1.Button6Click(Sender: TObject); varstream: TStream; beginstream := TFileStream.Create(FilePath, fmCreate);Memo1.Lines.SaveToStream(stream, TEncoding.UTF8);stream.Position := 0;Memo2.Lines.LoadFromStream(stream, TEncoding.UTF8);stream.Free; end;procedure TForm1.Button7Click(Sender: TObject); varstream: TMemoryStream; beginstream := TMemoryStream.Create;Memo1.Lines.SaveToStream(stream);stream.SaveToFile(FilePath);stream.LoadFromFile(FilePath);stream.Position := 0;Memo2.Lines.LoadFromStream(stream);stream.Free; end;procedure TForm1.Button8Click(Sender: TObject); varstream: TMemoryStream; beginstream := TMemoryStream.Create;Memo1.Lines.SaveToStream(stream, TEncoding.ASCII);stream.SaveToFile(FilePath);stream.LoadFromFile(FilePath);stream.Position := 0;Memo2.Lines.LoadFromStream(stream, TEncoding.ASCII);stream.Free; end;procedure TForm1.Button9Click(Sender: TObject); varstream: TMemoryStream; beginstream := TMemoryStream.Create;Memo1.Lines.SaveToStream(stream, TEncoding.UTF8);stream.SaveToFile(FilePath);stream.LoadFromFile(FilePath);stream.Position := 0;Memo2.Lines.LoadFromStream(stream, TEncoding.UTF8);stream.Free; end;end.
窗体文件:
object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 103ClientWidth = 686Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'Tahoma'Font.Style = []OldCreateOrder = FalseOnCreate = FormCreatePixelsPerInch = 96TextHeight = 13object Button1: TButtonLeft = 117Top = 8Width = 150Height = 25Caption = 'Button1'TabOrder = 0OnClick = Button1Clickendobject Button2: TButtonLeft = 268Top = 8Width = 150Height = 25Caption = 'Button2'TabOrder = 1OnClick = Button2Clickendobject Button3: TButtonLeft = 419Top = 8Width = 150Height = 25Caption = 'Button3'TabOrder = 2OnClick = Button3Clickendobject Button4: TButtonLeft = 117Top = 39Width = 150Height = 25Caption = 'Button4'TabOrder = 3OnClick = Button4Clickendobject Memo1: TMemoLeft = 0Top = 0Width = 116Height = 103Align = alLeftLines.Strings = ('Hello World'#19990#30028#24744#22909#12495#12525#12540#19990#30028#50668#47084#48516', '#50504#45397#54616#49464#50836'Ol'#225' Mundo'#1055#1088#1080#1074#1077#1090' '#1084#1080#1088)TabOrder = 4endobject Memo2: TMemoLeft = 570Top = 0Width = 116Height = 103Align = alRightLines.Strings = ('Memo2')TabOrder = 5ExplicitLeft = 578endobject Button5: TButtonLeft = 268Top = 39Width = 150Height = 25Caption = 'Button5'TabOrder = 6OnClick = Button5Clickendobject Button6: TButtonLeft = 419Top = 39Width = 150Height = 25Caption = 'Button6'TabOrder = 7OnClick = Button6Clickendobject Button7: TButtonLeft = 117Top = 70Width = 150Height = 25Caption = 'Button7'TabOrder = 8OnClick = Button7Clickendobject Button8: TButtonLeft = 268Top = 70Width = 150Height = 25Caption = 'Button8'TabOrder = 9OnClick = Button8Clickendobject Button9: TButtonLeft = 419Top = 70Width = 150Height = 25Caption = 'Button9'TabOrder = 10OnClick = Button9Clickend end
Delphi 2009 中 TStrings 与 TStream 的增强相关推荐
- 预习 Delphi 2009 中的新功能 - JSON (二) : 如何在 Delphi 中使用 json
为什么80%的码农都做不了架构师?>>> 在 Delphi 中使用 json, http://www.json.org/ 已经给出了几种方案, 但 Delphi 2009 使用 ...
- 一、Delphi 2009 中的泛型
代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Control ...
- Delphi 2009 超前预知!
转自: http://www.faceker.com/ Tiburon 是下一版本 Delphi 的开发代号,之前的命名应该是 Delphi 2008,但最近看 CodeGear 网站相关的 Blog ...
- 在Delphi程序中操作注册表
32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象: ...
- 20080826 - Delphi 2009 来了
Embarcadero 发布了 Delphi 和 C++Builder 的 Windows 开发工具. 官方称 Delphi 2009 是自 Delphi 3 以来最重要的一个版本. 其更新的亮点有: ...
- 在Delphi程序中应用IE浏览器控件
---- 大概大家还记得Delphi的范例程序中的那个浏览器的例子吧.在那个例子中,利用控件THttp的属性和方法制作了一个浏览器.该例子用于理解THttp控件的使用方法,确实不错.但很少有人会用它作 ...
- Delphi 7 中使用IdUDPServer1和IdUDPClient1控件实现通信检测
Delphi 7 中使用IdUDPServer1和IdUDPClient1控件实现通信,可是如何检测两台电脑已经连通了?代码怎么写啊?求大神 D7确实经典,但已经落伍了,用xe版本吧 udp发送这个东 ...
- Delphi 2009 的反射单元(ObjAuto):
ObjAuto 单元应该算是对 TypInfo 单元的功能扩展吧? 它提供了 5 个方法: GetMethods.GetMethodInfo.CreateMethodPointer.ReleaseMe ...
- Delphi 2009发布
Delphi 2009 于8月25日正式发布了,它是Embarcadero 收购CodeGear后的delphi新版本.官方称 Delphi 2009 是自 Delphi 3 以来最重要的一个版本,在 ...
最新文章
- 2019北京智源大会完整议程重磅揭晓!
- 《OpenStack 实战》内容概览与作者采访
- 描述符应用 -- 让python变成一个强类型的语言
- Android系统架构开篇
- [C/CPP系列知识] C++中extern “C” name mangling -- Name Mangling and extern “C” in C++
- python名称空间_python基础:名称空间与作用域
- Win Form不能响应键盘事件
- JAVA实现数学函数图像
- 省市区mysql一张表下载_2016全国省市区数据库
- 简述FAT32、exFAT、NTFS的区别
- PostScript文件
- mysql查询结果某个字段设置为固定值_MySQL使用select查询时,在查询结果中增加一个字段并指定固定值...
- nova7可以升级成鸿蒙20系统,华为nova7升级到EMUI11,8大功能提升,带来更新体验...
- 基于微信健身房私教预约小程序系统设计与实现 开题报告
- 【Linux编译器】
- eclipse写python怎么样_eclipse python 使用教程(怎么用eclipse写python)
- “淘宝” 开放平台接口设计思路
- java中 else if用法_java if else 用法
- 基于php的Sphinx以及coreseek的全文搜索,中文分词的使用(一)
- Qt笔记(四十一)之qtcreator添加pri文件
热门文章
- java 容器的嵌套_java界面设计里怎么实现容器嵌套
- 在Python中读取MATLAB的数据文件
- 第十六届全国大学生智能车竞赛组委会第三次扩大会议
- 第十六届全国大学生智能汽车竞赛-航天智慧物流创意组 线下选拔赛赛题发布!
- 关于无线节能组无线电能输出功率测量
- 第十六届全国大学生智能车竞赛创意组别-航天智慧物流
- 信号建模与参数估计作业重新计算
- linux脚本中sed -i,Linux 中常用的sed命令
- canva旋转图片 js_js和canvas实现旋转图片
- android将矩阵转换成字节数组,android-使用OpenGL矩阵转换将纹理从“ 1D”映...