精华内容
下载资源
问答
  • 判断月份文本文档.txt

    2021-06-23 16:31:08
    判断月份文本文档.txt
  • 在用Delphi 编程处理文本文件的时候,如果要装载的文件比较大,你可能会想在文件装载过程中提供一个装载进度的提示--那么你就必需自己编写直接通过文件打开/读取函数来装载文件内容的函数。
  • 这个判断程序并不会打开文件,只是通过ExtractFileExt函数来读取扩展名,在窗体上制作一个按钮,将按钮事件添加到该按钮中,当用户单击按钮选择指定文件后,立即获取扩展名信息并判断是否文本文件,以下为按钮事件...
  • Delphi 打开并判断文件是否是TXT文本文件,用户浏览打开一个文件,判断是否是TXT文件,若不是直接修改窗口标题文字进行提示:  if OpenDialog1.Execute then  begin  if UpperCase(ExtractFileExt(OpenDialog1....
  • 如何判断一个文件是否文本文件

    千次阅读 2007-05-07 15:56:00
    原理:循环读取文件中的每一个字节,如果存在字节为0的情况,那么该文件不是文本文件 例子程序: using System;namespace Test1...{ /**//**//**//// /
      
    

    原理:循环读取文件中的每一个字节,如果存在字节为0的情况,那么该文件不是文本文件

    例子程序:

    using  System;

    namespace  Test1
    {
        
    /**//// <summary>
        
    /// Summary description for Class1.
        
    /// </summary>

        class Class1
        
    {
            
    /**//// <summary>
            
    /// The main entry point for the application.
            
    /// </summary>

            [STAThread]
            
    static void Main(string[] args)
            
    {
                
    //
                
    // TODO: Add code to start application here
                
    //

                
    string path = @"C:Documents and Settingsspool shiDesktop im940_2.dat";
                
    if (new Class1().isTextFile(path))
                    Console.WriteLine(
    "True");
                
    else
                    Console.WriteLine(
    "False");
                
            }


            
    public bool isTextFile(string path)
            
    {
                
    if (System.IO.File.Exists(path))
                
    {
                    System.IO.FileStream file 
    = new System.IO.FileStream(path, 
                        System.IO.FileMode.Open, System.IO.FileAccess.Read);
                    
    byte[] byteData = new byte[1];
                    
    while(file.Read(byteData, 0, byteData.Length) > 0)
                    
    {
                        
    if (byteData[0== 0)
                            
    return false;
                    }

                    
    return true;
                }

                
    return false;
            }

        }

    }

    展开全文
  • 判断文本文件是否UTF-8编码

    千次阅读 2017-01-13 14:45:23
    utf-8编码的文本文档,有的带有BOM (Byte Order Mark, 字节序标志),即0xEF, 0xBB,0xBF,有的没有。

      utf-8编码的文本文档,有的带有BOM (Byte Order Mark, 字节序标志),即0xEF, 0xBB,0xBF,有的没有。用Windows的notepad编辑的文本保存是会自动添加BOM,我们常用UE编辑器在保存utf-8编码的时候也会自动添加BOM,Notepad++默认设置中保存utf-8编码时是无BOM的。其它文本编辑器就没有尝试过,有兴趣的可以自己试试。
      utf-8是一种多字节编码的字符集,表示一个Unicode字符时,它可以是1个至多个字节。即在文本全部是ASCII字符时utf-8是和ASCII一致的(utf-8向下兼容ASCII)。utf-8字节流如下所示:

    1字节:0xxxxxxx
    2字节:110xxxxx 10xxxxxx
    3字节:1110xxxx 10xxxxxx 10xxxxxx

      按照utf-8编码规则进行验证,例如:
      第一个字符的第一个字节的第一个bit为0,说明是个ANSII字符。继续查看第二个字符,若第一个比特是1,则查看第二个比特,若第二个比特为1,如果不为1说明这不是一个utf-8编码的文本。如果第二个比特为1,则查看第三个比特为0,不为0则说明不是utf-8编码,如果是0则说明该字符肯能是2字节的utf-8。查看该字符的第二个字节,如果前两个比特符合10则说明这是一个utf-8编码的字符。依次类推,若一旦有一个bit不满足UTF-8编码要求,就判定文本为ANSI(GBK),若直到文本结束都符合utf-8编码规则,则说明文本是UTF-8编码的。
      由上述描述可知字符的第一个字节如果介于0x80与0xC0之间或大于0xF0则不符合utf-8的编码规则,可直接判断不是utf-8编码的文本。如果第一个字节符合utf-8规则且小于0xC0则判断第二个字节,如果第二个字节和0xC0做与操作结果不是0x80则可判断不是utf-8编码的文本。依次类推,如果第一个字节介于0xE0、0xF0之间,且第二个字节符合规则,第三个字节与第二个字节做同样判断,如果符合规则则该字符是utf-8字符,判断下一个字符直到文本结束。具体的代码实现如下所示,这里列了Delphi及C/C++的两种语言的实现结果:

    Delphi:

    function IsUtf8Format(buffer: PChar; size: Int64): Boolean;
    var
      ii: Integer;
      tmp: Byte;
    begin
      Result := True;
      ii := 0;
      while ii < size do
      begin
        tmp := Byte(buffer[ii]);
        if tmp < $80 then        //值小于0x80的为ASCII字符 
          Inc(ii)
        else if tmp < $C0 then   //值介于0x80与0xC0之间的为无效UTF-8字符
        begin
          Result := False;
          Break;
        end
        else if tmp < $E0 then   //此范围内为2字节UTF-8字符
        begin
          if ii >= size - 1 then
            Break;
          if (Byte(buffer[ii + 1]) and $C0) <> $80 then
          begin
            Result := False;
            Break;
          end;
          Inc(ii, 2);
        end
        else if tmp < $F0 then  //此范围内为3字节UTF-8字符
        begin
          if ii >= size - 2 then
            Break;
          if ((Byte(buffer[ii + 1]) and $C0) <> $80) or ((Byte(buffer[ii + 2]) and $C0) <> $80) then
          begin
            Result := False;
            Break;
          end;
          Inc(ii, 3);
        end
        else
        begin
          Result := False;
          Break;
        end; 
      end;
    end;
    
    function IsUtf8File(fStream: TFileStream): string;
    var
      fStream: TFileStream;
      context: string;
    begin
      fStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
      try
        SetLength(context, fStream.Size);
        fStream.Read(context[1], fStream.Size);
        if isUtf8Format(PChar(context), fStream.Size) then
          showMessage('是utf-8编码');
        else
          showMessage('其它编码');
      finally
        fStream.Free;
      end;
    end;

    C/C++

    function IsUtf8Format(buffer: PChar; size: Int64): Boolean;
    var
      ii: Integer;
      tmp: Byte;
    begin
      Result := True;
      ii := 0;
      while ii < size do
      begin
        tmp := Byte(buffer[ii]);
        if tmp < $80 then        //值小于0x80的为ASCII字符 
          Inc(ii)
        else if tmp < $C0 then   //值介于0x80与0xC0之间的为无效UTF-8字符
        begin
          Result := False;
          Break;
        end
        else if tmp < $E0 then   //此范围内为2字节UTF-8字符
        begin
          if ii >= size - 1 then
            Break;
          if (Byte(buffer[ii + 1]) and $C0) <> $80 then
          begin
            Result := False;
            Break;
          end;
          Inc(ii, 2);
        end
        else if tmp < $F0 then  //此范围内为3字节UTF-8字符
        begin
          if ii >= size - 2 then
            Break;
          if ((Byte(buffer[ii + 1]) and $C0) <> $80) or ((Byte(buffer[ii + 2]) and $C0) <> $80) then
          begin
            Result := False;
            Break;
          end;
          Inc(ii, 3);
        end
        else
        begin
          Result := False;
          Break;
        end; 
      end;
    end;
    
    function Utf8StrToAnsi(fStream: TFileStream): string;
    var
      headerStr, context:string;
    begin
      fStream.Position := 0;
      SetLength(HeaderStr, 3);
      fStream.Read(HeaderStr[1], 3);
      if HeaderStr = #$EF#$BB#$BF then
      begin
        SetLength(context, fStream.Size - 3);
        fStream.Read(context[1], fStream.Size - 3);
      end
      else
      begin
        fStream.Position := 0;
        SetLength(context, fStream.Size);
        fStream.Read(context[1], fStream.Size);
      end;
      Result := Utf8ToAnsi(context);
    end;

    本文参考资料:
      文本utf-8编码判断C/C++源码及utf-8编码解释
      utf-8编码规则解释

    展开全文
  • 判断给定缓冲区是否可能是UTF-8编码。windows7旗舰版notepad.exe代码。 andyup
  • [Python]判断文本文件是否含有二进制数据 问题描述 处理文本文件时,按行读取文件中1的内容,采用如下的读取代码,遇到文本中存在二进制数据时是会保持的,需要采用二进制的读模式。 def process_data(line_data):...

    问题描述

    处理文本文件时,按行读取文件中1的内容,采用如下的读取代码,遇到文本中存在二进制数据时是会保持的,需要采用二进制的读模式。

    def process_data(line_data):
    	print(line_data)
    
    with open("data.txt", mode="r") as f:
        for line_data in f:
            process_data(line_data)
    

    正常处理的1数据都是按照文本文件一行一行处理的,碰到这种情况,我采用了简单粗暴的处理方式,在上位机软件上直接丢出二进制数据,不处理此类数据 。文件处理之前,需要对整个文件内容进行扫描,判断是否含有二进制的数据,根据数据的情况,只要扫描到数据值大于127,将此文件判定为二进制文件。

    size = 10240
    max_value = 0
    with open("data.txt", mode="rb") as f:
        part_data = f.read(size)
        max_value = max(part_data)
        while part_data:
            if max_value > 127:
                print("不支持含有二进制数据的文件!")
                exit(0)
             else:
            	part_data = f.read(size)
            
    
    展开全文
  • 今天小编就为大家分享一篇关于Python判断两个文件是否相同与两个文本进行相同项筛选的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • 依次读出文件中的字节,如果存在'/0'则是二进制文件, 否则为ASCII文本文件
  • 资源介绍:判断给定缓冲区是否可能是UTF-8编码。windows7旗舰版notepad.exe代码。资源作者:andyup资源界面:资源下载:
  • 识别文本文件编码的C#源码
  • 引用命名空间 usingSystem.IO;...1、判断文本文件是否存在,不存在则创建文件 if (! File.Exists(C:\Users\Administrator\123\1.txt)) // 返回bool类型,存在返回true,不存在返回false { ...

    引用命名空间

    using System.IO;

    1、判断文本文件是否存在,不存在则创建文件

     if (! File.Exists(C:\Users\Administrator\123\1.txt))        // 返回bool类型,存在返回true,不存在返回false                                     
                {
                     File.Create(C:\Users\Administrator\123\1.txt);         //不存在则创建文件
                }

    自用做笔记,不喜勿喷!!!!

    展开全文
  • 最近项目中要用到这个功能,于是在按钮中添加了几句代码,这只是一部分,所以没写出函数名和返回值,实现功能即可: CString my_SaveFilePath;...//在指定路径下新建文档,命名为“8-1” CDataExport::Expor...
  • 如果很多时候我们没有约定好文件格式,我们就难以读取文件内容,此时,我们就需要一个工具来探测所读文本的编码格式,此工具可以允许用户读取诸如utf-8,gbk,gb2312一类的文件格式。内置了一些常用的探测实现类,...
  • 对于一些文本展示类需求,经常会要求设置最大展示行数(maxLines),当文本长度大于要展示的最大内容时出现省略号,同时根据是否出现省略...这个时候就需要判断文本是否已经溢出最大展示量,下面提供自己的一种实现方法。
  • java判断文本文件编码格式

    万次阅读 2019-08-06 09:32:00
    上篇文章需要读取当前java或者配置文件的编码... * 判断文件的编码格式 * @param fileName :file * @return 文件编码格式 * @throws Exception */ public static String codeString(File fileName) thro...
  • 判断中文文本是否为utf8编码类型的JavaScript实现原理参考资料Github 原理 常用汉字的unicode编码范围为4E00-9FA5,此范围被包含于UTF-8 3字节编码范围内。 故若文本由UTF-8编码时,一个汉字将由三个字节组成。 而这...
  • java中关于判断文本文件读到文件尾

    万次阅读 2017-02-16 11:38:07
    使用Scanner类判断Scanner类中有不少可以查看文件是否结束的方法,比如下面的代码使用的是hasNextLine方法package com.li;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util...
  • 这里指的文本是用于Windows系统中的扩展名为.txt的文件。 Notepad(记事本)只支持四种格式:ANSI/Unicode/Unicode big endian/UFT-8,在Delphi中如何判断与读取这些不同格式的文本呢? 首先,不同编码的文本,是...
  • VC++ 判断文本文件是否UTF-8编码

    千次阅读 2009-08-08 17:09:00
    cout “打开文件” “出错” ; //exit(-1); } else { byte bytes[3]; fin.read((char *)&bytes,sizeof bytes); if(bytes[0] == 0xEF&& bytes[1] == 0xBB && bytes[2] == 0xBF) { cout ”UTF8″; ...
  •   判断一个文件是文本文件还是二进制文件可以帮助压缩软件针对不同文件选择对应的算法,那么如何判断一个文件是是文本还是二进制呢? 旧版本的pkzip使用的方法是:如果80%以上的字节都落在7..127的...
  • 编程判断输入的正整数a是否既是5又是7的整倍数.若是
  • 如何判断文本文件编码

    千次阅读 2006-12-07 14:48:00
    如何判断文本文件编码 根据不同编码的特点和标志,对一个文本文件判断编码方法如下1 . UTF7 所有字节的内容不会大于127,也就是不大于&HFF2 . UTF8 起始三个字节为"EF BB BF"3 . UTF16BigEndian 起始三个...
  • 文本文件的编码方式判断

    千次阅读 2013-08-22 00:28:04
    11. 如何判断一个文本文件是ANSI还是Unicode? 判断如果文本文件的开头两个字节是0xFF和0xFE,那么就是Unicode,否则是ANSI。 12. 如何判断一段字符串是ANSI还是Unicode? 用IsTextUnicode进行判断。...
  • 1、判断路径是否存在 if (! Directory.Exists(C:\Users\Administrator\123)) // 返回bool类型,存在返回true,不存在返回false { Directory.CreateDirectory(C:\Users\Administrator\123); ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 432,956
精华内容 173,182
关键字:

如何判断是否文本文件