如何读取这个文件内的文本?该文件1048591.vmg是若基亚手机的短信文件,因为想把短信存到Access里,所以要读取文件内容。这个文件里的文本有点怪,用Windows的记事本打开是[文件.rar]未命名2.jpg的样子,短信里的中文信息打开全是乱码,我在IDE里跟踪发现短信里的英文信息在每个字符中间有个#0,而那段中文信息则是一段乱码(中间也有#0);但如果用[文件.rar]notepad.exe打开这个文件就一切正常,打开后没有乱码的情况,也就排除了信息加密的情况。问题的关键就是解决乱码问题,还请各位高手帮帮忙……([文件.rar]中有1048591.vmg短信文件)附件发到(盒子)里了http://bbs.2ccc.com/topic.asp?topicid=230648
FileName='......\1048591.vmg';
var
Stm:TFileStream;
Buf:PChar;
Ch1,Ch2:Char;
WC:WideChar;
P:PChar;
i:Integer;
ws:WideString;
Len:integer;
begin
stm:=TFileStream.Create(FileName,fmOpenRead);
try
Len:=Stm.Size;
GetMem(Buf,Len);
try
Stm.Read(Buf^,Len); ws:='';
i:=0;
P:=Pointer(@WC);
while i<Len do
begin
Ch1:=Buf[i];
Ch2:=Buf[i+1];
//如果是英文,后面跟空格
if Ch2=#$20 then
begin
P[0]:=Ch1;
P[1]:=#0;
end
else
begin
P[0]:=Ch1;
P[1]:=Ch2;
end; ws:=ws+WC;
Inc(i,2);
end;
finally
FreeMem(Buf);
end;
finally
Stm.Free;
end;
ShowMessage(ws);
end;