king8462 发表于 2013-12-1 20:50:23

[已解决]判断字符串是否相同失败

本帖最后由 king8462 于 2013-12-2 13:15 编辑

从文本文档中逐行读取字符串,然后与ini中的字段循环比较,如果相同则进行后续命令,但字符串明明相同却无法运行后续命令。

文本内容:
1.鲁迅的第一篇白话文小说是《狂人日记》
2.古文经学主张文化创新和社会改革
3.重农抑商是中国历代封建王朝最基本的经济指导思想

ini文件内容:

《四库全书》汇集了从唐代到清朝的历代主要典籍=错
鲁迅的第一篇白话文小说是《狂人日记》=对
古文经学主张文化创新和社会改革=错

代码如下:
;搜索判断题题目并对比答案。
$file = FileOpen("D:/desktop/2.txt")
For$i=1 To 3
   $line = FileReadLine($file,$i)
        $t=StringTrimLeft($line, 2)
        answer()
Next               



Func answer()
        $var = IniReadSectionNames(@ScriptDir & "\2.ini")
For $i = 1 To $var
       $var1 = IniReadSection(@ScriptDir & "\2.ini", $var[$i])
For $a = 1 To $var1
;MsgBox(0,"1",$var1[$a]&$t)
If$var1[$a] ==$t Then
MsgBox(0,"2",$var1[$a])               
$cd=$var1[$a]
EndIf       
Next                               
Next
EndFunc

user3000 发表于 2013-12-2 00:30:11

Func answer()
Local $i
;....

afan 发表于 2013-12-2 11:39:17

_Answer('2.txt', '2.ini')

Func _Answer($File, $File_as)
        Local $aline = StringRegExp(FileRead($File), '(?m)^\h*\d+\.\h*(\V+?)\s*$', 3)
        If Not IsArray($aline) Then Exit MsgBox(48, '退出', '无试卷载入')
        For $i = 0 To UBound($aline) - 1
                Local $sAnswer = IniRead($File_as, 'answers', $aline[$i], '无该题')
                MsgBox(0, $aline[$i], $sAnswer)
        Next
EndFunc   ;==>_Answer

king8462 发表于 2013-12-2 13:13:48

多谢版主!正则太厉害了。连同第10题以后取题目的问题都帮我解决了。
页: [1]
查看完整版本: [已解决]判断字符串是否相同失败