在 Delphi 2009 中,
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 的增强相关推荐

  1. 预习 Delphi 2009 中的新功能 - JSON (二) : 如何在 Delphi 中使用 json

    为什么80%的码农都做不了架构师?>>>    在 Delphi 中使用 json, http://www.json.org/ 已经给出了几种方案, 但 Delphi 2009 使用 ...

  2. 一、Delphi 2009 中的泛型

    代码文件: unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Control ...

  3. Delphi 2009 超前预知!

    转自: http://www.faceker.com/ Tiburon 是下一版本 Delphi 的开发代号,之前的命名应该是 Delphi 2008,但最近看 CodeGear 网站相关的 Blog ...

  4. 在Delphi程序中操作注册表

    32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象: ...

  5. 20080826 - Delphi 2009 来了

    Embarcadero 发布了 Delphi 和 C++Builder 的 Windows 开发工具. 官方称 Delphi 2009 是自 Delphi 3 以来最重要的一个版本. 其更新的亮点有: ...

  6. 在Delphi程序中应用IE浏览器控件

    ---- 大概大家还记得Delphi的范例程序中的那个浏览器的例子吧.在那个例子中,利用控件THttp的属性和方法制作了一个浏览器.该例子用于理解THttp控件的使用方法,确实不错.但很少有人会用它作 ...

  7. Delphi 7 中使用IdUDPServer1和IdUDPClient1控件实现通信检测

    Delphi 7 中使用IdUDPServer1和IdUDPClient1控件实现通信,可是如何检测两台电脑已经连通了?代码怎么写啊?求大神 D7确实经典,但已经落伍了,用xe版本吧 udp发送这个东 ...

  8. Delphi 2009 的反射单元(ObjAuto):

    ObjAuto 单元应该算是对 TypInfo 单元的功能扩展吧? 它提供了 5 个方法: GetMethods.GetMethodInfo.CreateMethodPointer.ReleaseMe ...

  9. Delphi 2009发布

    Delphi 2009 于8月25日正式发布了,它是Embarcadero 收购CodeGear后的delphi新版本.官方称 Delphi 2009 是自 Delphi 3 以来最重要的一个版本,在 ...

最新文章

  1. 2019北京智源大会完整议程重磅揭晓!
  2. 《OpenStack 实战》内容概览与作者采访
  3. 描述符应用 -- 让python变成一个强类型的语言
  4. Android系统架构开篇
  5. [C/CPP系列知识] C++中extern “C” name mangling -- Name Mangling and extern “C” in C++
  6. python名称空间_python基础:名称空间与作用域
  7. Win Form不能响应键盘事件
  8. JAVA实现数学函数图像
  9. 省市区mysql一张表下载_2016全国省市区数据库
  10. 简述FAT32、exFAT、NTFS的区别
  11. PostScript文件
  12. mysql查询结果某个字段设置为固定值_MySQL使用select查询时,在查询结果中增加一个字段并指定固定值...
  13. nova7可以升级成鸿蒙20系统,华为nova7升级到EMUI11,8大功能提升,带来更新体验...
  14. 基于微信健身房私教预约小程序系统设计与实现 开题报告
  15. 【Linux编译器】
  16. eclipse写python怎么样_eclipse python 使用教程(怎么用eclipse写python)
  17. “淘宝” 开放平台接口设计思路
  18. java中 else if用法_java if else 用法
  19. 基于php的Sphinx以及coreseek的全文搜索,中文分词的使用(一)
  20. Qt笔记(四十一)之qtcreator添加pri文件

热门文章

  1. java 容器的嵌套_java界面设计里怎么实现容器嵌套
  2. 在Python中读取MATLAB的数据文件
  3. 第十六届全国大学生智能车竞赛组委会第三次扩大会议
  4. 第十六届全国大学生智能汽车竞赛-航天智慧物流创意组 线下选拔赛赛题发布!
  5. 关于无线节能组无线电能输出功率测量
  6. 第十六届全国大学生智能车竞赛创意组别-航天智慧物流
  7. 信号建模与参数估计作业重新计算
  8. linux脚本中sed -i,Linux 中常用的sed命令
  9. canva旋转图片 js_js和canvas实现旋转图片
  10. android将矩阵转换成字节数组,android-使用OpenGL矩阵转换将纹理从“ 1D”映...