查看: 307|回复: 1
打印 上一主题 下一主题

遍历读取流中的所有数据

[复制链接] qrcode

31

主题

34

帖子

103

积分

注册会员

Rank: 2

积分
103
楼主
跳转到指定楼层
发表于 2016-2-29 09:42 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls; type   TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo; {需要添加两个 Memo 用于显示}     Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  end; var   Form1: TForm1; implementation {$R *.dfm} //先制造一个测试文件 procedure TForm1.FormCreate(Sender: TObject); var   strList: TStringList; begin   strList := TStringList.Create;
  strList.Add(\'ABCDEFGHIJKLMNOPQRSTUVWXYZ\');
  strList.SaveToFile(\'c:temptest.txt\');
  strList.Free; end; procedure TForm1.Button1Click(Sender: TObject); var   ms: TMemoryStream;
  c: Char;
  s1,s2: string; begin   ms := TMemoryStream.Create;
  ms.LoadFromFile(\'c:temptest.txt\'); {读入内存流}   s1 := \'\';
  s2 := \'\';
  ms.Position := 0;                      {指针到开始}   while ms.Position < ms.Size do          {循环读出}   begin     ms.Read(c,1);                        {每读出一个字节, 指针会自动移到新的位置}     s1 := s1 + c + \' \';                  {用文本记录}     s2 := s2 + IntToHex(Byte(c),2) + \' \'; {用两位数的十六进制记录}   end;

  Memo1.Lines.Text := s1;
  Memo2.Lines.Text := s2;

  {Memo1 会显示: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z }   {Memo2 会显示: 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 0D 0A}   ms.Free; end; end.
回复

使用道具 举报

0

主题

71

帖子

18

积分

新手上路

Rank: 1

积分
18
沙发
发表于 2016-2-29 09:44 PM | 只看该作者
楼主辛苦……感谢分享…….
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表