首页 > 其他分享 >关于 Delphi 中流的使用 遍历读取流中的所有数据

关于 Delphi 中流的使用 遍历读取流中的所有数据

时间:2023-05-13 09:00:23浏览次数:34  
标签:遍历 end Sender s2 Delphi 流中 ms strList s1

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.

标签:遍历,end,Sender,s2,Delphi,流中,ms,strList,s1
From: https://www.cnblogs.com/lucken2000/p/17396730.html

相关文章

  • delphi StyleControl中DB控件的使用说明
    这两天听大佬说"可视化绑定"的效率很低,再加对下拉菜单,单选,复选框等控件绑定操作的未知,于是我决定把普通组件,改为DB组件. 正常来讲,基本上所有DB组件只要设置好了数据源和字段绑定,就能显示数据来, 但是我这边就出现了一点意外,源于对sqlite数据库认知度不够的原因......
  • Delphi 字符串拆分/分割[1] - TStringList
    1、TStringList默认以','拆分字符onstconstr:String='aaa,bbb,ccc,ddd';varstrs:TStrings;i:Integer;beginstrs:=TStringList.Create;strs.CommaText:=constr;fori:=0toStrs.Count-1doShowMessage(Strs[i]);//aaabbbcccd......
  • delphi模板引擎
    programExample;usesSempare.Template;typeTInformation=recordname:string;favourite_sport:string;count:integer;end;beginvartpl:=Template.Parse('Mynameis<%name%>.'#13#10+'Myfavouritesportis<%......
  • Delphi中使用ADO连接Excel
    第一部分: 1.设置ADOConnection的ConnectionString属性的OLEDB的提供者要选择MicrosoftJet4.0OLEDBProvider(这本来是用于连接Access数据库的驱动程序,但也可打开Excel文件),按"下一步"按钮2.选择数据库名称。注意:Excel的扩展名是*.xls,而默认文件类型是MicrosoftAcce......
  • Golang for循环遍历小坑
    一、for循环循环:让程序多次执行相同的代码块for循环是Go语言中唯一一个循环结构for循环经典语法先执行表达式1执行表达式2判断是否成立,如果成立执行循环体循环体执行完成后,执行表达式3再次执行表达式2,判断是否成立.for循环用的最多的地方就是遍历数组或切片等for表达式1......
  • freemarker在xml文件中遍历list数据
    delete   frompub_channelpackage   wherechannelcode=:channelcode   andchanneltype=:channeltype   <#ifpackids?exists&&packids??>    andpackidin(         <#listpackidsaspackageId>     ${packageId}<#ifpackageId_has_n......
  • Delphi 检测密码强度 规则(仿 google)
    一、密码长度:5分:小于等于4个字符10分:5到7字符25分:大于等于8个字符二、字母:0分:没有字母10分:全都是小(大)写字母20分:大小写混合字母三、数字:0分:没有数字10分:1个数字20分:大于等于3个数字四、符号:0分:没有符号10分:1......
  • 遍历文件
    importjava.io.File;publicclassFileTraversal{publicstaticvoidmain(String[]args){//要遍历的文件路径StringfilePath="C:\\Users\\username\\Documents";//创建File对象,代表要遍历的目录或文件Filefile=newFile(filePath);/......
  • delphi 遍历枚举、获取枚举值的名称
    遍历枚举、获取枚举值的名称代码遍历枚举usesSystem.TypInfo;procedureTForm1.Button1Click(Sender:TObject);varI:TAlign;beginforI:=Low(TAlign)toHigh(TAlign)dobeginMemo1.Lines.Add('名称'+GetEnumName(TypeInfo(TAlign),Ord(I))+'值......
  • delphi执行外部程序并等待结束返回响应
    //写成函数需要引用ShellAPI单元;functionExecuteFileWait(ExecuteFile:string):Integer;//实现执行外部程序,并等待程序结束的函数,返回值为1varSEInfo:TShellExecuteInfo;ExitCode:DWORD;ParamString,StartInString:string;beginFillChar(SEInfo,S......