- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我知道这听起来倒退,但我必须将其从 C# 转换为经典 ASP。我不懂任何 VBScript,所以我需要帮助。
在我的 C# 代码中,它读取配置文件中的 appkeys,解析它们,并使用循环来执行一个过程。我不知道如何在 VBScript 中执行字典和 I/O 操作。有人可以帮忙吗?
这些是我想我必须作为常量变量存储在 .asp 文件中的键:
<add key="Output.Size" value="550" />
<add key="Output.Ext" value=".jpg" />
<add key="Output.Folder" value="thumbs" />
<add key="Suffix.LG" value="750" />
<add key="Suffix.TN" value="250" />
<add key="Suffix.TNL" value="175" />
<add key="Suffix.TNR" value="75" />
<add key="Supported" value=".jpeg,.jpg,.gif,.bmp,.tiff,.png" />
这是 C# 代码:
Generate generate = new Generate();
generate.Process(source, destination); //inputs will be relative URL paths
public class Generate
{
private const string OUTPUT_SIZE_KEY = "Output.Size";
private const string OUTPUT_EXT_KEY = "Output.Ext";
private const string SUFFIX_KEY = "Suffix.";
private const string SUPPORTED_KEY = "Supported";
private string[] supportedExt = null;
public Generate()
{
//GET ALL SUPPORTED FORMAT TYPES TO PREVENT PROCESSING ON UNSUPPORTED FILES
supportedExt = ConfigurationManager.AppSettings[SUPPORTED_KEY].ToLower().Split(',');
}
public void Process(string sourceDir, string destDir)
{
int thumbSize = Int32.Parse(ConfigurationManager.AppSettings[OUTPUT_SIZE_KEY]);
string thumbExt = ConfigurationManager.AppSettings[OUTPUT_EXT_KEY];
//COLLECT VALUES FOR RESIZING
Dictionary<string, int> resizeValues = new Dictionary<string, int>();
foreach (string item in ConfigurationManager.AppSettings.AllKeys)
{
if (item.StartsWith(SUFFIX_KEY))
{
resizeValues.Add(item.Substring(SUFFIX_KEY.Length), Int32.Parse(ConfigurationManager.AppSettings[item]));
}
}
//BEGIN GENERATING THUMBS
foreach (string item in Directory.GetFiles(sourceDir))
{
//VALIDATE IF FILE TYPE SUPPORTED
if (!supportedExt.Contains(Path.GetExtension(item.ToLower())))
continue;
string fileName = Path.GetFileNameWithoutExtension(item);
string outputFile = Path.Combine(destDir, fileName + thumbExt);
//RESIZE TO THUMB
Resize(item, outputFile, thumbSize); //DO NOT HAVE TO CONVERT "RESIZE"
//RESIZE TO DIFFERENT THUMBS
foreach (KeyValuePair<string, int> output in resizeValues)
{
string thumbSeq = Path.Combine(destDir, fileName + output.Key + thumbExt);
Resize(item, thumbSeq, output.Value); //DO NOT HAVE TO CONVERT "RESIZE"
}
}
}
更新:按照下面的建议,我转换为 VB 以便于翻译。看来我也得重新考虑一下了。这是我所在的位置,但出现错误:
<html>
<head>
<title></title>
</head>
<body>
<%
'DECLARE VARIABLES
Dim outputSize
Dim outputExt
Dim outputSuffix()
Dim supported
Dim source
Dim destination
'INITIALIZE VALUES
outputSize = 550
outputExt = ".jpg"
outputSuffix(0) = "LG.750"
outputSuffix(1) = "TN.250"
outputSuffix(2) = "TNL.175"
outputSuffix(3) = "TNR.75"
supported = ".jpeg,.jpg,.gif,.bmp,.tiff,.png"
source = "catalog/upload"
destination = "catalog"
'CALL FUNCTION TO RESIZE THUMBNAILS
Dim generate
generate = New ThumbGenerator
generate.Process source, destination
'PROCESS TO RESIZE
class ThumbGenerator
Dim supportedExt
Public Sub Process(sourceDir, destDir)
Dim thumbSize
Dim thumbExt
thumbSize = outputSize
thumbExt = outputExt
supportedExt = supported.ToLower().Split(",")
'COLLECT VALUES FOR RESIZING
Dim resizeValues
resizeValues = Dictionary(String, Integer)()
For Each item As String In outputSuffix
Dim temp
temp = item.Split(".")
resizeValues.Add(temp(0), temp(1))
Next
'BEGIN GENERATING THUMBS
For Each item As String In Directory.GetFiles(sourceDir)
'VALIDATE IF FILE TYPE SUPPORTED
If Not supportedExt.Contains(Path.GetExtension(item.ToLower())) Then
Continue For
End If
Dim fileName
Dim outputFile
fileName = Path.GetFileNameWithoutExtension(item)
outputFile = Path.Combine(destDir, fileName + thumbExt)
'RESIZE TO THUMB
'Resize(item, outputFile, thumbSize)
'RESIZE TO DIFFERENT THUMBS
For Each output As KeyValuePair(Of String, Integer) In resizeValues
Dim thumbSeq As String = Path.Combine(destDir, fileName + output.Key + thumbExt)
'Resize(item, thumbSeq, output.Value)
Next
Next
End Sub
End Class
%>
</body>
</html>
这是我遇到的错误:
Microsoft VBScript compilation error '800a03ea'
Syntax error
/sandbox/aspjpeg/Default.asp, line 45
resizeValues = Dictionary(String, Integer)()
----------------------------------^
最佳答案
您需要重新考虑您正在做的很多事情。 .Net 不会逐行翻译成 vbscript,甚至不会逐个类/模块翻译成 vbscript。您必须查看 ASP.Net 实际在做什么,并弄清楚如何在 vbscript 中执行此操作。
vbscript 的一个技巧是,与其乱用 vbscript 文件 io 来处理配置文件,我发现通过在单独的文件中定义这些变量来处理配置数据要容易得多,然后将这些变量包含在其他地方。然后您可以像使用其他变量一样使用该数据。
关于c# - 将此 C# 代码转换为经典 ASP/VBScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3646069/
本文实例总结了常用SQL语句优化技巧。分享给大家供大家参考,具体如下: 除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQL性能问题发生。 ①通过变量的方式来设置参数 好:
写CSS的同学们往往会体会到,随着项目规模的增加,项目中的CSS代码也会越来越多,如果没有及时对CSS代码进行维护,CSS代码不断会越来越多。CSS代码交错复杂,像一张庞大的蜘蛛网分布在网站的各个位
所以我必须解决类的背包问题。到目前为止,我想出了以下内容。我的比较器是确定两个主题中哪一个是更好选择的函数(通过查看相应的(值,工作)元组)。 我决定迭代工作量小于 maxWork 的可能主题,并且为
前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级
代码如下: 复制代码代码如下: USE [tempdb] GO /****** Object: UserDefinedFunction [dbo].[fun
最近收到一个工作要求,让我完成一个每天一次的Linux服务器巡检工作(服务器的版本为红帽6.4),不可以使用监控软件来操作。在这里,把我的巡检过程和巡检脚本放送给大家做一参考。 首先,巡检内容
可以在 Classic ASP 中动态创建“空”对象并创建对象属性吗? 以这个 JavaScript 示例为例: var sample = new Object(); sample.prop = "O
我正在向旧的经典 asp 站点添加功能,但遇到了一个有趣的问题。页面上的以下行导致有用的错误“需要对象:''” strServerName = Request.ServerVariables("ser
我有一个经典的 ASP 应用程序,我正在处理日期截止。我的服务器位于中部时间,但我在东部时间。发生的情况是我的应用程序认为它早了一个小时,而我的截止时间晚了一个小时。我敢肯定,如果用户在太平洋时间,他
我是经典 ASP 的初学者。需要拆分一个由逗号分隔的许多电子邮件组成的字符串,并使用稍后生成的附加代码将结果插入(逐个电子邮件)到表格中。每条记录都应该有一个电子邮件地址。问题是我陷入了数组范围错误。
这个问题已经有答案了: one condition, multiple events (2 个回答) 已关闭 6 年前。 如何用更小的语句替换 1,2,3..。我尝试将 1 放入 10,但显示错误。
我是 ExtJS 的新手,所以我不知道是否可能。 Google 只回答如何为图表制作工具提示,所以... 我需要制作一个带有工具提示的网格,当用户将鼠标放在单元格上时将显示该工具提示。在该工具提示中,
我正在使用一个非常奇怪的 VB 版本...它不需要我告诉它什么是什么,它想自己弄清楚。 在 C# 中,我可以轻松地对数组进行硬编码...在 VB 中则不然。 我想在调用函数时创建一个硬编码数组...但
我的数据库访问代码如下: set recordset = Server.CReateObject("ADODB.Recordset") set cmd1 = Server.CreateObject(
我有 html 按钮和文本框的代码:文本框是我输入文本的地方,以便我可以在表格上进行一些更改。 'textbox " /> 'button Clear 我现在需要做的是单击“清除”按
我有一个表单,提交后会通过电子邮件发送。该表单使用 JavaScript 进行验证。经典 ASP 处理表单,即获取输入的数据、创建然后发送电子邮件。有报道称正在提交空白表格。仅发送标题和 Logo 。
加载页面 A.asp 默认情况下正在执行,从那里开始执行电子邮件的情况,如果是电子邮件,我们将调用页面 B。我想在控件被执行时执行相同的电子邮件情况从页面 B 转移到页面 A。请帮助我。 Page A
我正在使用经典 ASP 开发一个项目,例如,我想添加一些用户作为临时列表,当我提交表单时,这些数据将保存到数据库中。 我知道如何在 asp.net 中使用它,但不知道如何在经典 asp 中使用它。 例
我有一个带有简单 html 表的经典 ASP 页面,我想根据从数据库中提取的未知数量的记录循环表行,但是,当我使用 do/while 循环循环记录时,我收到一条错误消息,指出 Either BOF o
嘿,一直在寻找一段时间,但我似乎找不到任何有关如何在经典 asp 中处理日期的信息。 现在,我需要一种方法来计算今年过去的天数。我正在考虑一个简单的函数,它将获取当前日期,然后使用 (day = 1,
我是一名优秀的程序员,十分优秀!