<li id="j64py"><acronym id="j64py"></acronym></li>

  • <em id="j64py"></em>

    <em id="j64py"><acronym id="j64py"></acronym></em>
    <dd id="j64py"></dd>
    <em id="j64py"><acronym id="j64py"><input id="j64py"></input></acronym></em>
    <rp id="j64py"><object id="j64py"><blockquote id="j64py"></blockquote></object></rp>
    <button id="j64py"><acronym id="j64py"></acronym></button>
    捐助郴維網
    感謝您對郴維網的支持,你的支持將是郴維網持續發展的動力!
    二維碼
    ×
    當前位置:郴維網 >基礎知識 > 正文
    24 2020.03

    delphi 以指定編碼操作文本文件

    點擊次數:780 更新時間:2020-3-24 11:31:24  【打印此頁

      Windows文本文件支持4種編碼格式ANSI、Unicode、Unicode big endian、UFT-8;在操作文本文件時必須以正確的編碼格式打開,否則將會是亂碼。

     

    function WordLoHiExchange(w: word): word; register;
    asm
      XCHG AL, AH
    end;
    
    {
    取得文件編碼 返回值 TEncoding
    Windows文本文件支持4種格式:ANSI、Unicode、Unicode big endian、UFT-8
    ANSI: 無格式定義 $0000;
    Unicode: 前兩個字節為FFFE;
    Unicode big endian: 前兩字節為FEFF;
    UTF-8: 前兩字節為EFBB;
    }
    function GetFileEncodeing(const Filename: string): TEncoding;
    type
      TTextFormat = (tfAnsi, tfUnicode, tfBigEndianUnicode, tfUtf8);
    const
      TextFormatFlag: array [tfAnsi .. tfUtf8] of word = ($0000, $FFFE, $FEFF, $EFBB);
    var
      w: word;
    begin
      with TFileStream.Create(Filename, fmOpenRead or fmShareDenyNone) do
      begin
        try
          Seek(0, soFromBeginning);
          Read(w, 2);
          w := WordLoHiExchange(w); // 因為是以Word數據類型讀取,故高低字節互換
          if w = TextFormatFlag[tfUnicode] then
            Result := TEncoding.Unicode
          else if w = TextFormatFlag[tfBigEndianUnicode] then
            Result := TEncoding.BigEndianUnicode
          else if w = TextFormatFlag[tfUtf8] then
            Result := TEncoding.UTF8
          else
            Result := TEncoding.ANSI;
        finally
          Free;
        end;
      end;
    end;
    
    // 調用
    procedure TForm1.btn1Click(Sender: TObject);
    var
      Filename: string;
      Encoding: TEncoding;
    begin
      Filename := 'test.txt';
      Encoding := GetFileEncodeing(Filename);
      mmo1.Text := TFile.ReadAllText(Filename, Encoding); // TFile 引用 System.IOUtils
    end;
    Tips
    郴維網為您提供各類專業服務:
    軟件開發,電腦配件銷售,WIFI路由器銷售,上門電腦維修,上門安裝系統,系統安裝,軟、硬件安裝,電腦除塵清灰,顯示器維修,WIFI安裝調試,服務器維護,數據恢復,密碼破解,網絡布線,網絡檢修,打印機維修,打印機加碳粉,蘋果電腦安裝系統,蘋果電腦安裝雙系統,監控安裝維護,電腦外包,筆記本電腦維修,餐飲、美容行業軟件安裝 等。。。。。。
    點擊次數:780 更新時間:2020-3-24 11:31:24  【打印此頁
    關鍵詞推薦:郴州電腦城 郴州電腦維修公司 維修電腦公司 郴州軟件開發 上門電腦維修 上門安裝系統 筆記本電腦維修 郴州打印機維修 打印機加碳粉 電腦安裝雙系統 蘋果電腦雙系統 液晶顯示器維修 聯想筆記本維修 聯想筆記本維修電話 戴爾筆記本維修電話 郴州戴爾筆記本維修 戴爾筆記本郴州維修點 華碩筆記本維修點 郴州華碩筆記本維修 郴州筆記本上網維修
    亚洲成a人片77777,玩弄漂亮少妇高潮大叫,国产重口老太和小伙,两个黑人挺进校花体内np