帮助将一些经典asp代码转换为c#(.NET3.5)

帮助将一些经典asp代码转换为c#(.NET3.5),c#,asp-classic,C#,Asp Classic,我在一个.asp文件中有这段代码,我正在努力将它转换为c#。。。有人能帮我吗 Function EncodeCPT(ByVal sPinCode, ByVal iOfferCode, ByVal sShortKey, ByVal sLongKey) Dim vob(2), encodeModulo(256), decodeX, ocode decodeX = " abcdefghijklmnopqrstuvwxyz0123456789!$%()*+,-.@;<=>?[

我在一个.asp文件中有这段代码,我正在努力将它转换为c#。。。有人能帮我吗

Function EncodeCPT(ByVal sPinCode, ByVal iOfferCode, ByVal sShortKey, ByVal sLongKey)
    Dim vob(2), encodeModulo(256), decodeX, ocode
    decodeX = " abcdefghijklmnopqrstuvwxyz0123456789!$%()*+,-.@;<=>?[]^_{|}~"
    if len(iOfferCode) = 5 then
        ocode = iOfferCode Mod 10000
    else
        ocode = iOfferCode
    end if
    vob(1) = ocode Mod 100
    vob(0) = Int((ocode-vob(1)) / 100)
    For i = 1 To 256
        encodeModulo(i) = 0
    Next
    For i = 0 To 60
        encodeModulo(asc(mid(decodeX, i + 1, 1))) = i
    Next
    'append offer code to key
    sPinCode = lcase(sPinCode) & iOfferCode
    If Len(sPinCode) < 20 Then
        sPinCode = Left(sPinCode & " couponsincproduction", 20)
    End If
    'encode
    Dim i, q, j, k, sCPT, s1, s2, s3
    i = 0
    q = 0
    j = Len(sPinCode)
    k = Len(sShortKey)
    sCPT = ""
    For i = 1 To j
        s1 = encodeModulo(asc( mid(sPinCode, i, 1)) )
        s2 = 2 * encodeModulo( asc( mid(sShortKey, 1 + ((i - 1) Mod k), 1) ) )
        s3 = vob(i Mod 2)
        q = (q + s1 + s2 + s3) Mod 61
        sCPT = sCPT & mid(sLongKey, q + 1, 1)
    Next
    EncodeCPT = sCPT
End Function
函数编码CPT(ByVal sPinCode、ByVal iOfferCode、ByVal sShortKey、ByVal sLongKey)
Dim vob(2)、编码模(256)、解码X、ocode
decodeX=“abcdefghijklmnopqrstuvwxyz012456789!$%()*+,-.@;?[]^{}”
如果len(iOfferCode)=5,则
ocode=iOfferCode模块10000
其他的
ocode=iOfferCode
如果结束
vob(1)=ocode模块100
vob(0)=整数((ocode vob(1))/100)
对于i=1到256
模数(i)=0
下一个
对于i=0到60
编码模(asc(mid(decodeX,i+1,1))=i
下一个
'将提供代码附加到密钥
sPinCode=lcase(sPinCode)&iOfferCode
如果Len(sPinCode)<20,则
sPinCode=左侧(sPinCode和“couponsincproduction”,20)
如果结束
'编码
尺寸i、q、j、k、sCPT、s1、s2、s3
i=0
q=0
j=Len(自旋码)
k=长(短键)
sCPT=“”
对于i=1到j
s1=编码模(asc(mid(自旋码,i,1)))
s2=2*encodeModulo(asc(中间(短键,1+((i-1)模k),1)))
s3=vob(i模块2)
q=(q+s1+s2+s3)模式61
sCPT=sCPT和mid(斯隆基,q+1,1)
下一个
EncodeCPT=sCPT
端函数

这里的代码似乎是相当标准的VBScript代码

也许你可以看一些C#教程来获得基础知识,或者用VB.NET代替C#

语法与VBScript几乎相同,但请记住,.NET framework是面向对象的,因此某些功能的实现方式不同

例如,如果要获取字符串的长度,可以使用myString.length而不是Len(myString)

这里有一些C#和VB.NET教程供您参考


整个转换过程让我很困惑。。。它使用了一些我找不到等效c#代码的函数。你找不到哪些函数?问一些具体的问题,你会得到具体的答案。你有没有试过把它通过vb.net转换成c-sharp?这应该被标记为vb而不是asp classic?在这里看不到任何特定于asp的内容。@xoail,您应该包含一些示例输入/输出,以便有人在为您重写转换时可以确认转换是否正常工作@yodaj007我同意你的看法,这确实是vbscript特有的。