touch_xu 发表于 2010-10-27 11:35:47

【已解决】正则返回数组异常处理问题

本帖最后由 touch_xu 于 2010-11-6 00:54 编辑

$_IDReadLineOne = FileReadLine(xtC:\Flextest\mainmenu.cfg\Station_ID.txt, 1)
$_StationNO=StringRegExp($_IDReadLineOne, "\d{1,3}", 1)
msgbox(0,0,$_StationNO)
Station_ID.txt第一行是Color 52 相关内容
问题是如果存在msgbox()能提示2,但是如果Station_ID.txt不存在,就是错误什么无效数组,
请求大家如何解决的,谢谢

allchn 发表于 2010-10-27 11:50:22

文件不存在的时候,FileReadLine肯定失效呀,这样得到的应该不是数组,简单数据模型不预先区分变量类型
应该在执行这些之前检测文件存在与否

afan 发表于 2010-10-27 12:12:57

第3行 If Not @Error Then MsgBox(0, 0, $_StationNO)

阿米啦啦 发表于 2010-10-27 14:04:35

写程序要考虑很多很多..比方这个,,你就要判断..如果文件不存在时..文件为空时.要怎么处理..
一般我都会这样写
$__File = "C:\Flextest\mainmenu.cfg\Station_ID.txt"
If FileExists($__File) Then
        $_IDReadLineOne = FileReadLine($__File, 1)
        If $_IDReadLineOne Then
                $_StationNO = StringRegExp($_IDReadLineOne, "\d{1,3}", 1)
                If Not @Error Then MsgBox(0, 0, $_StationNO)
        Else
                MsgBox(0, $__File &" 文件第1行", "为空")
    EndIf
       
Else
    MsgBox(0, $__File &" 文件", "不存在")
EndIf

rho123 发表于 2010-10-28 16:46:50

呵呵 4楼正解。。

kingfirekkk 发表于 2010-10-28 19:17:51

4楼正解,一般都要考虑到多方面的....等于怎么办,不等于怎么办

touch_xu 发表于 2010-11-6 00:54:38

是的,我改过了,谢谢.
页: [1]
查看完整版本: 【已解决】正则返回数组异常处理问题