精华内容
下载资源
问答
  • 今天小编就为大家分享一篇Java 读取指定路径的文本文件并返回String的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • C#AO 添加指北针、比例尺和比例尺文本(来自帮助文档
  • 使用Python在指定文件夹新建一个文本文档(其他类型文件也可) 今天在做一个信息查询系统时需要对读入的信息进行保存,自然需要建立文件,于是就在网上寻找了很多见文件的方法。我选择了一种操作比较简单的文件处理...

    ☞☞☞点击查看更多优秀Python博客☜☜☜

    使用Python在指定文件夹新建一个文本文档(其他类型文件也可)

    今天在做一个信息查询系统时需要对读入的信息进行保存,自然需要建立文件,于是就在网上寻找了很多见文件的方法。我选择了一种操作比较简单的文件处理方式,希望对你有帮助。

    在指定路径下新建文件

    这里新建文件的方式理论上可以建成任意格式,在程序中可以改变文件的后缀,废话少说,直接上代码:

    import os
    #函数中的name是新建文件的名字,msg是写入的内容,类型为str类型,可任意传参
     def text_create(name, msg):    
         desktop_path = "F:\\ 文件存放的地址"  # 新创建的txt文件的存放路径    
         full_path = desktop_path + name + '.txt'   #也可以创建一个.doc的word文档    
         file = open(full_path, 'w')    # w 的含义为可进行读写
         file.write(msg)        #file.write()为写入指令
         file.close() 
         
    

    读指定文件(txt)里的内容

    要想读出txt里面的文件内容就需要首先打开文件,使用open()函数。然后使用file.readlines()读出里面的内容,最后进行打印。
    读出指定位置TXT文件里的内容代码如下:

    import os
    Address1 = "F:\信息统计系统\信息储存\表头.txt"    #你所要打开的特定目录的特定文件
    #打印表头
    with open(Address1,'r') as file:
        TXT1 = file.readlines()
        file.close()
    print(TXT1[0],"\n")  
    

    如果需要对文件名字进行变量表示可使用一下方式:

     ADD = "F:\信息统计系统\信息储存\\" + name +".txt"
     #其中的name为变量,类型为str类型,可进行传参
     Address2 = ADD  
      with open(Address2,'r') as file:
      TXT2 = file.readlines()
      file.close()
     print(TXT2[0],"\n")                          #假设你要读取第一行打印输出
     print("\n")
    

    打开文件的方法(只要路径已知理论上可以打开任何文件)

    代码比较简单只有一行,具体含义大家可以查阅资料,需要注意的是一定要有import os,若程序开头不含有import os程序会进行报错,代码如下:

    import os
    os.system("start explorer F:\信息统计系统\信息储存")
    

    注意如果你在复制过程中发现程序出错可能是复制过程中对齐的问题,大家注意一下格式即可!

    以上即为本次的全部内容,希望能够帮到你![比心]

    **文章导航:**

    零基础学Python教程
    在这里插入图片描述

    展开全文
  • 操作excel涵盖读写数据及批量快速读写及画图等,文本文件涵盖读写及批量读写各种数据类型文件及文件夹涵盖创建复制剪切及批量操作。这些都是笔者最常用最喜爱的基本文件。对建筑,测量,技术,会计,统计,PC开发...
  • 文本文件与二进制文件区别

    千次阅读 2018-11-15 13:50:18
    1)文本文件:这类文件文本的ASCII码形式存储在计算机中。它是以"行"为基本结构的一种信息组织和存储方式。  2)二进制文件:这类文件文本的二进制形式存储在计算机中,用户一般不能直接读懂它们,只有...

     

    https://www.cnblogs.com/pengwangguoyh/articles/3223072.html

    1)文本文件:这类文件以文本的ASCII码形式存储在计算机中。它是以"行"为基本结构的一种信息组织和存储方式。 
    2)二进制文件:这类文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们,只有通过相应的软件才能将其显示出来。二进制文件一般是可执行程序、图形、图像、声音等等。

     

    C++标准库提供了基于输入/输出流机制的文件操作,叫做文件流(File Stream)。打开文件的时候,可以用参数制定按照二进制方式还是文本方式。

    然而,可能与你的想象不同的是,这里的二进制或者文本与文件的格式并没有任何关系,而是文件流操作时对数据的表达方式。

    文本方式和二进制方式的最大区别在于文本方式对于'\n'换行符的理解不同,在DOS平台下,该字符会被展开成<CR>< LF>两个控制字符(相当于"\r\n"),在ASCII字符集下是0DH,0AH,而在UNIX平台下,仅仅是<LF>,不会展开。而在二进制方式下,不管是什么平台,'\n'都是精确的<LF>。

    而类似于一个数学上的数字128,会在文件中以什么样的格式存储,是以数字形式存储(80H),还是对应的可读文本('1','2','8'),却和文件流的打开方式无关。

    在C++的文件流中,使用的术语叫做格式化输入输出操作和无格式化操作,前者也就是<<和>>运算符,将数字按照可读文本存储,后者是get/put成员函数,直接存储数字格式。

     

    一、文本文件与二进制文件的定义

        大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。

        从上面可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8)。而二进制文件可看成是变长编码的,因为是值编码嘛,多少个比特代表一个值,完全由你决定。大家可能对BMP文件比较熟悉,就拿它举例子吧,其头部是较为固定长度的文件头信息,前2字节用来记录文件为BMP格式,接下来的8个字节用来记录文件长度,再接下来的4字节用来记录bmp文件头的长度。

    二、文本文件与二进制文件的存取  

      文本工具打开一个文件的过程是怎样的呢?拿记事本来说,它首先读取文件物理上所对应的二进制比特流,然后按照你所选择的解码方式来解释这个流,然后将解释结果显示出来。一般来说,你选取的解码方式会是ASCII码形式(ASCII码的一个字符是8个比特),接下来,它8个比特8个比特地来解释这个文件流。例如对于这么一个文件流"01000000_01000001_01000010_01000011"(下划线''_'',为了增强可读性手动添加的),第一个8比特''01000000''按ASCII码来解码的话,所对应的字符是字符''A'',同理其它3个8比特可分别解码为''BCD'',即这个文件流可解释成“ABCD”,然后记事本就将这个“ABCD”显示在屏幕上。

        事实上,世界上任何东西要与其他东西通信会话,都存在一个既定的协议,既定的编码。人与人之间通过文字联络,汉字“妈”代表生你的那个人,这就是一种既定的编码。但注意到这样一种情况,汉字“妈”在日本文字里有可能是你生下的那个人,所以当一个中国人A与日本B之间用“妈”这个字进行交流,出现误解就很正常的。用记事本打开二进制文件与上面的情况类似。记事本无论打开什么文件都按既定的字符编码工作(如ASCII码),所以当他打开二进制文件时,出现乱码也是很必然的一件事情了,解码和译码不对应嘛。例如文件流''00000000_00000000_00000000_00000001''可能在二进制文件中对应的是一个四字节的整数int 1,在记事本里解释就变成了"NULL_NULL_NULL_SOH"这四个控制符。

        文本文件的存储与其读取基本上是个逆过程。而二进制文件的存取显然与文本文件的存取差不多,只是编/解码方式不同而已,也不再叙述。

    三、文本文件与二进制文件的优缺点

        因为文本文件与二进制文件的区别仅仅是编码上不同,所以他们的优缺点就是编码的优缺点,这个找本编码的书来看看就比较清楚了。一般认为,文本文件编码基于字符定长,译码容易些;二进制文件编码是变长的,所以它灵活,存储利用率要高些,译码难一些(不同的二进制文件格式,有不同的译码方式)。关于空间利用率,想想看,二进制文件甚至可以用一个比特来代表一个意思(位操作),而文本文件任何一个意思至少是一个字符.

        在windows下,文本文件不一定是一ASCII来存贮的,因为ASCII码只能表示128的标识,你打开一个txt文档,然后另存为,有个选项是编码,可以选择存贮格式,一般来说UTF-8编码格式兼容性要好一些.而二进制用的计算机原始语言,不存贮兼容性.    很多书上还认为,文本文件的可读性要好些,存储要花费转换时间(读写要编译码),而二进制文件可读性差,存储不存在转换时间(读写不要编解码,直接写值).这里的可读性是从软件使用者角度来说的,因为我们用通用的记事本工具就几乎可以浏览所有文本文件,所以说文本文件可读性好;而读写一个具体的二进制文件需要一个具体的文件解码器,所以说二进制文件可读性差,比如读BMP文件,必须用读图软件.

        而这里的存储转换时间应该是从编程的角度来说的,因为有些操作系统如windows需要对回车换行符进行转换(将''\n'',换成''\r\n'',所以文件读写时,操作系统需要一个一个字符的检查当前字符是不是''\n''或''\r\n'').这个在存储转换在Linux操作系统中并不需要,当然,当在两个不同的操作系统上共享文件时,这种存储转换又可能出来(如Linux系统和Windows系统共享文本文件)。关于这个转换怎样进行,我将在下一篇文章《Linux文本文件与Windows文本文件间的转换》给出^_^

    四、C的文本读写和二进制读写

        应该说C的文本读写与二进制的读写是一个编程层次上的问题,与具体的操作系统有关,所以"用文本方式读写的文件一定是文本文件,用二进制读写的文件一定是二进制文件"这类观点是错误的.下面的讲述非明确指出操作系统类型,都暗指windows.

        C的文本方读写与二进制读写的差别仅仅体现在回车换行符的处理上.文本方式写时,每遇到一个''\n''(0AH换行符),它将其换成''\r\n''(0D0AH,回车换行),然后再写入文件;当文本读取时,它每遇到一个''\r\n''将其反变化为''\n'',然后送到读缓冲区.正因为文本方式有''\n''--''\r\n''之间的转换,其存在转换耗时.二进制读写时,其不存在任何转换,直接将写缓冲区中数据写入文件.

        总地来说,从编程的角度来说,C中文本或二进制读写都是缓冲区与文件中二进制流的交互,只是文本读写时有回车换行的转换.所以当写缓冲区中无换行符''\n''(0AH),文本写与二进制写的结果是一样的,同理,当文件中不存在''\r\n''(0DH0AH)时,文本读与二进制读的结果一样.

    五、实例

    C的文本读写和二进制读写     应该说C的文本读写与二进制的读写是一个编程层次上的问题,与具体的操作系统有关,所以"用文本方式读写的文件一定是文本文件,用二进制读写的文件一定是二进制文件"这类观点是错误的.下面的讲述非明确指出操作系统类型,都暗指windows.

        C的文本方读写与二进制读写的差别仅仅体现在回车换行符的处理上.文本方式写时,每遇到一个''\n''(0AH换行符),它将其换成''\r \n''(0D0AH,回车换行),然后再写入文件;当文本读取时,它每遇到一个''\r\n''将其反变化为''\n'',然后送到读缓冲区.二进制读写时,其不存在任何转换,直接将写缓冲区中数据写入文件.对于内容为 “Ab123\r\n" (41 62 31 32 33 0D 0A)的文件,

    复制代码

    复制代码

    pf1 = fopen("f:\\1.txt","r");// 或者pf1 = fopen("f:\\1.txt","rb");
    for(int i=0;i <6;i++)
    {
       fread(&a[i],1,1,pf1);
       printf("%0X ",a[i]);
    }
    fclose(pf1);//关闭文件

    复制代码

    复制代码

     

     

    的结果分别为: 41 62 31 32 33 0A          和     41 62 31 32 33 0D  5678的存储形式为:ASCII码:    00110101   00110110   00110111   00111000  (四个字节) 5678的存储形式为:二进制:      00010110   00101110  (两个字节) 二进制文件和文本文件的唯一差异就是前者含有一些非标准输出的ASCII码。0x01就是非标准输出的ASCII码,

    0x61就是标准输出的ASCII码。)

     

     

     

    一. 基本知识:
    --------------------------------------------------转----------------------------------------------------
    1. 二进制文件与文本文件的区别:
    将文件看作是由一个一个字节(byte) 组成的, 那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有位都用上了。这就是两者的区别;接着,第二个问题就是文件按照文本方式或者二进制方式打开,两者会有什么不同呢?其实不管是二进制文件也好,还是文本文件也好,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理也就不同。如果按照文本方式打开,在打开的时候会进行translate,将每个字节转换成ASCII码,而以按照二进制方式打开的话,则不会进行任何的translate;最后就是文本文件和二进制文件在编辑的时候,使用的方式也是不同的。譬如,你在记事本中进行文本编辑的时候,你进行编辑的最小单位是字节(byte);而对二进制文件进行编辑的话,最小单位则是位(bit),当然我们都不会直接通过手工的方式对二进制文件进行编辑了。

    从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种:
    ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为: 
    ASCII码: 00110101 00110110 00110111 00111000 
    ↓  ↓      ↓   ↓
    十进制码: 5     6   7      8 

    共占用4个字节。ASCII码文件可在屏幕上按字符显示,例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。由于是按字符显示,因此能读懂文件内容。

    二进制文件是按二进制的编码方式来存放文件的。例如,数5678的存储形式为:00010110 00101110 只占二个字节。二进制文件虽然也可在屏幕上显示,但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。因此也把这种文件称作“流式文件”。 

    2. 文本模式(textmode)和二进制模式(binarymode)有什么区别? 

    流可以分为两种类型:文本流和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符“\n”,(如果以"文本"方式打开一个文件,那么在读字符的时候,系统会把所有的"\r\n"序列转成"\n",在写入时把"\n"转成"\r\n" )。二进制流是非解释性的,一次处理一个字符,并且不转换字符。

    注:

     

    \n一般会操作系统被翻译成"行的结束",即LF(Line-Feed)
    \r会被翻译成"回车",即CR(Cariage-Return)
    对于文本文件的新行,在UNIX上,一般用\n(LF)来表示,Mac上用\r(CR)来表示,
    Windows上是用\n\r(CR-LF)来表示。 

    通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器。如果用文本方式打开二进制文件,会把“0D 0A”自动变换成“\n”来存在内存中。写入的时候反向处理。而二进制方式打开的话,就不会有这个过程。但是,Unicode/UTF/UCS格式的文件,必须用二进制方式打开和读写。

     

    ---------------------------------------------------------------------------------------------------------

    上述基础其实大可以略过,简言之,对用户来说:在 matlab 中存储成为二进制还是文本文件取决于fopen的方式,如果用wt,则存储为文本文件,这样用记事本打开就可以正常显示了;如果用w则存储为二进制文件,这样用记事本打开会出现小黑方块,要正常显示的话,可以用写字板或UltraEdit等工具打开。

    二. Matlab的I/O文件操作使用技巧和总结:

    1. Matlab 支持的I/O文件(对应“取/存”操作)类型:(所有文件I/O程序不需要特殊的工具箱)
    http://www.mathworks.com/support/tech-notes/1100/1102.html

    (注:从上表可以看到,matlab不支持doc格式的文档存取(因为doc文档包含很多格式控制符),请改用txt或者dat格式)

    2. Matlab 的I/O文件指南:
    http://www.mathworks.com/support/tech-notes/1600/1602.html


    以下是部分对应的中文译文:
    --------------------------------------------------------------转----------------------------------------
    本技术支持指南主要处理:ASCII, binary, and MAT files.
    要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键入以下命令:
    help iofun

    MATLAB中有两种文件I/O程序:high level and low level.
    High level routines: 包括现成的函数,可以用来读写特殊格式的数据,并且只需要少量的编程。
    Low level routines: 可以更加灵活的完成相对特殊的任务,需要较多的额外编程。
     

    High level routines 包括现成的函数,可以用来读写特殊格式的数据,并且只需要少量的编程。

    举个例子,如果你有一个包含数值和字母的文本文件(text file)想导入MATLAB,你可以调用一些low level routines自己写一个函数,或者是简单的用TEXTREAD函数。

    使用high level routines的关键是:文件必须是相似的(homogeneous),换句话说,文件必须有一致的格式。下面的段落描述一些high level file I/O routines并给出一些例子帮助理解概念。

    LOAD/SAVE

    主要的high level file I/O routines 是LOAD 和 SAVE函数。LOAD
    可以读MAT-file data或者用空格间隔的格式相似的ASCII data. SAVE可以将MATLAB变量写入MAT-file格式或者空格间隔的ASCII data。大多数情况下,语法相当简单。下面的例子用到数值由空格间隔的ASCII file sample_file.txt :

    1 5 4 16 8

    5 43 2 6 8

    6 8 4 32 1

    90 7 8 7 6

    5 9 81 2 3

     

     

     

    Example:
    用 LOAD and SAVE 读写数据

     


    CODE:
    % Load the file to the matrix, M :
    M = load('sample_file.txt') 
    % Add 5 to M :
    M = M +5 
    % Save M to a .mat file called 'sample_file_plus5.mat':
    save sample_file_plus5 M

    % Save M to an ASCII .txt file called 'sample_file_plus5.txt' :
    save sample_file_plus5.txt M -ascii 


     

     

    UIGETFILE/UIPUTFILE

     

     

     

    UIGETFILE/UIPUTFILE是基于图形用户界面(GUI)的。会弹出对话框,列出当前目录的文件和目录,提示你选择一个文件。UIGETFILE让你选择一个文件来写(类似Windows ‘另存为’选项?)。用UIGETFILE,可以选择已存在的文件改写,也可以输入新的文件名。两个函数的返回值是所选文件名和路径。

     

     

     

    Example:
    用 UIGETFILE 从当前目录选择一个 M-file

     

     

     


    CODE:
    % This command lists all the M-files in the current directory and
    % returns the name and path of the selected file
    [fname,pname] = uigetfile('*.m','Sample Dialog Box') 
     

     

    注意: UIGETFILE 一次只能选择一个文件。

     

     

     

    UIIMPORT/IMPORTDATA

     

     

     

    UIIMPORT是一个功能强大,易于使用的基于GUI的high level routine,用于读complex data files。文件也必须是homogeneous。

     

     

     

    IMPORTDATA形成UIIMPORT的功能,不打开GUI。可以将IMPORTDATA用于函数或者脚本中,因为在函数或者脚本中基于GUI的文件导入机制并不理想。下面的例子用到包含几行文件头和文本、数值数据的文件'sample_file2.txt' :

     

     

     

    This is a file header.

     

     

     

    This is file is an example.

     

     

     

    col1 col2 col3 col4

     

     

     

    A 1 4 612.000

     

     

     

    B 1 4 613.000

     

     

     

    C 1 4 614.000

     

     

     

    D 1 4 615.000

     

     

     

    Example: Using IMPORTDATA to read in a file with headers, text, and numeric data

     

     

     


    CODE:

    % This reads in the file 'sample_file2.txt' and creates a
    % structure D that contains both data and text data.
    % Note the IMPORTDATA command specifies a white space 
    % as the delimiter of the file, but IMPORTDATA can usually 
    % detect this on its own 

    D = importdata('sample_file2.txt','') % 原文有误?

    D = importdata('sample_file2.txt')

     

     

     

     

    可以通过访问结构D的数据和文本域,来看结构D中的真实值,例如输入:

     

     

     

    data = D.data

     

     

     

    text = D.textdata

     

     

     

    可以用UIIMPORT读同一个文件并得到同样的结构.

     

     

     

    注意: 对于 ASCII data, 你必须检验导入向导正确的识别了列分隔符。

     

     

     

    TEXTREAD/STRREAD

     

     

     

    TEXTREAD 是一个强大的动态high level routine,设计用来读ASCII格式的文本和/或数值数据文件。STRREAD除是从字符串而不是文件读以外,类似于TEXTREAD

     

     

     

    两个函数可以用许多参数来改变其具体的工作方式,他们返回读入指定输出的数据。他们有效的提供给你一个
    “两全其美”的方法,因为他们可以用一个命令读入混合的ASCII和数值数据(high level routines的做法),并且你可以改变他们以匹配你特定的应用(如同low level routines做到的)。例子:

     

     

     


    CODE:

    Example 1: Using TEXTREAD to read in an entire file into a cell array
    % This command reads in the file fft.m into the cell array, file 
    file = textread('fft.m','%s','delimiter','\n','whitespace',''); 
    CODE:

    Example 2: Using STRREAD to read the words in a line
    % This command uses the cell array created in Example 1 to 
    % read in each word of line 28 in 'file' to a cell array, words
    words = strread(file{28},'%s','delimiter','')

     


    CODE:

    Example 3: Using TEXTREAD to read in text and numeric data from a file with headers

    % This command skips the 2 header lines at the top of the file
    % and reads in each column to the 4 specified outputs
    [c1 c2 c3 c4] = textread('sample_file2.txt','%s %s %s %s','headerlines',2)

     

    CODE:

    Example 4: Using TEXTREAD to read in specific rows of text and numeric data from a file

    % This command reads in rows B and C of the file. The 'headerlines'
    % property is used to move down to the desired starting row and the 
    % read operation is performed 2 times 

    [c1 c2 c3 c4] = textread('sample_file2.txt',... 
    '%s %s %s %s',2,'headerlines',4) 



    CODE:

    Example 5: Using TEXTREAD to read in only the numeric data from a file containing text and numbers

    % This command reads in only the numeric data in the file. The
    % 'headerlines' property is used to move down to the first row 
    % of interest and the first column of text is ignored with the 
    % '*' operator 

    [c2 c3 c4] = textread('sample_file2.txt','%*s %d %d %f','headerlines',3) 

     

     

     

     

    DLMREAD/DLMWRITE/CSVREAD

     

     

     

    DLMREAD 和 DLMWRITE函数能够读写分隔的ASCII data,而不是用low level routines。他们比low level routines容易使用,Low level routines用几行代码实现的功能可以用DLMREAD/DLMWRITE简化成一行。

     

     

     

    CSVREAD用来读分隔符是逗号的文件,是DLMREAD的特殊情况。当读空格和Tab分隔的电子数据表文件时,DLMREAD特别有用。以'sample_file.txt'为例:

     

     

     

     

     


    CODE:

    Example 1: Using DLMREAD to read in a file with headers, text, and numeric data

    % This reads in the file 'sample_file2.txt' and creates a matrix, D,
    % with the numeric data this command specifies a white space as the
    % delimiter of the file 

    D = dlmread('sample_file.txt','') 






    CODE:

    Example 2: Using DLMREAD to extract the first 3 columns of the last 3 rows

    % This reads in the first 3 columns of the last 3 rows of
    % the data file 'sample_file.txt'into the matrix, D_partial.
    % 读文件 'sample_file.txt' 前3列后3行,到矩阵D_partial.

    D_partial = dlmread('sample_file.txt','',[2 0 4 2]) 






    CODE:

    Example 3: Using DLMWRITE to write a comma delimited file

    % This creates a file called 'partialD.txt' that consists of 
    % the first 3 columns of the last 3 rows of data where each
    % element is separated by a comma 

    dlmwrite('partialD.txt',D_partial,',') 


     

     

    注意: 保证DLMREAD and DLMWRITE指定范围的指标从0开始,而不是从1开始。

     

     

     

    WK1READ/WK1WRITE

     

     

     

    WK1READ 用来读Lotus123 电子数据表文件的数据;WK1WRITE用来写矩阵到Lotus123 电子数据表文件。

     

     

     

    XLSREAD

     

     

     

    XLSREAD用来读Excel的数值和文本数据。

     


    ---------------------------------------------------------------------------------------------------------

    三. 具体例子分析:
    Matlab网站用两个例子非常详尽地介绍了各个命令的基本用法,实际中,面对手头上的数据,如何选用合适的命令呢?以下结合几个示例给出一些总结,大家举一反三就可以了:

    1. 纯数据(列数相同):
    源文件:



    CODE:
    0 3866.162 2198.938 141.140
    1 3741.139 2208.475 141.252
    2 3866.200 2198.936 141.156
    3 3678.048 2199.191 141.230
    4 3685.453 2213.726 141.261
    5 3728.769 2212.433 141.277
    6 3738.785 2214.381 141.256
    7 3728.759 2214.261 141.228
    8 3748.886 2214.299 141.243
    9 3748.935 2212.417 141.253
    10 3733.612 2226.653 141.236
    11 3733.583 2229.248 141.223
    12 3729.229 2229.118 141.186




    解答:对于这个txt文件,由于各行列数相同,故简单地使用load,importdata均可。


    2.字段名(中、英文字段均可)+数据:
    源文件:


    CODE:
    CH0 CH1 CH2 CH3
    0.000123 0.000325 0.000378 0.000598
    0.000986 0.000256 0.000245 0.000698


    解答:由于是记录的形式,因此各行列数必相同(缺少部分列时请自行在文件中补上 Inf 或 NaN),故直接使用 importdata 便可。

    3.注释(含有独立的数字串)+数据(列数相同):
    问题:这个文件有4列,但前6行是文字说明,4列数字是从第8行开始的.现在我想把这个文件的前2列和文字说明提出来组成一个新的dat文件

    源文件:


    CODE:
    Group 2 12.02.2006 Limei
    Samples of datas: 50000

    CH0 CH1 CH2 CH3
    0.000123 0.000325 0.000378 0.000598
    0.000986 0.000256 0.000245 0.000698


    目标文件:


    CODE:
    Group 2 12.02.2006 Limei
    Samples of datas: 50000

    CH0 CH1
    0.000123 0.000325
    0.000986 0.000256


    解答:由于注释中含有独立的数字串,且注释部分没有明显的格式,这时候用importdata, load等高级命令直接读取会失败,用 textread, dlmwrite 等格式化命令也不太合适,因此只能使用低级命令进行读取。(当然了,可以跳过注释部分直接用高级命令读取数据,即:[a b c d] = textread(filename,'%f %f %f %f','headerlines',4); )。一个简单的、非通用的包含注释的读取方法如下:
    -------------------------------------转 ---------------------------------------------------------------------------------------

    CODE:
    clc;clear;
    fid = fopen('exp.txt', 'r');
    fid_n=fopen('ex.dat','w');
    while ~feof(fid)
    tline=fgetl(fid);
    if ~isempty(tline)
    if double(tline(1))>=48 && double(tline(1))<=57 %数值开始
    a=strread(tline);
    a(3:4)=[];
    fprintf(fid_n,'%f %f\n',a);
    clear a;
    elseif double(tline(1))==67 %字母C开始
    [b1,b2,b3,b4]=strread(tline,'%s %s %s %s');
    b=[b1{1},' ',b2{1}];
    fprintf(fid_n,'%s\n',b);
    clear b b1 b2 b3 b4;
    else
    fprintf(fid_n,'%s\n',tline);
    end
    else
    fprintf(fid_n,'%s\n',tline);
    end
    end
    fclose(fid);
    fclose(fid_n);


    ---------------------------------------------------------------------------------

    4. 注释(不含独立的数字串)+数据(列数相同):
    源文件:

    CODE:
    你好 abc
    欢迎来到 我们
    振动论坛
    vib.hit.edu.cn
    1 11 111 1111
    2 22 222 2222
    3 33 333 3333
    4 44 444 4444
    5 55 555 5555


    解答:直接用 importdata 便可

    注:有时候注释中含有独立的数字串也可以 importdata 成功,不过得到的结果有可能不正确,建议这时候使用第3种情形的读取方式。

    5. 注释与数据混排:
    对此当然只能自己编程,举例:

    源文件

    CODE:
    1 11 111 1111
    你好
    2 22 222 2222
    欢迎来到
    3 33 333 3333
    振动论坛
    4 44 444 4444
    vib.hit.edu.cn
    5 55 555 5555


    解答:
    --------------------------------------------转--------------------------------------
    CODE:

    function [data]=distilldata(infile)
    %功能说明:
    %将保存数据的原始文件中的数值数据读入到一个data变量中
    %使用说明:
    % infile——原始数据文件名;
    % data=数据变量

    tmpfile='tmp2.mat';

    fidin=fopen(infile,'r'); % 打开原始数据文件(.list)

    fidtmp=fopen(tmpfile,'w'); % 创建保存数据文件(不含说明文字)

    while ~feof(fidin) % 判断是否为文件末尾
    tline=fgetl(fidin); % 从文件读入一行文本(不含回车键)
    if ~isempty(tline) % 判断是否空行
    [m,n]=size(tline);
    flag=1;
    for i=1:n %判断一行中有没有字符(+-.Ee和空格键除外)
    if ~(tline(i)==' '|tline(i)=='-'|tline(i)=='.'|tline(i)=='E'...
    |tline(i)=='e'|tline(i)=='+'...
    |(double(tline(i))>=48&&double(tline(i))<=57))
    flag=0;
    break;
    end
    end
    if flag==1 % 如果是数字行,把此行数据写入文件
    fprintf(fidtmp,'%s\n',tline);
    end
    end
    end
    fclose(fidin);
    fclose(fidtmp);
    data=textread(tmpfile);
    delete(tmpfile);

    ---------------------------------------------------------------------------------------------------------
    另外,如果要求不高,也可以使用 textread 函数跳过注释部分进行读取,不过前提是需要事先知道文件内容的结构(即哪行是数据、哪行是注释)

    6.各列数据的分离:
    源文件:


    CODE:
    0 + 47038.7 1.05 09:26:07 C
    2 + 46477.7 1.03 09:28:38 C 
    4 + 44865.7 1.04 09:28:48 C 
    6 + 41786.4 1.03 09:28:56 C 
    8 + 39896.0 0.97 09:29:03 C 
    10 + 37518.4 0.93 09:29:15 C 
    12 + 35858.5 0.92 09:29:30 C 
    14 + 46105.0 1.03 09:30:21 C 
    16 + 46168.6 6.89 09:30:30 C 
    18 + 48672.3 4.33 09:30:40 C 
    20 + 49565.7 0.49 09:30:48 C 
    22 + 49580.7 0.53 09:30:55 C 
    24 + 49602.3 0.84 09:31:03 C 
    26 + 49582.5 1.51 09:31:11 C 
    28 + 49577.0 1.39 09:31:19 C 
    30 + 49589.3 0.61 09:31:27 C 
    32 + 49578.3 1.06 09:31:29 C 
    34 + 49512.5 1.77 09:31:38 C 

    解答:直接用 [a,b,c,d,e,f]=textread(yourfilename,'%d %c %f %f %s %c'); 便可


    四. 注意事项:

     

    1. 请在 matlab 中保持当前路径在该数据文件对应的目录下进行存取,否则,存取时请给出该数据文件的具体路径。

     

     

     

    2. 存取时,请给出该数据文件的全称(包括后缀名,读取mat文件时可省略)

     

     

     

    3. load data.txt和A=load(‘data.txt’)的区别请参阅精华贴:[原创]写给学习 matlab 的新手们

     

     

     

    4. 请根据读写需要来打开文件,即根据你的需要来指定 fopen 的 permission 属性为读或写。如果只用 a 进行写入,就不能用 fread 读取。此时应该写完关闭文件,然后用 r 打开读取,或者直接用 a+ 进行同时读写操作。否则,会产生莫名其妙的问题!以下代码是一个错误的例子:

     

     

     

    CODE:

    filename='e.dat';
    fid=fopen(filename,'a');
    if fid<0
    error('fopen error');
    end
    s=[1 2 3 4;5 6 7 8];
    fwrite(fid,s,'float32')
    [dd ll]=fread(fid,inf,'float32');%把t中的数据全部读出,即s矩阵。
    fclose(fid);
     

     

    此时得到的dd, ll 是错误且无意义的!

     


    五. 其他相关问题:

    1. 连续读取多个文件的数据,并存放在一个矩阵中:
    (1) 首先是如何读取文件名:
    方法一:
    filename=dir(‘*.jpg’);
    那么第i个文件的文件名就可以表示为
    filename(i).name
    文件数量为:length(filename)

    方法二:
    先在Windows的 MSDOS(命令行)中使用以下命令生成一个list.txt文件:

     

    dir path\folder /on /b /s > path\list.txt

     

    举例:dir d:\test /on /b /s > d:\list.txt

     

    然后在 matlab 中使用:

     

    filename = textread(sFileFullName,'%s');

     

    把所有文件名读取到list细胞矩阵中,最后对filename{i}便可得到各文件名。

     


    (2) 然后是读取文件名的数据并存储:
    假设每个文件对应的数据是m*n的,则:

    CODE:
    k = length(filename);
    Data = zeros(m,n,k);
    for ii = 1:k
    Data(:,:,ii) = yourreadstyle(filename{ii}); %yourreadstyle是对应的文件读取方式的函数
    end

    2. 连续读取多个文件的数据,并存放在多个矩阵(以文件名命名)中:
    假设每个文件对应的数据是m*n的,则以上述第二种文件名读取方法为例:

    CODE:
    k = length(filename);
    for ii = 1:k
    D = yourreadstyle(filename{ii});
    eval([‘Data_’, num2str(ii), ‘ = D;’]);
    end



    3. 文件名命名问题:
    文件名为 abc00001,abc00002,... abc00009,abc00010,... abc00099,abc00100,...abc00879. 准备把这些文件名给放到一个数组里面去。

    解答:

    CODE:
    a=cell(879,1);
    for k=1:879
    a{k} = sprintf('%.5d',k);
    end


    4. 上述各种文件格式、类型自动识别问题:可以利用正则表达式来处理,使之通用性较强。例如使用以下代码可以自动处理上面提到了例1到例5各种情形,不过由于存在自动判断,对某些例子(如例1)效率自然要低一点,而对于另外的例子(如例3、例5)效率估计要高一点(少用了一个循环)。

    CODE:
    function [data]=distilldata_eight(infile)
    %功能说明:
    %将保存数据的原始文件中的数值数据读入到一个data变量中(自动判断数据行)
    %使用说明:
    % infile——原始数据文件名;
    % data=数据变量
    tmpfile='tmp2.mat';
    fidin=fopen(infile,'r'); % 打开原始数据文件(.list)
    fidtmp=fopen(tmpfile,'w'); % 创建保存数据文件(不含说明文字)
    while ~feof(fidin) % 判断是否为文件末尾
    tline=fgetl(fidin); % 从文件读入一行文本(不含回车键)
    if ~isempty(tline) % 判断是否空行
    str = '[^0-9 | \. | \- | \s | e | E]'; %正则表达式为:该行中是否包含除 - . E e 数字 和 空白字符 外的其他字符
    start = regexp(tline,str, 'once');
    if isempty(start)
    fprintf(fidtmp,'%s\n',tline);
    end
    end
    end
    fclose(fidin);
    fclose(fidtmp);
    data=textread(tmpfile);
    delete(tmpfile)



    5. 大量数据的读取问题:
    可以考虑使用循环分批读取(特别是在各数据是独立的时候),或者使用稀疏矩阵来实现(对此可以参阅本版精华贴: [原创]提高matlab运行速度和节省空间的一点心得(之三))。另外,也可参考《深入浅出MATLAB 7_X混合编程》一书第一章

    6. 读取整个txt文件的内容(获得文件中的所有字符):

    CODE:

    f = fopen('yourfilename.txt','rt'); % t 属性根据需要可省略
    x = fread(f,'*char');
    fclose(f);


    7. 把维数不同的矩阵及其变量名保存到一个 txt 文件中,例如 a1 = 123; a2 = [1 2 3;4 5 6] ,希望得到的 txt 文件如下:


    QUOTE:

    a1
    123
    a2:
    1 2 3
    4 5 6






    如果写入的时候简单一点,则可以采用以下方式,不过读取的时候比较麻烦:

    CODE:

    a1=123;
    a2=[1 2 3;4 5 6];
    fid = fopen('myfile.txt', 'wt');
    for i=1:2
    fprintf(fid, '%s: \n %s\n', ['a',int2str(i)], mat2str(eval(['a',int2str(i)])));
    end
    fclose(fid);


    相反,如果写入的时候复杂一点,则读取的时候会简单一点:

    CODE:

    a1=123;
    a2=[1 2 3;4 5 6];
    fid = fopen('myfile.txt', 'wt');
    for i=1:2
    fprintf(fid, '%s: \n', ['a',int2str(i)]); 
    b = eval(['a',int2str(i)]);
    fprintf(fid, [repmat('%d ', 1, size(b,2)), '\n'], b');
    end
    fclose(fid);

     

    https://www.cnblogs.com/pengwangguoyh/articles/3223072.html

    展开全文
  • Qt帮助文档使用方法

    千次阅读 2019-10-22 20:22:18
    Qt 帮助文档非常细致而全面,应有尽有,是非常不错的自学教材。因为 Qt 帮助文档太多,所以难以都翻译成中文,即使翻译了一部分,翻译花的时间太多,翻译更新的时效性也难以保证,所以还是得看英文帮助为主。本节...

    Qt 帮助文档非常细致而全面,应有尽有,是非常不错的自学教材。因为 Qt 帮助文档太多,所以难以都翻译成中文,即使翻译了一部分,翻译花的时间太多,翻译更新的时效性也难以保证,所以还是得看英文帮助为主。本节介绍 Qt 助手和 Qt 帮助文档的使用,学会基本的文档运用方式。

    Qt Assistant(Qt 助手)

    在开始菜单中找到“Qt 5.9.0-->5.9-->MinGW 5.3.0 (32-bit)-->Assistant”,或者在 Qt 命令行工具中运行 assistant 命令,都可以打开独立的 Qt 助手程序,这就是帮助文档的浏览查阅软件,并且可以添加新的 Qt 相关文档。

    首先介绍一下 Qt 助手的界面:

    Qt Assistant(Qt 助手)界面


    Qt 助手是典型的 Qt 主窗口(MainWindow)程序,上方是菜单栏和工具栏(默认显示的叫导航工具栏),最下面的是状态栏。

    Qt 助手界面与常见的网页浏览器功能非常类似,概略介绍一下几个菜单:

    菜单说明
    文件可以新建多个标签页,同时打开多个文档页面,还可设置文档页面属性,打印帮助页面。
    编辑在当前打开页面复制文本或查找文本,以及 Qt 助手自身的首选项编辑。
    查看文档页面显示的放大缩小,显示各个功能窗口(内容、索引、书签、搜索、打开页列表)或工具栏(过滤器工具栏、地址工具栏、书签工具栏)。
    前往类似网页浏览器的前进、后退、主页,有区别的是同步目录菜单项,如果通过索引或搜索查找打开的帮助页,不知道该页面位于哪个目录树里和目录路 径,可以点击同步目录,定位该帮助页在目录树里的路径。
    书签添加打开的页面到书签菜单栏或书签工具栏,管理书签等。
    帮助关于 Qt 助手版本信息。


    默认显示的工具栏是导航工具栏,在菜单“查看-->工具栏”里可以找到其他三个工具栏,或者右击工具栏或菜单栏空白处,邮件菜单也可以设置显示哪些工具栏。

    导航工具栏里按钮功能在菜单栏里都有对应菜单项,“同步目录”按钮就是菜单“前往-->同步目录”菜单项一样的功能。“Find in Text”按钮就是“编辑”菜单里的对应项,快捷键 Ctrl+F,注意查找当前页文本的查找栏不是弹窗的,而是位居底部状态栏上面。 在本页检索到的关键词会用黄色背景高亮显示出来,查找栏可以通过点击左边红叉按钮关闭,可以按快捷键 Ctrl+F 再次显示。导航工具栏的其他按钮意义都很简单直白,如前进、后退、主页、复制、打印、放大、缩小、正常大小等,就不多作说明了。

    介绍完边边角角,我们来看看左边的导航窗口,左边导航窗口分两部分,上方的是四个选项卡式的子窗口:内容、索引、书签和搜索。下方的是当前打开的文档页面。

    导航窗口下方的打开文档列表窗口一目了然,对于上面四个子窗口需要解释一下:

    子窗口说明
    内容显示 Qt 帮助文档的目录树,每一个文档树的根对应一个 qch 文件(Qt Compressed Help file),对于本教程安装的 Qt 开发环境,这些 qch 文件位于“Qt安装目录\Docs\Qt-5.9”文件夹里,这个文件夹不仅有一堆 *.qch 文件,还有一堆子文件夹,子文件夹名字与 qch 文件名字是对应的,子文件夹保存 qch 文件的快速索引数据。
    索引qch 文件里每篇帮助页都有快速索引,索引的内容一般有帮助页标题、Qt 模块名、类名/名字空间、成员变量/属性、成员函数、枚举类型、宏定义等等,通过输入索引关键词,就可以快速找到相关的文档页面。这些快速索引数据保存位置就是刚才讲的“Qt安装目录\Docs\Qt-5.9”的子文件里。
    书签可以按快捷键 Ctrl+D,保存当前页为书签,书签保存位置分两类,一类是在书签菜单栏的菜单项显示,另一类是在书签工具栏里显示。可以右击菜单栏或工具栏空白处,在右 键菜单选择显示书签工具栏。
    搜索这个是对所有 Qt 文档页面进行全文搜索,对于快速索引找不到的关键词,可以在全文检索子窗口里查找。


    在本小节第一张图可以看到帮助页内部的结构,主要有帮助页的标题、目录树路径、前一篇和后一篇链接、帮助页内部目录、页面分节小标题、正文内容等,图上标注的 比较清楚,就不再赘述了。

    Qt Creator 集成的帮助系统

    Qt Creator 作为集成开发环境,打开这一个工具等于打开所有的工具,Qt Creator 除了自带设计师插件,还带有助手插件,可以随时查看帮助文档。Qt Creator 的助手插件有两种工作方式,第一种是以 Qt Creator 的帮助模式出现,打开 QtCreator,点击左边“帮助”,如下图所示:

    Qt Creator 集成的帮助系统


    界面与独立的 Qt 助手程序差不多,主要是工具栏的区别。Qt Creator 左边是分栏窗口,上面分栏子窗口的默认是“目录”视图,对应助手独立程序左侧的“内容”窗口,在该子窗口标题栏位置(其实是工具栏)可以选择当前视图,总共有四个:

    • 书签:对应 Qt 助手独立程序的“书签”,保存的文档书签页面。
    • 目录:对应 Qt 助手独立程序的“内容”,即帮助文档目录树。
    • 索引:对应 Qt 助手独立程序的“索引”,对帮助文档进行快速索引。
    • 查找:对应 Qt 助手独立程序的“搜索”,对帮助文档进行全文搜索。


    分栏窗口的工具栏还有两个分别是“添加分栏”和“关闭分栏”按钮,可以添加分栏显示上面列举的多个视图。如果要关闭全部边栏,可以点击 QtCreator 菜单“控件”-->“Hide SideBar”隐藏边栏;如果边栏被全部关闭了,那么可以点击 QtCreator 菜单“控件”-->“Show SideBar”重新显示边栏。

    左侧分栏下方的子窗口是打开页面列表(Open Pages),也可以切换显示的视图,与左边上面子窗口的功能差不多,只是默认显示的视图不一样。

    右边区域都是当前打开的帮助页面,页面上方的区域是其工具栏,有一排按钮,功能分别是:

    • 主页:回到帮助文档主页,这里默认是 QtCreator 文档主页。
    • 后退:回到上一个显示的页面。
    • 前进:与后退相反,进入下一个页面。
    • 添加书签:保存当前显示的帮助页面到书签视图(Bookmarks)里。
    • 打开页面列表:与左侧打开的页面列表(Open Pages)是对应的关系,可以选择显示已打开的页面。
    • 过滤文档根:在帮助文档目录树里,筛选一个文档根,查看其内容,默认“未过滤”是显示所有文档根。


    Qt Creator 的帮助文档内容和 Qt 助手独立程序的帮助文档内容是一样的,这两个程序都可以查阅帮助文档,页面内容也是一样的。

    选中代码进入帮助页面

    现在来看看 QtCreator 助手插件的第二种工作方式,先进入“欢迎”模式,打开上一节的 testbug 项目,然后自动进入“编辑”模式。

    在“编辑”模式,边栏上半部分项目视图里打开 widget.cpp ,在构造函数里选中 qSleep 函数名,然后按快捷键 F1,看到在“编辑”模式里集成的智能感知帮助页面:

    选中代码进入Qt帮助页面


    如上图所示,在 QtCreator 的“编辑”模式里,可以根据选中的函数名、变量名、类名等,按 F1 键之后自动打开智能感知帮助页面,会自动根据编辑器里的名称查询帮助文档,如果找到对应的文档,就跳转进去。这是非常好用的功能,如果不知道类或对象有什么函数,选择名称,按 F1 键会直接进入该类的帮助文档,查找文档特别方便。

    智能感知页面上方是它的工具栏:工具栏第一个按钮“Open in Help Mode”表明当前处于 QtCreator 的帮助模式,工具栏剩下的按钮分别是主页、后退、前进、添加书签、打开模式和关闭。

    关于 QtCreator 和 Qt 助手独立程序的界面就介绍这么多,这些工具用多了就熟悉了。下面介绍怎么查询和运用帮助文档,因为帮助文档都是英文的,所以学好英文还是有必要的。

    帮助文档运用

    在使用帮助文档之前,首先是要知道自己想达到什么目的、实现什么功能,然后先可以用谷歌百度搜索一下关键词,得到可能的模块名、类名、函数名,再用 Qt 助手的索引或搜索功能找到具体的文档和示例代码。

    就拿前面提到的睡眠函数举例,通常猜都猜得到跟 sleep 单词有关系,然后去 Qt 助手索引里查找:


    如上图所示,在索引栏输入 sleep 之后出来好几个函数以及常量,双击鼠标即可进入相关页面。

    打断一下思路,我们先来讲讲 Qt 一般的命名规则:

    • 类名、枚举类型/常量、名字空间等名称都是首字母大写,名字里单词首字母都大写,比如 Qt::Key_Sleep ,这里的 Qt 是名字空间,Key_Sleep 是 Qt 名字空间里的常量。
    • 类的属性/成员变量、成员函数、静态函数等名称一般以小写字母单词打头,名称里第二个单词开始用大写首字母,如 setText 函数。
    • 全局函数以及名字空间里的全局函数通常以 q 打头,后面接首字母大写的英文单词,比如 qSleep 函数,qAbs 函数(求绝对值),另外在 <QtGlobal> 头文件包含了一堆全局的类型、函数、宏等。
    • 全局的宏定义是单词字母全部大写,单词之间用下划线分隔,如 QT_VERSION(版本号 0xMMNNPP,MM = major,NN = minor,PP = patch,比如 0x050400)、Q_OS_WIN32(仅在 Windows 操作系统里定义)。


    对于上图里的函数名、常量名可以对比上面规则,基本是一致的,msleep、sleep、usleep 都是成员函数,它们的名称很短,只能算一个单词,所以都是小写字母。

    对于右侧void QTest::​qSleep(int ms)一行,怎么知道 QTest 是类名还是函数名呢?

    可以直接滚动页面到顶端,或者点击示例代码里的绿色 QTest 字样(注意示例代码明确用了QTest::前缀),打开链接,看到类似下面的帮助内容:


    查看 QTest 帮助页面开头的描述和该页面的标题,可以知道它是一个名字空间,根据上边的页内目录,可以看到它里面定义了一堆类、类型、函数、宏,另外还有 QTest 名字空间的详细描述,可以点击上边的“Detailed Description”或者帮助页第一段的“More ...”查看详细描述。

    在 QTest 帮助页顶头的简要描述之后,紧接着的就是该名字空间的头文件以及使用时需要的 Qt 模块,到这里就可以弄清楚我们使用 qSleep 函数时需要的一切依赖和步骤:

    • 包含头文件:#include <QTest>
    • pro文件里添加需要的模块:QT += testlib
    • 代码里调用函数:QTest::qSleep(250);


    其他 Qt 名字空间或类里面的函数用法都是类似的,一般都是上面示范的三个步骤,熟悉之后用起来就很方便。

    对于上图里的 Qt::Key_Sleep,这是个键盘按键定义,有些多媒体键盘带有休眠按键,该按键对应这个常量定义。 QStyle::SH_ToolTip_FallAsleepDelay 这个定义不管它,是工具提示风格里的。

    剩下三个函数的声明如下图所示:

    • msleep:毫秒级睡眠,是 QThread 类的公开静态成员函数。
    • sleep:秒级睡眠,也是 QThread 类的公开静态成员函数。
    • usleep:微秒级睡眠,也是 QThread 类的公开静态成员函数。

     


    这三个是静态成员函数,说明与具体对象无关,可以直接在代码里使用,如 QThread::sleep(1) 。QThread 类位于核心模块 core 里面,所以不需要额外添加 Qt 模块,包含它的头文件 <QThread> 就行了。使用 QThread 类里的睡眠函数要比 QTest 名字空间里的函数方便一些,而且功能也丰富一些。

    展开全文
  • matlab文本文件操作

    万次阅读 2017-10-28 14:40:44
    matlab 环境下操作文本文件文本文件简介众所周知,计算机中所有的信息是以二进制的方式存在。而计算机中的文件主要以两种方式存在,即二进制文件文本文件文本文件有字符组成而字符由相应的编码确定的二进制数据...

    matlab 环境下操作文本文件

    文本文件简介

    众所周知,计算机中所有的信息是以二进制的方式存在。而计算机中的文件主要以两种方式存在,即二进制文件和文本文件。

    文本文件有字符组成而字符由相应的编码确定的二进制数据表示,因此文本文件也可以看成是一种特殊的二进制文件。

    二进制数据与字符之间的映射关系就是所谓的编码。看一个 matlab 中的简单例子。代码如下:

    fid = fopen('test.txt','w');
    fprintf(fid,'%s','matlab 如何处理中文字符');
    fclose(fid);
    

    运行代码可以看到成功生成了 text.txt 文件。我们以 16 进制格式打开文件。看到如下数值:

      Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 	
    00000000: 6D 61 74 6C 61 62 20 C8 E7 BA CE B4 A6 C0 ED D6    matlab.Hg:N4&@mV
    00000010: D0 CE C4 D7 D6 B7 FB                               PNDWV7{
    

    查询相应的 ASCII 码表有:

    0x6D 0x61 0x74 0x6c 0x61 0x62
    字符 ‘m’ ‘a’ ‘t’
    展开全文
  • UltraReplace最新版是一款非常好用的超级批量文本替换工具,软件支持htm、html、asp、java等类型文件,可以帮助用户快速替换掉文件夹中的内容,非常方便实用。
  • 在把Excel导入到数据库中时,发生文本截断问题:即导入的数据每行只有一部分,遇到这样的问题,甚是尴尬,接下来介绍此问题的解决方法,感兴趣的朋友可以了解下,希望本文对你有所帮助
  • 接口需要用post application/x-www-form-urlencoded发送请求,返回类型是text/plain,刚开始的思路毫无思路,于是在网上找到thymeleaf,其作为springboot组成组件,可以在controller模式下返回文本类型,...
  • 几款制作帮助文档的工具汇总

    千次阅读 2020-11-04 17:09:07
    几款制作帮助文档的工具汇总 文章目录几款制作帮助文档的工具汇总为什么需要发布产品帮助文档支持在线用 MarkDown格式的编辑器1、[GitBook](https://www.gitbook.com/)2、[Docsify](https://docsify.js.org/)3、...
  • 此文发给一些遇到此种困难的新手,帮助他们快速解决这个不应该耗时间的问题。  有些新手会遇到写好的java源文件,在使用DOS命令编译源文件时,会返回如下错误信息:  在返回信息当中显示,“找不到文件:”...
  • matlab文件读取总结matlab的文件读取函数功能可以读取各种文件类型
  • 每种类型一个文件,不同类型的图像、文本、不可压缩数据、加密文件、zip、加密 zip 等等.. 帮助我们极客找到我们突然只需要我们的某个项目的测试文件。 其他数据集 这个test_files项目更多地是关于文件类型的。 我...
  • 文本是目前常见的文件格式之一,许多产品的说明书、使用帮助也都采用了这种格式。Delphi处理html文件有很多方式,也很方便稍加改进就可以编写...   1、 制作超文本帮助文件  制作超文本的工具很多(Dreamweaver
  • 文本处理

    千次阅读 2020-10-23 09:12:16
    所有类 Unix 的操作系统都非常依赖于被用于几种数据类型存储的文本文件。所以这很有道理, 有许多用于处理文本的工具。在这一章中,我们将看一些被用来“切割”文本的程序。在下一章中, 我们将查看更多的文本处理...
  • GDI+帮助文档

    2013-04-02 19:32:05
    文档组织 4 相关主题 4 GDI+的安全考虑 6 检验构造函数调用成功与否 6 分配缓冲区 6 错误校验 8 线程同步 9 相关主题 10 关于GDI+ 11 GDI+ 介绍 11 GDI+ 概览 11 GDI+ 的三个组成部分 11 基于类的接口...
  • 项目中一些特定的功能可能需要在页面中用到富文本编辑器来实现文件的输入上传等等,在这里用wangEditor来实现使用富文本编辑器进行文件图面的输入和上传保存,这里wangEditor也可以参考wangEditor使用文档 ...
  • 在python中我们经常要对文件进行操作,保存数据,或者读取数据。...1、写入文本文档,我们先用open以写入文本的格式打开文件,w代表以写入文本格式打开,然后调用write函数来写入我们要写入的值,最后我...
  • 用户可以修改受控词汇数据库,但它具有针对特定文件类型(例如论文、许可协议和网页)的默认设置。 去做 研究“自然语言处理” 添加“流程HTML” 创建用户界面系统 ##未来功能!## 源的复杂性检查器! 需要专业...
  • 一.摘要 当我们进行程序开发时,面对一个大型项目,需要多人分工合作,每人实现一个模块。当我们需要调用他人编写的模块时,...C#解析器可以把代码文件中的这些XML标记提取出来,并作进一步的处理为外部文档。在...
  • NLP之文本分类

    万次阅读 2018-09-26 15:08:07
    传统的文本分类是基于文本内容的,研究如何将文本自动划分成政治的、经济的、军事的、体育的、娱乐的等各种类型。 目录 文本表示 文本向量化 向量的相似性度量(similarity) 文本特征选择方法 特征权重计算...
  • HtmlHelp调用chm帮助文档使用

    千次阅读 2018-11-17 18:32:27
    HtmlHelp调用chm帮助文档使用
  • 如果您的Java程序包含文件,并且需要弄清它们的MIME类型,则此库会有所帮助。 用法 import org.overviewproject.mime_types.MimeTypeDetector // ... File file = new File ( " foo.txt " ); ...
  • 使用内容审核Python版本SDK包,需要您配置Python开发环境。从Python官网下载并安装合适的Python版本。...在PyCharm开发工具中配置Python环境,在菜单Python3是一种解释型、面向对象、动态数据类型的高级程序...
  • Python爬取数据存储到本地文本文件

    万次阅读 2018-12-25 23:11:55
    前面说过Python爬取的数据可以存储到文件、关系型数据库、非关系型数据库。前面两篇文章没看的,可快速戳这里查看!https://mp.weixin.qq.com/s/A-qry4r3ymuCLXLBTF6Ccw ... 而存储到文件的数据一般都具有时效性,例如...
  • -- 常用文件扩展名解释 A 对象代码库文件 AAM Authorware shocked文件 AAS Authorware shocked包 ABF Adobe二进制屏幕字体 ABK CorelDRAW自动备份文件 ABS 该类文件有时用于指示一个摘要(就像在一篇有关科学方面的...
  • * 文本编辑器——记事本类型的应用,可以打开、编辑、保存文本文档。 * 可以增加单词高亮和其它的一些特性。 * @author cscss * */ public class Editor extends JFrame{ public JTextPane textPane = new ...
  • 点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,麻烦点个在看或点个赞,感谢~工作与写公众号的时间仍在平衡中......今天和大家分享一个十六进制文本转成十六进制字符并存储到二进制...
  • 文本挖掘

    千次阅读 2019-09-29 17:15:15
    文本挖掘是抽取有效、新颖、有用、可理解的、散布在文本文件中的有价值知识,并且利用这些知识更好地组织信息的过程,是从文本数据中获取有价值的信息和知识,它是数据挖掘中的一种方法。文本挖掘中最重要最基本的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 278,635
精华内容 111,454
关键字:

帮助文件文本类型