有一采用GB 13000的UCS-2进行存储的WZ.TXT文件,以下是VB读取部分代码:
    Dim tmp1 As Byte
    Dim tmp2 As Byte
    Dim rddata As String
    
    Open strFilePath & "\wz.txt" For Binary As #1
        Do While Not EOF(1)   ' 检查文件尾。
            Get #1, , tmp1
            Get #1, , tmp2
    
            rddata = rddata + ChrW(tmp2 * CLng(256) + tmp1)
        Loop
    Close #1请翻译为DELPHI,谢谢!

解决方案 »

  1.   

    var fs:TFileStream;
    tmp1, tmp2:byte;
    n :Integer;
    s :WideString;fs := TFileStream.Create('wz.txt');
    fs.read(tmp1,1);
    fs.read(tmp2,1);
    n := tmp2;
    n := n*256+tmp1;
    s := s + WideChar(n);
      

  2.   

    var
      fs:TFileStream;
      r:String;
      b1,b2:Byte;
    begin
      fs := TFileStream.Create('hello.txt',0);
      r := '';
      while fs.Read(b1, sizeof(byte))>0 do
      begin
        fs.Read(b2, sizeof(byte));
        r:= r+ chr(b2)+chr(b1);
      end;
      fs.Free;
      ShowMessage(r);
    end;
      

  3.   

     var
       tmp1,tmp2:byte;
       rddata:string;
       tf:textfile;
    begin
      assignfile(tf,strFilePath+'\wz.txt');
       if not eof(tf) then 
          Reset(tf);
          readln(tf,tmp1);
          readln(tf,tmp2);
          rddata=rddata+WideChar(tmp2 * CLng(256)没有对应函数 + tmp1) ;
          CloseFile(tf);
    end;
      

  4.   

    就是一个流文件读取的
    CLng(256)没有对应函数
    可以变量替换,n=n*256+其他的值