精华内容
下载资源
问答
  • 如何判断一个文件是否文本文件

    千次阅读 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;
            }

        }

    }

    展开全文
  • 检测策略 如果2个字节是0xFF 0xFE,则以Unicode(LE)的方式读取 如果2个字节是0xFE 0xFF,则以...判断是否符合UTF-8的编码规范,如果符合就以UTF-8的方式进行读取 如果以上都不是,则以ANSI的方式进行读取。 代码...

    检测策略

    1. 如果2个字节是0xFF 0xFE,则以Unicode(LE)的方式读取
    2. 如果2个字节是0xFE 0xFF,则以Unicode BE的方式读取
    3. 如果前2个字节是0xEF 0xBB,那么判断第3个字节是不是0xBF,如果是的话就以UTF-8的方式进行读取。
    4. 判断是否符合UTF-8的编码规范,如果符合就以UTF-8的方式进行读取
    5. 如果以上都不是,则以ANSI的方式进行读取。

    代码实现

    首先,首先一个enum class作为检测的返回值

    enum class Encode { ANSI = 1, UNICODE_LE, UNICODE_BE, UTF8, UTF8_NOBOM };

    然后我们可以根据上面总结的规律进行判断。

    Encode DetectEncode(const PBYTE pBuffer, long length)
    {
        if (pBuffer[0] == 0xFF && pBuffer[1] == 0xFE)
        {
            return Encode::UNICODE_LE;
        }
        else if (pBuffer[0] == 0xFE && pBuffer[1] == 0xFF)
        {
            return Encode::UNICODE_BE;
        }
        else if (pBuffer[0] == 0xEF && pBuffer[1] == 0xBB && pBuffer[2] == 0xBF)
        {
            return Encode::UTF8;
        }
        else if (CheckUnicodeWithoutBOM(pBuffer, length))
        {
            return Encode::UTF8_NOBOM;
        }
        else
        {
            return Encode::ANSI;
        }
    }

    下面附上如何检测UTF-8 without BOM的代码实现。

    BOOL CheckUnicodeWithoutBOM(const PBYTE pText, long length)
    {
        int i;
        DWORD nBytes = 0;
        UCHAR chr;
    
        BOOL bAllAscii = TRUE;
        for (i = 0; i < length; i++)
        {
            chr = *(pText + i);
            if ((chr & 0x80) != 0)
                bAllAscii = FALSE;
            if (nBytes == 0)
            {
                if (chr >= 0x80)
                {
                    if (chr >= 0xFC && chr <= 0xFD)
                        nBytes = 6;
                    else if (chr >= 0xF8)
                        nBytes = 5;
                    else if (chr >= 0xF0)
                        nBytes = 4;
                    else if (chr >= 0xE0)
                        nBytes = 3;
                    else if (chr >= 0xC0)
                        nBytes = 2;
                    else
                    {
                        return FALSE;
                    }
                    nBytes--;
                }
            }
            else
            {
                if ((chr & 0xC0) != 0x80)
                {
                    return FALSE;
                }
                nBytes--;
            }
        }
        if (nBytes > 0)
        {
            return FALSE;
        }
        if (bAllAscii)
        {
            return FALSE;
        }
        return TRUE;
    }

    参考资料

    1. The Notepad encoding detection issues keep coming up
    2. 简析Windows Notepad里可选的字符编码
    3. 字符编码笔记:ASCII,Unicode和UTF-8
    4. 字符集和字符编码(Charset & Encoding)
    5. Some code to detect charset (for XML, in Java)
    6. How can I detect the encoding/codepage of a text file

    转载于:https://www.cnblogs.com/lkpp/p/encoding_detection.html

    展开全文
  • 我估计下面这个这个函数(IsTextUnicode )把iUniTest里面的数据改了, 要是不改的话那不管文件开头是正还是反,下面的这个IF语言都成立, 也就都要把存储的东西全部翻转一遍,有没知道的,告诉 我是不是这个函数把...
  • 一个别人的程序往文本里写数据,我希望该程序写完之后,立刻读这个文本如何判断这个文本何时被释放?怎么实现等待文本释放然后再读取的功能?谢谢大家!
  • 如何在脚本中判断文本文件是否存在某一串字符串?如果存在将这一行或多行保存,或者将这一行或多行发邮件出去。
  • 我们在js文件中创建富文本框kindeditor,需要首先在表单中设置一个隐藏的textarea用于存放富文本框中的内容。即: &lt;textarea id="content" name="content" style="width:100%;...

    1、获取富文本kindeditor的内容:

    我们在js文件中创建富文本框kindeditor,需要首先在表单中设置一个隐藏的textarea用于存放富文本框中的内容。即:

    <textarea id="content" name="content" style="width:100%;height:600px;border: 0 none;visibility:hidden;"></textarea>

    另外,要实现ajax异步上传能够成功获取富文本框中的内容,必须要在创建富文本时添加代码:afterBlur:function(){this.sync();},目的是使得失去焦点时自动将富文本框中的数据同步到文本域textarea中。

    var editor;
    	KindEditor.ready(function(K) {
    		editor = K.create('textarea[name="content"]', {
    			afterBlur:function(){this.sync();},
    			resizeType : 1,
    			allowPreviewEmoticons : false,
    			
    		});
    		});

    设置好之后即可简单获取textarea中的内容,即:var content=$("#content").val()

    2、判断富文本框中内容是否为空

    editor.isEmpty()

    展开全文
  • 本文将与您分享如何删除文本文件中包含指定字符串的行。删除文本文件中包含指定字符串的行有多种方法:可以使用 sed命令,awk命令 或 grep命令。下面我们将通过示例与您分享详细的操作方法。以下文本内容是我们测试...

    在我们使用linux/unix的系统过程中,查找文件中是否包含指定的字符串是我们最常用的操作之一;

    同样,删除文本文件中包含指定字符串的行,也是我们经常遇到的。

    本文将与您分享如何删除文本文件中包含指定字符串的行。

    删除文本文件中包含指定字符串的行有多种方法:可以使用 sed命令,awk命令 或 grep命令。

    下面我们将通过示例与您分享详细的操作方法。

    以下文本内容是我们测试文件的内容,我们将以以下内容为例:

    Hello everyone!I share the linux tutorial with you at www.linuxcommands.site.sed is a text processing command.Awk is also a text processing command.grep is also a text processing command.They are our most commonly used tool set.They are great.

    使用sed命令删除包含指定字符串的行

    在下面的示例中,我们将使用sed命令的action选项删除文本文件中包含指定字符串的行。如下所示,我们删除文件中包含字符串“ sed”的行。

    ➜  ~ sed '/sed/d' text.txt
    69aa9d6648767964943cda32468c2cdc.png

    您还可以使用 sed -i '/sed/d' text.txt 直接修改文件的内容。

    sed选项说明:
    * -i 直接编辑文件,如果指定扩展名,则以指定扩展名保存备份。

    * 动作选项:d 删除匹配行

    使用grep命令删除包含指定字符串的行

    Grep命令,我们更多地使用它来匹配文本文件中的指定字符串。Grep 命令既然可以匹配,那么一定也可以排除,所以,这里我们使用grep -v 选项。

    在以下示例中,我们使用grep命令删除包含指定字符串的行。如下所示,我们删除文件中包含字符串“ grep”的行。

    ➜  ~ grep -v "grep" text.txt
    7f706a2bbac3b7b7117d62fb84f6d250.png

    grep -v的结果,我们只需要 使用“>”将结果重定向到新文件即可。

    使用awk命令删除包含指定字符串的行

    在下面的示例中,我们将使用awk命令删除文本文件中包含指定内容的行。

    ➜  ~ awk '!/Awk/{print $0}' text.txt
    d3dde5b3deac8d7aac2fc82fa371a2e7.png
    展开全文
  • UTF8格式的文本开头的三个字节是-17、-69和-65,主要读取文件或流的前三个字节,然后比对即可: [code="java"] /** * @param byte0 the first byte of file(or stream) * @param byte1 the ...
  • 如何判断文件文本还是二进制

    千次阅读 2011-07-20 01:52:35
    今天潜水时看到有人询问判别文件内容是否文本的方法,什么回答都有,主要是:看后缀:这个比较弱,不要说在*nix下通常都不用后缀,就算是Win下,一方面有很多不知名的后缀;另一方面,后缀是是可以随便
  • 我把文本输入框输入的内容存到一个txt文件中,但当我继续从文本输入框输入内容并按确定时,该如何判断我输入的内容在txt文件中已经存在?即当我输入一个学号后,如何判断输入的学号已经存在? ``` package ...
  • PHP如何判断图片是否伪造

    千次阅读 2016-12-20 21:00:38
    有一次把文本文件的后缀名修改为图片的后缀名,然后试着上传到qq头像上,结果报出文件格式错误的错误 显然程序中只是单纯地判断文件的后缀名无法正确地判断图像的是否是真实的图像。下面给出几个方法来判断图像是否...
  • 具体来说,逐行读取部分的文件,读取其中部分数据,判断后决定是否删除本行数据,文件每天都在更新,想达到放入指定文件夹就可以读取并且删除部分不合格数据的功能,我是个c萌新,求大家帮个忙,谢谢!
  • 如何检查两个XML文件是否相同?例如,即使排序不同,两个XML文件也是相同的.我需要检查两个XML文件是否包含相同的文本信息,而忽略了订单.helloworldworldhello那里有工具吗?解决方法:这一切都取决于你对“等效”的...
  • 用状态函数eof(),它返回是否标志已经到了文件末尾 以下代码实现了读取file1和...//打开文本文件 1.txt ,如果不是工程文件中的文本,请写清楚文件路径 ifstream file2("2.txt"); fstream file3("3.txt",ios_base
  • 是否开启超线程,由以下公式来确定: 未开启超线程:CPU总线程数 = 物理CPU个数 * 每个物理CPU的逻辑核数 * 1;...Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用2。
  • /** * 读/写文本文件 * 1. 将文件读入到StringBuffer,在控制台输出 * 2. 将内容中的文本写到文件... * 3.... * 4.... * 5. 如何判断命名管道及文件是否存在,若不存在即创建 */ public class IOFile { public static v
  • 今天给大家介绍一下,在UiPath中如何操作文件,比如需要在某个文件夹中自动创建一个当天日期的文本。主要使用的activity有:· Assign· Path Exists· If· Create Directory· Move File· Create File本例中实现...
  • 13、如何拆分含有多种分隔符的字符串 import re ...14、如何判断字符串a是否以字符串b开头或结尾 import os,stat #找到当前目录下的文件名称,返回list ret = os.listdir('.') ...
  • 对于UTF-8编码格式的文本文件,其前3个字节的值就是-17、-69、-65,所以,判定是否是UTF-8编码格式的代码片段如下:1. java.io.File f=new java.io.File("待判定的文本文件名");2. try{3. java.io.InputStream ios=...
  • 如何删除某个文本中的特殊换行?数据量超大,换行比较多的情况 我想到的是:判断文件第一个字段是否为某个值,如果不是,就backspace。能不能实现? ...
  • 一部分是:将文本文件导入EXCEL中,可以将上一步查找的结果导入,也可以自己选择文件导入(支持多选)。 2、如何使用他? a、批量查找: 首先,在“读入位置”按钮处设置你所要读取的文件的存放位置,此时程序...
  • 如何使用FSO读取文本

    千次阅读 2011-03-01 10:24:00
    TextStream对象所提供用来读取文件的方法有三种:... 因此比较好的习惯是在调用ReadLine、Read及ReadAll之前,先读取TextStream对象的atEndOfStream属性值,以判断文件是否已到达结尾的位置,其程序大致如下
  • 批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行...
  • iconv文件编码判断转换

    千次阅读 2014-08-19 11:04:18
    编码转换(一)》 后,补充如何识别一个字符数组里面的文本是否是utf8格式的方法,因为对于非utf8格式的文本也进行iconv()处理的话,会删除掉非utf8文本内容,因此调用iconv()函数前需进行字符集判断。...
  • if(fp1==NULL) /*判断input.text是否打开*/ { printf(" can not open file !\n"); exit(0); } fscanf(fp1,"%d,%d,%d,%d,%d,%lf\n",&n,&m,&pq,&pv,&duidi,&eps); j=1;k=pq+1; for(i=1;i;i++) { ...
  • 如何判断MySQL是否安装成功?一、控制台cmd窗口验证功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居...
  • 今天给大家介绍一下,在UiPath中如何操作文件,比如需要在某个文件夹中自动创建一个当天日期的文本。主要使用的activity有:l Assignl Path Existsl Ifl Create Directoryl Move Filel Create File本例中实现的功能...
  • 首先我们的创建一个控制器和一个试图页面,然后再在控制器中写下载模板的代码:先定义一个方法再写获取下载模板的路径(要先把模板引进你所写的定义中),接着判断文件是否存在,如果文件存在就可以读取文件返回文件...
  • 今天逛中心论坛看见有人问如何在VB中执行整个sql文件,偶试验了一下,可以做到! 基本的思路是这样的,读取sql文本,执行.(有点像废话..) 在这里要注意一个问题:"go",在sql批处理文本中,用"go"代表一个批处理命令的结束,...
  • 2005年12月29日 22时40分今天逛中心论坛看见有人问如何在VB中执行整个sql文件,偶试验了一下,可以做到!基本的思路是这样的,读取sql文本,执行.(有点像废话..)在这里要注意一个问题:"go",在sql批处理文本中,用"go"代表...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 229
精华内容 91
关键字:

如何判断是否文本文件