将函数的数据传递给另一个函数

时间:2016-06-19 20:01:42

标签: vbscript parameter-passing

如何将EliminaAcentos函数生成的数据传递给 这个脚本中有URLEncode个函数吗?

第一个函数删除变音符号,第二个函数对数据进行URL编码。

Function EliminaAcentos(texto)
    Dim i, s1, s2
    s1 = "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜàáâãäåçèéêëìíîïòóôõöùúûü"
    s2 = "AAAAAACEEEEIIIIOOOOOUUUUaaaaaaceeeeiiiiooooouuuu"
    If Len(texto) <> 0 Then
        For i = 1 To Len(s1)
            texto = Replace(texto, Mid(s1,i,1), Mid(s2,i,1))
        Next
    End If

    EliminaAcentos = texto
End Function

Function URLEncode(ByVal str)
    Dim strTemp, strChar
    Dim intPos, intASCII
    strTemp = ""
    strChar = ""

    For intPos = 1 To Len(str)
        intASCII = Asc(Mid(str, intPos, 1))
        If intASCII = 32 Then
            strTemp = strTemp & "+"
        ElseIf ((intASCII < 123) And (intASCII > 96)) Then
            strTemp = strTemp & Chr(intASCII)
        ElseIf ((intASCII < 91) And (intASCII > 64)) Then
            strTemp = strTemp & Chr(intASCII)
        ElseIf ((intASCII < 58) And (intASCII > 47)) Then
            strTemp = strTemp & Chr(intASCII)
        Else
            strChar = Trim(Hex(intASCII))
            If intASCII < 16 Then
                strTemp = strTemp & "%0" & strChar
            Else
                strTemp = strTemp & "%" & strChar
            End If
        End If
    Next

    URLEncode = strTemp
End Function

WScript.Echo URLEncode(WScript.Arguments(0))

1 个答案:

答案 0 :(得分:1)

基本上有两种方法可以解决这个问题:

  • 您可以将procedure TForm3.dxDateTimeWheelPicker2PropertiesChange(Sender: TObject); var myDate : TDateTime; begin myDate := datetimetostr(dxDateTimeWheelPicker2.DateTime); label1.Caption := formatdatetime('mm', myDate); end; 的来电嵌套在EliminaAcentos的来电中,建议@JosefZ

    URLEncode
  • 您可以将URLEncode(EliminaAcentos(WScript.Arguments(0))) 的调用嵌入EleminaAcentos函数的正文中:

    URLEncode

如果您遇到Function URLEncode(ByVal str) Dim strTemp, strChar Dim intPos, intASCII strTemp = "" strChar = "" str = EliminaAcentos(str) For intPos = 1 To Len(str) ... Next URLEncode = strTemp End Function 并且不希望删除变音符号,或者您不控制URLEncode的实现,则通常会选择第一个选项。如果您总是希望URLEncode删除变音符号并控制函数实现,则可以选择第二个选项。

旁注(@JosefZ也提到):按值将参数传递给URLEncode,因此函数调用不会无意中修改原始值。

EliminaAcentos