Delphi 用文件流读取文本文件字符串的方法

procedure TForm23.Button4Click(Sender: TObject);
var
pstr:Pchar;
mestr,Str1:string;
FS:TFilestream;
meint,PoStr,I,LenStr:integer;
Fpos:Int64;
TT,IsDay:Boolean;
Liststr:TStringList;
begin
  if not Self.OpenDialog1.Execute then Exit;
  FS:=TFileStream.Create(Self.OpenDialog1.FileName,fmOpenRead);
  meint:=1024;
  getmem(pstr,meint);//申请字符指针内存
  TT :=False;
  I:=0;
  Liststr :=TStringList.Create;
  try
    while not TT do
    begin
      Fpos:=I*meint;
      FS.Position:=Fpos;
      fs.Readbuffer(pstr^,meint);
      if True then

      mestr:=pstr;
      SetLength(mestr,meint);
      Liststr.Text:=mestr;
      if i=0 then Self.Memo1.Text:=Liststr.Text;
      Self.Edit1.Text :=IntToStr(Liststr.Count);
      i:=i+1;
      if i>2 then TT :=True;
    end;
  finally
    freemem(Pstr);//释放内存
    FS.Free;//释放流
    Liststr.Free;
  end;
end;
时间: 2024-09-30 08:18:34

Delphi 用文件流读取文本文件字符串的方法的相关文章

使用字符流读取文本文件

1.字符输入流Reader类 Reader类是读取字符流的抽象类,它提供了常用的方法. Reader rd= new FileReader("Test/xy.txt");// int b=rd.read(); //从输入流中读取单个字符// System.out.println((char)b); char[] chars = new char[10]; //从输入流中读取chars.length长度的字符 int length = rd.read(chars);   System.o

通过IO文件流读取 修改build.prop配置文件

原始配置文件build.prop 如下图: 我们主要修改红色框框中的属性值 ro.product.model ro.product.brand ro.product.board ro.product.manufacturer 写一段测试程序:如下: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import jav

合并流以及已知文件流长度和未知文件长度的文件流读取方法

项目中有一个这样的需求,上传文件的时候需要多张文件一起上传,而且每张文件都有自己的文件信息,因为文件信息需要匹配验证,在处理过程中需要传输流的时候前半段固定长度为文件信息,后半段是文件流,而且还是多张批量的情况,经过不断摸索最终想出一个方案:那就是采用合并流,示意图如下: 批次信息[256]+文件信息流1[1024]+文件流1+文件信息流2[1024]+文件流2+文件信息流3[1024]+文件流3--. 前面256是固定长度的一个流,里面是文件数量等信息,文件批量上传的时候就可以根据文件数量来循

Delphi中文件流的使用方法

在Delphi中,所有流对象的基类为TStream类, 其中定义了所有流的共同属性和方法.TStream类中定义的属性介绍如下: 1.Size: 此属性以字节返回流中数据大小. 2.Position: 此属性控制流中存取指针的位置. Tstream中定义的虚方法有四个:1.Read:此方法实现将数据从流中读出.函数原形为:Function Read(var Buffer;Count:Longint):Longint;virtual;abstract;参数Buffer为数据读出时放置的缓冲区,Co

使用jQuery文件流读取文件

1 if (FileReader) { 2 var reader = new FileReader(), file = this.files[0]; 3 reader.onload = function (e) { 4 $("#userImage").attr("src", e.target.result); 5 $("#smallImg").attr("src", e.target.result); 6 }; 7 reade

Jsoup学习笔记9:Jsoup 解析saz文件,读取其中的htm文件到字符串,提取字符串中的数据写入csv文件中

本篇笔记将上篇笔记的操作做些改进,不再把saz文件中的htm文件解析出来,而是不解压直接读取其中的数据成字符串,基本思路如下: 1.自定义一个从文本文件读取内容到字符串的类:解析saz文件中的htm文档,将文件的内容读取到字符串中 2.自定义利用Jsoup解析htm字符串的类:利用Jsoup解析传入的htm字符串,将解析结果写入csv文件中 3.解析时,指定好文件路径,直接调用上面的两个工具类即可 示例代码如下: package com.daxiang.saztest; /** * 自定义一个从

FileStream文件流的读取和写入(为以后聊天工具的设计基础)

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 文件流 { class Program { static void Main(string[] args) { FileStream fsread = new FileStream(@"C:\Users\shuai

summit 涉及文件读取和字符串的诡异问题

[问题描述] 在调试代码的时候,发现有一个从ini文件中读取的字符串总是解析出问题,在字符串末尾多出了一个奇怪的符号. [解决方法] 经验证发现,原来是从windows下copy过来的config.ini文件没有转换成unix格式,导致每一行末尾都有一个奇怪的字符, 使用dos2unix将该配置文件转换格式后,解决. [备忘] 凡是从windows下copy到linux系统的文件,最好都确认一下,文件中是否有特殊字符,并使用dos2unix进行转换.

C# IO操作(四)大文件拷贝(文件流的使用)、文件编码

     大文件拷贝(文件流的使用).文件编码 首先说一下大文件拷贝和文件流,因为计算机的内存资源是有限的,面对几个G甚至更大的文件,需要通过程序来完成拷贝,就需要用到文件流(因为我们无法做到把文件一次性加载到内存中:事实上,内存也不允许这么干),所以在C#中出现了内存流这个东西.先看下面的内容,File类中的常用读取文件方法会将文件内容一次性全部加载到内存中: 1 string sPath = @"C:\Users\Chens-PC\Desktop\Nginx.txt"; 2 //F