电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

使用文本文件txt进行数据存取的技巧总结相当

19页
  • 卖家[上传人]:鲁**
  • 文档编号:478618174
  • 上传时间:2022-08-05
  • 文档格式:DOC
  • 文档大小:46.02KB
  • / 19 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、使用文本文件 txt 进行数据存取的技巧总结 相当使用文本文件(.txt)进行数据存取的技巧总结由于本帖内容较多,部分转自他人的心得,因此,凡转贴的地方仅用-转-标注,原作者略去,在此对所有原作者表示感谢!特别说明:由于大家在I/O存取上以txt文件为主,且读取比存储更麻烦(存储的话fwrite,fprintf基本够用),因此下面的讨论主要集中在txt文件的读取上。除了标注了转之外,其余心得均出于本人经验之结果,欢迎大家指正、补充。一.基本知识:-转-1.二进制文件与文本文件的区别:将文件看作是由一个一个字节(byte)组成的,那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有位都用上了。这就是两者的区别;接着,第二个问题就是文件按照文本方式或者二进制方式打开,两者会有什么不同呢?其实不管是二进制文件也好,还是文本文件也好,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理也就不同。如果按照文本方式打开,在打开的时候会进行translate,将每个字节转换成ASCII码,而以按照二进制方式打开的话,则不

      2、会进行任何的translate;最后就是文本文件和二进制文件在编辑的时候,使用的方式也是不同的。譬如,你在记事本中进行文本编辑的时候,你进行编辑的最小单位是字节(byte);而对二进制文件进行编辑的话,最小单位则是位(bit),当然我们都不会直接通过手工的方式对二进制文件进行编辑了。从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种:ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:ASCII码:00110101 00110110 00110111 00111000十进制码:5 67 8共占用4个字节。ASCII码文件可在屏幕上按字符显示,例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。由于是按字符显示,因此能读懂文件内容。二进制文件是按二进制的编码方式来存放文件的。例如,数5678的存储形式为:00010110 00101110只占二个字节。二进制文件虽然也可在屏幕上显示,但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入

      3、输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。因此也把这种文件称作流式文件。2.文本模式(textmode)和二进制模式(binarymode)有什么区别?流可以分为两种类型:文本流和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符n,(如果以文本方式打开一个文件,那么在读字符的时候,系统会把所有的rn序列转成n,在写入时把n转成rn)。二进制流是非解释性的,一次处理一个字符,并且不转换字符。注:n一般会操作系统被翻译成行的结束,即LF(Line-Feed)r会被翻译成回车,即CR(Cariage-Return)对于文本文件的新行,在UNIX上,一般用n(LF)来表示,Mac上用r(CR)来表示,Windows上是用nr(CR-LF)来表示。通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器。如果用文本方式打开二进制文件,会把0D 0A自动变换成n来存在内存中。写入的时候反向处理。而二进制方式打开的话,就不会

      4、有这个过程。但是,Unicode/UTF/UCS格式的文件,必须用二进制方式打开和读写。-上述基础其实大可以略过,简言之,对用户来说:在matlab中存储成为二进制还是文本文件取决于fopen的方式,如果用wt,则存储为文本文件,这样用记事本打开就可以正常显示了;如果用w则存储为二进制文件,这样用记事本打开会出现小黑方块,要正常显示的话,可以用写字板或UltraEdit等工具打开。二.Matlab的I/O文件操作使用技巧和总结:1.Matlab支持的I/O文件(对应取/存操作)类型:(所有文件I/O程序不需要特殊的工具箱)(注:从上表可以看到,matlab不支持doc格式的文档存取(因为doc文档包含很多格式控制符),请改用txt或者dat格式)2.Matlab的I/O文件指南:以下是部分对应的中文译文:-转-本技术支持指南主要处理:ASCII,binary,and MAT files.要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键入以下命令:help iofun MATLAB中有两种文件I/O程序:high level and low level.High leve

      5、l 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。大多数情况下

      6、,语法相当简单。下面的例子用到数值由空格间隔的ASCII file sample_file.txt:1 54 16 85 43 26 86 84 32 190 78 76 59 81 23 Example:用LOAD and SAVE读写数据CODE:%Load the file to the matrix,M:M=load(sample_file.txt)%Add 5to M:M=M+5%Save Mto a.mat file calledsample_file_plus5.mat:save sample_file_plus5 M%Save Mto an ASCII.txt file calledsample_file_plus5.txt:save sample_file_plus5.txt M-ascii UIGETFILE/UIPUTFILE UIGETFILE/UIPUTFILE是基于图形用户界面(GUI)的。会弹出对话框,列出当前目录的文件和目录,提示你选择一个文件。UIGETFILE让你选择一个文件来写(类似Windows另存为选项?)。用UIGETFILE,可以选择已存在

      7、的文件改写,也可以输入新的文件名。两个函数的返回值是所选文件名和路径。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 filefname,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 afile heade

      8、r.This is file is an example.col1 col2 col3 col4 A1 4612.000 B1 4613.000 C1 4614.000 D1 4615.000 Example:Using IMPORTDATA to read in afile with headers,text,and numeric data CODE:%This reads in the filesample_file2.txtand creates a%structure Dthat contains both data and text data.%Note the IMPORTDATA command specifies awhite 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的数据和文本域,来看结构

      9、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 acell 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 aline%This command uses the cell array created in Example 1to%read in each word of line 28 infileto acell array,words words=strrea

      《使用文本文件txt进行数据存取的技巧总结相当》由会员鲁**分享,可在线阅读,更多相关《使用文本文件txt进行数据存取的技巧总结相当》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.