找回密码
 加入
搜索
查看: 12681|回复: 8

[系统综合] 有这么几行代码想写成自定义函数,怎么定义呢?

  [复制链接]
发表于 2014-8-3 21:26:25 | 显示全部楼层 |阅读模式

Local $doc = _MHDocGetObj()
                                        _MHNavigate($doc, $WebTextB2)
                                        ;解析iconfor跳转后的网页,找pdf_url下载
                                        $citation_pdf = _MHGetObjByName($doc, "citation_pdf_url")
                                        If IsObj($citation_pdf) Then
                                                $citation_pdf_url = $citation_pdf.content
                                                ToolTip($citation_pdf_url)
                                                $citation_pdf_urlAbout = StringLeft($citation_pdf_url, 6)
                                                If $citation_pdf_urlAbout = "about:" Then
                                                        $citation_pdf_urlAboutTemp = StringTrimLeft($citation_pdf_url, 6)
                                                        $citation_pdf_url = $citation_pdf_urlAboutTemp
                                                EndIf
                                                $citation_pdf_urlHttp = StringLeft($citation_pdf_url, 4)
                                                
                                                If $citation_pdf_urlHttp = "http" Then
                                                        $citation_pdf_urlFinal = $citation_pdf_url
                                                        $Filexz = $citation_pdf_urlFinal
                                                        $ok = 1
                                                        Local $file_ = FileOpen("日志记录.txt", 1);打开文件1写入 0读取 
                                                        FileWriteLine($file_, @YEAR & "-" & @MON & "-" & @MDAY & "  " & @HOUR & ":" & @MIN & ":" & @SEC & " " & $LRUN & " Else " & @CRLF);写入数据+换行
                                                        FileWriteLine($file_, 'http://paper.pubmed.cn/' & $id5 & @CRLF)
                                                        FileWriteLine($file_, $WebTextB2 & @CRLF);写入数据+换行
                                                        FileClose($file_)
                                                Else
                                                        IniWrite("karger.ini", "citation_pdf_url-notreg", $id5 & "." & $PubmedID, $WebTextB2)
                                                EndIf
                                                
                                        Else
                                                IniWrite("karger.ini", "Notcitation_pdf_url", $id5 & "." & $PubmedID, $WebTextB2)
                                        EndIf




发现里面有if,不一定能让$ok = 1,这样的话,怎么自定义函数和返回值呢?
 楼主| 发表于 2014-8-3 21:31:08 | 显示全部楼层
晕,我忘说了,需要返回两个变量的值
                                                        $Filexz = $citation_pdf_urlFinal

                                                        $ok = 1
这两个值,但是,不一定能要保证返回的两个值一定是数值,也有找不到的时候。
 楼主| 发表于 2014-8-3 22:13:01 | 显示全部楼层

Func _getPdfUrl($pUrl)
        
        Local $pdfUrlFinal[2]
        Local $doc = _MHDocGetObj()
        _MHNavigate($doc, $pUrl)
        ;解析iconfor跳转后的网页,找pdf_url下载
        $citation_pdf = _MHGetObjByName($doc, "citation_pdf_url")
        If IsObj($citation_pdf) Then
                $citation_pdf_url = $citation_pdf.content
                ToolTip($citation_pdf_url)
                $citation_pdf_urlAbout = StringLeft($citation_pdf_url, 6)
                If $citation_pdf_urlAbout = "about:" Then
                        $citation_pdf_urlAboutTemp = StringTrimLeft($citation_pdf_url, 6)
                        $citation_pdf_url = $citation_pdf_urlAboutTemp
                EndIf
                $citation_pdf_urlHttp = StringLeft($citation_pdf_url, 4)
                
                If $citation_pdf_urlHttp = "http" Then
                        $pdfUrlFinal[0] = $citation_pdf_url
                        $pdfUrlFinal[1] = 1
                Else
                        $pdfUrlFinal[0] = ""
                        $pdfUrlFinal[1] = 0
                        IniWrite("nopdfurl.ini", "citation_pdf_url-notreg", $id5 & "." & $PubmedID, $WebTextB2)
                EndIf
                
        Else
                $pdfUrlFinal[0] = ""
                $pdfUrlFinal[1] = 0
                IniWrite("nopdfurl.ini", "Notcitation_pdf_url", $id5 & "." & $PubmedID, $WebTextB2)
        EndIf
        Return $pdfUrlFinal
        
EndFunc   ;==>_getPdfUrl




这么写对吗?我自已试着写的,对不对?
发表于 2014-8-3 22:45:19 | 显示全部楼层
可以考虑 Return SetError(...), 更简洁些.
 楼主| 发表于 2014-8-4 09:12:41 | 显示全部楼层
可以考虑 Return SetError(...), 更简洁些.
user3000 发表于 2014-8-3 22:45



    seterror方法能说说怎么写吗,我不太明白。
发表于 2014-8-4 12:40:25 | 显示全部楼层
回复 5# sex123
Func _getPdfUrl($pUrl)
;.........
  If $citation_pdf_urlHttp = "http" Then
            Return SetError(0, 1,  $citation_pdf_ur)
   Else
     ;.........       
  EndIf
;............
  Return SetError(1, 0, '')
EndFunc
调用此函数后, 用宏@extended可以获取到另一个变量值: 0 或1.
发表于 2014-8-9 06:50:16 | 显示全部楼层
可以考虑byval
发表于 2014-8-9 09:34:11 | 显示全部楼层
需要返回多个值的话我一般同3楼一样用数组。
发表于 2014-8-11 09:27:27 | 显示全部楼层
路过学习一下啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-8 21:12 , Processed in 0.081102 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表