zoukankan      html  css  js  c++  java
  • 用 Memo 读取 UniCode 编码的文本文件 回复 "ahgan" 的问题

    问题来源: http://www.cnblogs.com/del/archive/2008/05/29/1005631.html#1212654

    首先, 这个问题到 Delphi 2008 时, 可能就不存在了, 因为那时的 TStrings 肯定支持 UniCode; 当前版本是 2007.
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;
    
    type
      TForm1 = class(TForm)
        Memo1: TMemo;
        procedure FormCreate(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.FormCreate(Sender: TObject);
    var
      Stream: TMemoryStream;
      pwc: PWideChar;
    begin
      Stream := TMemoryStream.Create;
      Stream.LoadFromFile('c:\temp\UniCode.txt');
      pwc := Stream.Memory;
      //Inc(pwc);  {可能开始字节有个乱码, 这样可以去掉}
      Memo1.Lines.Text := pwc;
      Stream.Free;
    end;
    
    end.
    
    做成函数的形式:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Memo1: TMemo;
        procedure FormCreate(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    //打开 UniCode 格式的文本文件的函数:
    function LoadUniCodeTxt(f: string): AnsiString;
    var
      Stream: TMemoryStream;
      p: PWideChar;
    begin
      Result := '';
      if not FileExists(f) then Exit;
      Stream := TMemoryStream.Create;
      Stream.LoadFromFile(f);
      p := Stream.Memory;
      Inc(p);
      Result := p;
      Stream.Free;
    end;
    
    //调用测试:
    procedure TForm1.FormCreate(Sender: TObject);
    var
      str: string;
    begin
      str := LoadUniCodeTxt('c:\temp\UniCode.txt');
      Memo1.Clear;
      Memo1.Lines.Add(str);
    end;
    
    end.
    
  • 相关阅读:
    JDK API文档下载
    idea技巧:查看一个类的所有子类以及子类的子类并以层级关系显示
    Vue项目优化
    deepin 安装netcore 记录
    UOS 下的VScode 使用经验
    UOS操作系统磁盘空间不够一例
    SRPBatcher优化的原理
    我的UOS生活
    假如美国禁用了Unity3D和Unreal怎么办
    BGFX学习笔记01
  • 原文地址:https://www.cnblogs.com/del/p/1209887.html
Copyright © 2011-2022 走看看