2

我继承了一个项目,该项目有一个非常奇怪的怪癖,我想解决这个问题。该项目有一个网络表单,用户在其中键入数据,然后单击“提交”按钮。鉴于我们办公室有一个 SQL 数据库,我希望从表单中读取每个值并保存在 SQL 表中。

然而,这种情况并非如此。有些值保存在 SQL 中,但有些没有。如何查找未保存在 SQL 中的值?简单的回答:表单中的 Javascript 是这样编写的,当用户点击提交时,整个表单的标记被发送到服务器并保存在一个文本文件中。然后,当授权用户想要查看用户如何填写表单时,会从文本文件中检索标记并将其发送到浏览器。

这显然不是最好的方法,因为它浪费磁盘空间并且不容易查询。

这就是我重写代码的原因,以便将来 Web 表单中的条目将完全保存在 SQL 中。

与此同时,我有数以万计的文本文件,其中包含需要导入 SQL 的 HTML 片段。我的想法是编写一个实用程序来逐一解析文件,并将字段值保存在 SQL 中。

我想就如何做到这一点征求意见。通常,我使用 jQuery 从 HTML 读取值,但我不知道用这么多文件执行此操作的实用方法。我还可以使用 Visual Studio 2010。

什么工具和技术最适合完成这项任务?

4

1 回答 1

1

如果您在 Windows 机器上,我将首先使用 Windows 脚本主机列出您需要处理的文件。如果将下面的代码复制到一个js文件中,将该js文件保存到包含数千个文件的目录中,然后在Windows中双击该js文件(在wscript中运行它),它将保存一个列出数千个文件的数组你需要检查。

var io, here, fileToWrite, files;

io   =  new ActiveXObject('Scripting.FileSystemObject');
here = unescape(io.GetParentFolderName(WScript.ScriptFullName) + "\\");

fileToWrite = io.OpenTextFile(here + "\\filelist.js", 2, true);
fileToWrite.writeLine("filelist=[");

for (files = new Enumerator(io.GetFolder(here).files); !files.atEnd(); files.moveNext()) {
  var file = files.item();
  fileToWrite.writeLine('"' + file.Name + '",');
}

fileToWrite.writeLine("]");
fileToWrite.Close();
WScript.Echo("Process Complete - an array of files has been created");

然后,您可以创建一个基于浏览器的 jQuery 脚本,该脚本将按顺序加载每个文件,以通常的方式提取信息,然后使用 FileSystemObject 将其保存为更易使用的格式,例如文本文件。(您必须为此使用 IE。)

如果您在尝试在 IE 中创建 FileSystemObject 时遇到安全问题,只需使用“hta”扩展名重命名您的 html 文件 - 这将创建一个有权执行此操作的 html 应用程序。

于 2012-11-30T22:18:02.500 回答