1

好吧,我陷入了一个问题。我有一个需要在 C#.NET 中转换的 VBscript 脚本(VB.NET 也可以)。我是编程新手,不知道怎么做?一种传统的方法是用 C# 编写相同的方法。但我的时间少了一点。有没有转换器或者有人可以给我一个开始吗?请建议我从哪里开始。它实际上是一个名为 lectora 的电子学习软件,我需要将值从 lectora 传递到我的数据库。
任何帮助将不胜感激。谢谢你。这是我的 VBscript 代码。

Sample ASP Script
<%@ Language=VBScript %>
<%
'Get the parameters posted from the test'
testname=Request.form("TestName")
score=Request.form("Score")
user=Request.form("name")
numQuestions=Request.form("NumQuestions")
passingGrade=Request.form("PassingGrade")
'Validate that this is actually from a Lectora test'
if testname="" Or score="" Or user="" Or numQuestions="" Or passingGrade="" then
 Response.Write "<html>"
 Response.Write "<head><title>Failure</title></head>"
Response.Write "<body>"
Response.Write "STATUS=500"
Response.Write "<br>"
Response.Write "Could not parse test results due to a parameter error."
Response.Write "</body></html>"
else
'Write the results to a file named the same as the test'
'This could be a database or any kind of object store, but'
'to keep it simple, we will just use a flat text file'
 fileName = "c:\" & testname & ".log"

'Open the results file for append'
 Const ForReading = 1, ForWriting = 2, ForAppending = 8

 Set objFSO = CreateObject("Scripting.FileSystemObject")

 if not objFSO.FileExists(fileName) then
  objFSO.CreateTextFile(fileName)
 end if

 Set objInFile = objFSO.OpenTextFile( fileName, ForAppending, True )

 'Write the results'
 objInFile.WriteLine( Date & ", " & Time & ", " & user & ", " & score )

  'Older courses produced by Lectora used a zero based index for the questions '
  '(i.e. Question0 is the first question)'
  'Newer courses are one based (i.e. Question1 is the first question)'
  'determine which one it is'
  Dim startIndex
  valTemp = Request.form("Question0")
  if( valTemp="" ) then
    startIndex=1
  else
    startIndex=0
  end if

  'Write all of the questions and answers'
   for i = startIndex to cint(startIndex + numQuestions-1)
     nameQ = "Question" + CStr(i)
     nameA = "Answer" + CStr(i)
     valQ = Request.form(nameQ)
     valA = Request.form(nameA)
     objInFile.WriteLine( nameQ & ": " & valQ )
     objInFile.WriteLine( nameA & ": " & valA )
    Next

    'Close results file'
     objInFile.Close
     Set objInFile = Nothing
      Set objFSO = Nothing
      end if 
      %>
4

1 回答 1

2

我会将代码直接复制到 vb.net 中,然后对其进行调试。大多数代码是兼容的。有些东西,比如Set objFSO = CreateObject("Scripting.FileSystemObject")只需要稍作修改:(objFSO = new Scripting.FileSystemObject尽管有更现代的方法来完成文件 io)。

于 2013-10-08T15:06:51.460 回答