热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

循环读取文本文件时遇到的常见错误及解决方法

在循环读取文本文件时,经常会遇到一些常见的错误,如日期格式不正确、文件路径错误等。本文详细分析了这些问题,并提供了具体的解决方法,包括如何正确处理日期字符串和确保文件路径的准确性。通过这些方法,可以有效提高数据读取的稳定性和可靠性。

a = '20120203'year = fix(strmid(a,0,4))month = fix(strmid(a,4,2))day = fix(strmid(a,6,2))file = 'C:\Users\Administrator\Desktop\青藏高原雪深数据集1961-2013\青藏高原雪深数据集1961-2013\Tibetan_Plateau_Snow_Depth_1961-2013\52868.txt'cnt = file_lines(file);make_array int int int;openr,lun,file,/get_lunopenr,lun,file,/get_lunfor i = 0 , cnt-1 do beginreadf,lun,c,y,m,d,ddif fix(y) eq year and fix(m) eq month and fix(d) eq day then beginprint,ddendifendforfree_lun,lun

单个读取的时候就没错批处理循环就会报错

1、解决报错

2、降低复杂度

bug消失,不知道之前那种为啥一直报错,应该是读取 readf,lun,c,y,m,d,dd这句的问题

a = '20120203'year = fix(strmid(a,0,4))month = fix(strmid(a,4,2))day = fix(strmid(a,6,2))file = 'C:\Users\Administrator\Desktop\青藏高原雪深数据集1961-2013\青藏高原雪深数据集1961-2013\Tibetan_Plateau_Snow_Depth_1961-2013\'files = file_search(file,'*.txt',count=cnt)for i=0,cnt-1 do beginopenr,lun,files[i],/get_lunn = file_lines(files[i])temp=''for j = 0 , n-1 do beginreadf,lun,temphelp,temp[0]print,temp[0];readf,lun,c,y,m,d,ddtem = strsplit(temp[0],' ',/extract)help,tem; if fix(y) eq year and fix(m) eq month and fix(d) eq day then begin
; print,dd
; endif; if fix(temp[1]) eq year and fix(temp[2]) eq month and fix(temp[3]) eq day then begin
; print,temp[4]
; endifendforfree_lun,lunendfor

 这种是直接按行读取,出来是字符串数组,取第一个进行分割处理

还有一种想法是全部读取到数组中,然后进行查找

还有就是修改readf,lun,c,y,m,d,dd,控制一下格式

pro tib_testCOMPILE_OPT IDL2,hiddene=envi(/headless)
; file = 'E:\data\BT\bt_500\FY3B_MWRID_GBAL_L1_20130102_2020_010KM_MS_result.tif'
; ;E:\data\wendu_lc_500_dem\A20121220.tif
; ;根据bt的日期构造温度文件名,打开,站点坐标转温度文件坐标 xf_t yf_t 文件号fid_bt
; ;下面站点循环构造dim_t
; t_name = strsplit(file,'_',/extract)
; t_file = 'E:\data\wendu_lc_500_dem\A'+t_name[5]+'.tif'
; temp = t_name[5]
; print,strmid(temp,0)
; print,t_file
; envi_open_file,t_file,r_fid = t_fid
; print,t_fid ; fn='C:\Users\Administrator\Desktop\tibtation.csv';
; data=READ_CSV(fn,count=nsta,header=header);
; point_fid=data.(0);
; id=data.(1);站点纬度
; print,id[0]
; help,id; pos = 0
; cnt = replicate(0,20)
; path = 'C:\Users\Administrator\Desktop\青藏高原雪深数据集1961-2013\青藏高原雪深数据集1961-2013\Tibetan_Plateau_Snow_Depth_1961-2013'
; files = file_search(path,'*.txt',count=n)
; print,n
; for i = 0 , n - 1 do begin
; ;openr,lun,files[i],/get_lun
; ;print,files[i],file_lines(files[i])
; if file_lines(files[i]) eq 19358 then begin
; cnt[pos] =
; endif
; endfor
; file = 'C:\Users\Administrator\Desktop\青藏高原雪深数据集1961-2013\青藏高原雪深数据集1961-2013\Tibetan_Plateau_Snow_Depth_1961-2013\52868.txt';openr,lun,file,/get_lun;file_lines;free_lun,luna = '20120203'year = fix(strmid(a,0,4))month = fix(strmid(a,4,2))day = fix(strmid(a,6,2))file = 'C:\Users\Administrator\Desktop\青藏高原雪深数据集1961-2013\青藏高原雪深数据集1961-2013\Tibetan_Plateau_Snow_Depth_1961-2013\'files = file_search(file,'*.txt',count=cnt)for i=0,cnt-1 do beginopenr,lun,files[i],/get_lunn = file_lines(files[i]);temp=''for j = 0 , n-1 do begin;readf,lun,temp;help,temp[0];print,temp[0]; readf,lun,format='(i6,i5,i3,i3,i1)',c,y,m,d,dd
; print,c,y,m,d,ddreadf,lun,c,y,m,d,dd;print,c,y,m,d,dd;tem = strsplit(temp[0],' ',/extract);help,temif fix(y) eq year and fix(m) eq month and fix(d) eq day then beginprint,ddendif; if fix(temp[1]) eq year and fix(temp[2]) eq month and fix(temp[3]) eq day then begin
; print,temp[4]
; endifendforfree_lun,lunendfor;make_array int int int;openr,lun,file,/get_lunend

