我想以最小的努力取得巨大成果:如何在C#中为用VB编写的旧asp站点编写数据访问层和业务层.这方面的问题是在不使用Web服务或任何类型的字符串格式(例如XML)的情况下支持两种不同语言之间的自动键入.似乎这样做的唯一方法是用C#编写整个站点(意思是,转移到asp.net或asp.net MVC,因为这种升级在时间上是相同的,以便将整个站点更改为asp c#)或写作VB中的整个DAL和BLL(我不希望这样做).
提前致谢.
假设所有基于脚本的语言(例如VBscript和Powershell)每次都在客户机器上"嵌入"整个代码,我应该假设这个代码是"开放的"吗?我的意思是,有一些方法可以保护基于脚本的代码以便阅读(并因此写入)?
我正在使用VBScript,我想知道是否有任何方法可以调用存储在字符串变量中的函数名称?
这是我的尝试?
a = "b"
sub b()
msgbox "c"
end sub
a()
Run Code Online (Sandbox Code Playgroud)
但它总是会导致错误
类型不匹配'a'
我需要在当前工作表编号3的末尾添加Excel工作表.但是,当我运行以下程序时,我会在第一个位置获得一个工作表.我该如何解决这个问题?
该程序基本上将数据从一个Excel工作簿复制到另一个工作簿,由多个工作表组成.
码:
Dim objXL,objWrkBk,objWrkSht,a,n
Set objfso=CreateObject("Scripting.FileSystemObject")
Set objXL=CreateObject("Excel.Application")
Set objWrkBk=objXL.Workbooks.Open("C:\learning\demo.xlsx")
m=objWrkBk.Worksheets.count
msgbox m
For n=1 to m
Set objWrkBk=objXL.Workbooks.Open("C:\learning\demo.xlsx")
Set objWrkSht=objWrkBk.Worksheets("Sheet"&n)
columncount = objWrkSht.usedrange.columns.count
rowcount = objWrkSht.usedrange.rows.count
For i=1 to rowcount
For j=1 to columncount
If objWrkSht.cells(i,j).value <> "" Then
a= objWrkSht.cells(i,j).value& " "
End If
'Next
'Next
check=objfso.FileExists("C:\learning\demo1.xlsx")
If not check Then
objXL.Workbooks.Add
objXL.ActiveWorkbook.SaveAs("C:\learning\demo1.xlsx")
End If
Set objWrkBk1=objXL.Workbooks.Open("C:\learning\demo1.xlsx")
If n<=3 Then
Set objWrkSht1=objWrkBk1.Worksheets("Sheet"&n)
End If
If n>3 Then
objXL.Worksheets.add
Set objWrkSht1=objWrkBk1.Worksheets("Sheet"&n)
End If
If objWrkSht.cells(i,j).value <> "" Then …Run Code Online (Sandbox Code Playgroud) 我想知道如何在命令提示符中显示变量值.以下是vbs代码:
For i=0 To 10
// I should display this variable value in command prompt
Next
Run Code Online (Sandbox Code Playgroud)
如果我在循环内写Shell.run(a.bat),这将打开命令提示10次.
但我想在单个命令提示符中显示所有10个值.
我有一个vbscript函数需要字符串比较,其中一个/两个字符串可能包含一个通配符.不幸的是,strcomp("string1","string.*")=0对我来说不起作用,因为它正在进行比较并将.*正则表达式通配符视为文字而不是通配符.
如何比较两个字符串,其中一个和/或两个包含通配符?
功能:
Function webtableCheck(pageName, tableProperty, rowNum, colNum, checkValue)
Dim x, y, oD, oC
x = split(tableProperty,":=")
If checkValue <> "" Then
Set oD = description.Create
oD("micclass").value = "WebTable"
oD(x(0)).value = x(1)
Set oC = pageName.childobjects(oD)
y = oC(0).getcelldata(rowNum, colNum)
msgbox(y)
If y=checkValue Then
reporter.ReportEvent micPass, "WebTable Checkpoint", "The webtable checkpoint object """ & checkValue & """ was found."
Elseif **strcomp(y,checkValue,1)** = 0 Then
reporter.ReportEvent micPass, "WebTable Checkpoint", "The webtable checkpoint object """ & checkValue & …Run Code Online (Sandbox Code Playgroud) 例如:
Select Case (x)
Case 1
If ... Then
***Break***
End If
Response.Write( ... )
Case Else
Response.Write( ... )
End Select
Run Code Online (Sandbox Code Playgroud) 我正在寻找使用VBScript从MSI外部安装或不安装(无论哪个更快)解析MSI中文件的路径.
我找到了一个使用C#的类似查询而Christopher提供了一个解决方案,如下所示:我如何在C#中解析MSI路径?
我现在正经历着同样的痛苦,但无论如何都要使用VBScript中的WindowsInstaller对象实现这一点,而不是通过MSI来回的SQL表进行无休止的查询来实现相同的目的.虽然任何方向都会受到欢迎,因为我已经尝试过尽我所能,但成功非常有限.
您好我是使用以下代码从ASP页面发送邮件
Dim MyMail
Set MyMail = Server.CreateObject("JMail.SMTPMail")
MyMail.ServerAddress = ""
MyMail.Sender = "senderemail"
MyMail.AddRecipient "mail@mail.com"
MyMail.Subject = "Inquiry "
MyMail.Body = "<p>This is a response</p>"
MyMail.ContentType = "text/html"
MyMail.Execute
Set MyMail=nothing
Run Code Online (Sandbox Code Playgroud)
但它没有用.我收到了以下错误
Microsoft VBScript运行时错误"800a01ad"ActiveX组件无法创建对象
谁能帮帮我吗
我有一些正则表达式的经验,但已经有一段时间了.我写了一个复杂的表达式,试图匹配我认为无效的产品代码中的某些模式.我运行了几千个代码来验证它,我发现了一些不按预期运行的情况.
我把它缩小到一个特定的问题,我在下面以简化的方式介绍 - 这是我不理解的概念,而不是我正在使用的实际表达.我想找到以某种方式启动的代码,在中间包含可选组件(但如果它们确实存在,它们必须完全匹配某个模式 - 我不能只是贪婪地匹配任何东西),但是不能正确结束(应该结束于"d"但不是).顺便说一下,它通过Windows脚本主机在(gag)VBScript中实现.
^a(b)?(c)?(?!d$)
Run Code Online (Sandbox Code Playgroud)
应该匹配的事情:
不应该匹配的事情:
基本上,"ae"匹配正确,但任何一个或两个选项应该匹配时,它会导致整个匹配失败.我认为这与贪婪本性有关?但一直无法弄清楚如何让它发挥作用.同样,我不能使用类似下面的内容 - 如果组件存在于"a"和"e"之间,则它们必须完全是"b"或"c".
^a(?!.*d$)
Run Code Online (Sandbox Code Playgroud)
谢谢!
vbscript ×10
asp-classic ×2
regex ×2
batch-file ×1
break ×1
c# ×1
excel ×1
exit ×1
function ×1
jmail ×1
powershell ×1
protection ×1
readonly ×1