2012-08-10 45 views
4

我有几个脚本,我希望我的程序能够使用。但是,我想知道是否可以将这些脚本(例如批处理,JavaScript,vb脚本等)作为资源存储在我的应用程序中。将脚本存储为资源

我该怎么做呢?

+2

有没有必要添加“德尔福 - ”您的问题标题。它已经在标签中说明了。 – BoltClock 2012-08-10 06:50:38

+0

@BoltClock - 哦,我知道。我把它们放在标题中,所以我知道当我去看以前所问的所有问题时,哪个问题与哪种语言相关。 – ple103 2012-08-10 07:08:29

+2

如果你去这里:http://stackoverflow.com/users/843935/petersmileyface?tab=questions它显示标题下的标签。注意你的其他一些问题,标题仍未修改;显示的标签变得相当多余。 – BoltClock 2012-08-10 07:13:26

回答

1

有组件,用于存储在DFM

任意文件/文件或字符串例如,在rxLib/JediVCL中有这样的,但我相信很多VCL库都有一种或另一种类型的DFM存储组件。

例如,我曾经在DFM中存储Firebird Embedded数据库,将其保存到TEMP中并在运行时使用。

但是,这与每次更新时手动重新读入DFM文件类似。相当烦人的说真诚。


另一种方法是将文本链接到资源。你可以看看DUnit来源,看看它是如何完成的。您也可以在项目中包含.rc文件,以便在制作.exe时将它编译为.res

此方法对于ansi/unicode文本解释是脆弱的。 坦率地说,在我发现DUnit在Delphi XE2(由于IDE错误而被禁用)之前,我试图让SF的vanilla DUnit在那里运行。我失败了 - 当使用启用Unicode的Delphi阅读时,链接到资源的非Unicode文本文件完全损坏。

看看这里和那里,尝试两种方法,并选择更适合你的方法。

2

您可以将脚本存储在资源文件中。但是例如批处理文件需要在磁盘上存档,所以你需要在工作之前解压缩它们。

+2

而使用Javascript/VBScript,您可以将这些资源提取到内存中的字符串中,并通过Windows Script Host界面直接执行它们。 – 2012-08-10 07:01:39