。。。知道了

bug是long 


推荐阅读
  • 深入解析 ELF 文件格式与静态链接技术
    本文详细探讨了ELF文件格式及其在静态链接过程中的应用。在C/C++代码转化为可执行文件的过程中,需经过预处理、编译、汇编和链接等关键步骤。最终生成的可执行文件不仅包含系统可识别的机器码,还遵循了严格的文件结构规范,以确保其在操作系统中的正确加载和执行。 ... [详细]
  • 深入解析 UIImageView 与 UIImage 的关键细节与应用技巧
    本文深入探讨了 UIImageView 和 UIImage 的核心特性及应用技巧。首先,详细介绍了如何在 UIImageView 中实现动画效果,包括创建和配置 UIImageView 实例的具体步骤。此外,还探讨了 UIImage 的加载方式及其对性能的影响,提供了优化图像显示和内存管理的有效方法。通过实例代码和实际应用场景,帮助开发者更好地理解和掌握这两个重要类的使用技巧。 ... [详细]
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • 本文详细解析了 MySQL 5.7.20 版本中二进制日志(binlog)崩溃恢复机制的工作流程。假设使用 InnoDB 存储引擎,并且启用了 `sync_binlog=1` 配置,文章深入探讨了在系统崩溃后如何通过 binlog 进行数据恢复,确保数据的一致性和完整性。 ... [详细]
  • Java集合框架特性详解与开发实践笔记
    Java集合框架特性详解与开发实践笔记 ... [详细]
  • 【并发编程】全面解析 Java 内存模型,一篇文章带你彻底掌握
    本文深入解析了 Java 内存模型(JMM),从基础概念到高级特性进行全面讲解,帮助读者彻底掌握 JMM 的核心原理和应用技巧。通过详细分析内存可见性、原子性和有序性等问题,结合实际代码示例,使开发者能够更好地理解和优化多线程并发程序。 ... [详细]
  • 本文介绍了如何通过掌握 IScroll 技巧来实现流畅的上拉加载和下拉刷新功能。首先,需要按正确的顺序引入相关文件:1. Zepto;2. iScroll.js;3. scroll-probe.js。此外,还提供了完整的代码示例,可在 GitHub 仓库中查看。通过这些步骤,开发者可以轻松实现高效、流畅的滚动效果,提升用户体验。 ... [详细]
  • 深入解析:使用C++实现Python字节数组(struct)的高效处理方法 ... [详细]
  • C#编程指南:实现列表与WPF数据网格的高效绑定方法 ... [详细]
  • 可转债数据智能抓取与分析平台优化
    本项目旨在优化可转债数据的智能抓取与分析平台。通过爬取集思录上的可转债信息(排除已发布赎回的债券),并结合安道全教授提出的三条安全线投资策略,新增了建仓线、加仓线和重仓线,以提供更精准的投资建议。 ... [详细]
  • SQLmap自动化注入工具命令详解(第28-29天 实战演练)
    SQL注入工具如SQLMap等在网络安全测试中广泛应用。SQLMap是一款开源的自动化SQL注入工具,支持12种不同的数据库,具体支持的数据库类型可在其插件目录中查看。作为当前最强大的注入工具之一,SQLMap在实际应用中具有极高的效率和准确性。 ... [详细]
  • 在该项目中,参与者需结合历史使用模式和天气数据,以预测华盛顿特区自行车共享系统的租赁需求。数据分析部分首先涉及数据的收集,包括用户骑行记录和气象信息,为后续模型构建提供基础。通过深入的数据预处理和特征工程,确保数据质量和模型准确性,最终实现对自行车租赁需求的有效预测。 ... [详细]
  • voc生成xml 代码
    目录 lxmlwindows安装 读取示例 可视化 生成示例 上面是代码,下面有调用示例 api调用代码,其实只有几行:这个生成代码也很简 ... [详细]
  • 在Laravel中实现PHP对JSON数据的发布与处理 ... [详细]
author-avatar
爱这奋斗
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有