zoukankan      html  css  js  c++  java
  • 关于 Delphi 中流的使用(4) 遍历读取流中的所有数据

    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:\temp\test.txt');
      strList.Free;
    end;
    
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      ms: TMemoryStream;
      c: Char;
      s1,s2: string;
    begin
      ms := TMemoryStream.Create;
      ms.LoadFromFile('c:\temp\test.txt'); {读入内存流}
    
      s1 := '';
      s2 := '';
      ms.Position := 0;                       {指针到开始}
      while ms.Position < ms.Size do          {循环读出; 应该写作 while ms.Read(c,1) > 0 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.
    
  • 相关阅读:
    code review
    自我封闭
    怎么验证?
    DRUPAL点滴
    CRLF CSRF XSS
    各种element/format 在manage display 下的选项
    html list <==> unformatted list
    ctrl + d 在phpstorm 和 eclipse 中的不同含义
    常量和变量的区别
    JSON和php里的数据序列化
  • 原文地址:https://www.cnblogs.com/del/p/1022239.html
Copyright © 2011-2022 走看看