请大家在自己的机器上面运行下面的代码,看看有什么发现:[:D]
procedure TForm1.Button1Click(Sender: TObject);
var
  F:textfile;
begin
  AssignFile(F,'C:\test1.txt');
  Rewrite(F);
  Write(F,'联通');
  CloseFile(F);
  WinExec('notepad C:\test1.txt',SW_SHOW);
end;procedure TForm1.Button2Click(Sender: TObject);
var
  F:textfile;
begin
  AssignFile(F,'C:\test2.txt');
  Rewrite(F);
  Write(F,'中国联通');
  CloseFile(F);
  WinExec('notepad C:\test2.txt',SW_SHOW);
end;上面的代码,Button1的在很多机器上面不能够正常写入文件,Button2可以正常写入文件。
测试的机器超过5台以上!测试的操作系统包括英文Winxp Prof,英文Windows2000 Prof,中文Winxp Prof,中文Windows2000 Prof甚至你利用API也不能正常写入。
估计微软和“联通”有仇。看看大家有什么意见?请大家测试上面的代码,然后贴出你们的结果。

解决方案 »

  1.   

    中文Windows2000 Prof
    Button1不正常
    Button2正常
      

  2.   

    中文Windows2000 Server
    Button1不正常
    Button2正常Button1改成“电信”后正常,
    结论:跟电信无仇。
      

  3.   

    联通->通联     也有问题。
    联通->aaa联通  也有问题。
    联通->联aaa通  也有问题。
      

  4.   

    估计是nodepad的BUG,因为用其它工具如EditPlus或UltraEdit打开是正确的。“联通”这两个字都有问题,分开写入时,“联”用nodepad打开为空,“通”用nodepad打开为“ͨ”不知道还有没有其它汉字有这种问题。
      

  5.   

    倒,上面说的“ͨ”在nodepad里是一个方块。
      

  6.   

    进一步发现:不管声调是什么,音标为 lian 的都为空,音标为 tong 的都是一个方块。
      

  7.   

    我的在UltraEdit中也不正常,Button1写入后的HEX代码是:
    FF FE 6A 00 68 03
    Button2的HEX代码是:
    D6 D0 B9 FA C1 AA CD A8
      

  8.   

    这个好使。
    procedure TForm1.Button1Click(Sender: TObject);
    var
      F:textfile;
    begin
      AssignFile(F,'C:\test1.txt');
      Rewrite(F);
      Write(F,'联通');
      CloseFile(F);
      WinExec('wirte C:\test1.txt',SW_SHOW);
    end;
      

  9.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      F:textfile;
    begin
      AssignFile(F,'C:\test1.txt');
      Rewrite(F);
      Write(F,'lian tong');
      CloseFile(F);
      WinExec('notepad C:\test1.txt',SW_SHOW);
    end;
    这样没错!!!^_^
    为什么????
      

  10.   

    各位不要纠缠在Notepad和Write这些上面,考虑深层原因
      

  11.   

    对的,我想只是个bug。在wordpad中打开正常。由于Win2000下的notepad是支持unicode的,但是处理上有些问题才会出现这种情况的,可能把中文字符误认为是unicode的标识符。
    我的win2000在安装pack之前连输入下列内容保存后再打开都会产生乱码的
    ab bmp ab.bmp
    只输入上面一行文字,保存再打开就是乱码,但是用wordpad打开就是正常的。
    没有安装pack的朋友可以试一下:)
      

  12.   

    补充一句,上面的程序在win9x下运行正常,可能是由于win9x的notepad不支持unicode的原因吧
      

  13.   

    结论:Notepad打开ANSI文件存在BUG,和其它东西无关
      

  14.   

    记事本的bug。。我用记事本输入 “联通” 保存 然后再 打开 就不好使了98没问题,
      

  15.   

    Ultraedit有BUG,Button1的文件用其他的二进制编辑软件打开,没有问题,发现ASCII码没有问题。
    记事本也有BUG。写入文件正常。
      

  16.   

    bug  联通 通联 因该是内码的问题
      

  17.   

    // 没仇 ; 不过 NotePad 有 Bug procedure TForm1.Button1Click(Sender: TObject);
    var
      F:textfile;
    begin
      AssignFile(F,'C:\test2.doc');
      Rewrite(F);
      Write(F,'联通');
      Write(F,'Lian Tong') ;
      CloseFile(F);
      WinExec('wirte C:\test2.doc',SW_SHOW);
    end;
    procedure TForm1.Button2Click(Sender: TObject);
    var
      F:textfile;
    begin
      AssignFile(F,'C:\test2.doc');
      Rewrite(F);
      Write(F,'联通');
      Write(F,'Lian Tong') ;
      CloseFile(F);
      WinExec('NotePad C:\test2.doc',SW_SHOW);
    end;
      

  18.   

    // NotePad 的确有 Bug ,对一个Write()单元如果为两个字且拼音码为 'Lian tong'的文本有 Bugprocedure TForm1.Button3Click(Sender: TObject);
    var
      F:textfile;
    begin
      AssignFile(F,'C:\test1.txt');
      Rewrite(F);
      Write(F,'联通' + #13#10) ;
      Write(F,'lian tong' + #13#10);
      Write(F,'连同' + #13#10) ;
      Write(F,'中国' + #13#10) ; // 如果没有这一句,不能正常显示 
      // Write(F,'Lian腾' + #13#10) ; //上句换为这句, Right
      CloseFile(F);
      WinExec('notepad C:\test1.txt',SW_SHOW);
    end ;
      

  19.   

    结论:Notepad打开ANSI文件存在BUG,和其它东西无关