我要把一个文件(图片文件等)的内容读入一个字符数组或生成一个widestring,请问该怎么做?可能的话最好能够给出示例代码。谢谢各位,解决就给分

解决方案 »

  1.   

    to zjqyb(风清扬*任它溺水三千,我只取一瓢饮*) :能够说的具体点么,在我创建了它的一个变量后该怎么把文件内容转为字符数组或widestring呢
      

  2.   

    TFileStream中有Read函数的,也可用ReadBuffer
      

  3.   

    你的问题可能没有说清楚,看我理解的对不
    假设文本文件有N行,(具体多少行自己用程序计算,很简单)将每行的数据分别存到一个数组
    var 
    fn :textfile;
    line :string;
    s :array[0..N-1] of integer;
    i :integer;
    procedure ....
    begin
    if opendialog1.excute then
    begin
     i :=0;
     assignfile(fn,opendialog1.filename);
     reset(fn);
     while not eof(fn) do
    begin
     readln(fn,line);
     s[i] :=line;
     i :=i+1;
    end;
    end;
    这样就将数据存到数组里了
      

  4.   

    procedure TForm1.Button3Click(Sender: TObject);
    var f1,f2:Tfilestream;
        arr:array[0..1024] of char;
    begin
       f1:=TFileStream.create('d:\tt.bmp',fmOpenRead);
       f2:=TFileStream.create('c:\tt.bmp',fmcreate);
       f1.Position:=0;
       f1.Readbuffer(arr,f1.Size); //读到数组
       f2.WriteBuffer(arr,f1.size);
       showmessage(arr);
       f1.free;
    end;
      

  5.   

    to : liangjun66(土豆)
    最后还应加上 
    CloseFile(fn);
      

  6.   

    to liangjun66(土豆) :不行啊,我要读的是图片文件或声音文件to qizhanfeng(glacier) :按你的方法怎么总是报错说流的读操作失败呢?
      

  7.   

    可以参考
    http://expert.csdn.net/Expert/topic/2865/2865765.xml?temp=.2777979
    同时请看相关问题
      

  8.   

    把它作为二进制文件读取,例如:
    procedure TForm1.Button1Click(Sender: TObject);
    var oFile: file;
        buf: array [1..2048] of Char;
        pStr: PChar;
        str: string;
        NumRead: integer;begin
      assignfile(oFile, fileName);
      str := '';
      try
        reset(oFile, 1);
        while not eof(oFile) do
        begin
          BlockRead(oFile, buf, SizeOf(buf), NumRead);
          pStr := @buf;
          str := str + Copy(String(pStr), 1, NumRead);
          Application.ProcessMessages;
        end;
      finally
        CloseFile(oFile);
      end;
    end;end.
      

  9.   

    to  woodsway(woodsway) :按你的代码,报了IO的错误:io error 6……
      

  10.   

    在JAVA里,我可以把一个图像文件读入一个byte[],然后放到xml里,然后接收端再读出这个byte[],另存为文件就OK了可现在我要用DELPHI实现客户端的读取图片文件并生成byte[]的功能,就没办法了            nowfile:= TFileStream.Create(value,fmOpenRead);
                nowfile2:= TFileStream.Create('e:\test.jpg',fmcreate);
                nowfile.Position:=0;
                nowfile.Read(arr,nowfile.Size); //读到数组
                nowfile2.Write(arr,nowfile.size);
                nowfile.Free;
                nowfile2.Free;这段代码可以把一个图片文件存入arr,然后转存到nowfile2指定的新文件里,但把他放入XML里后JAVA端接收却是0字节,不知道为什么 :(