2012-08-10 34 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