2010-07-16 25 views
2

在Visual Basic中,我可以打開一個二進制文件(EXE)與下面的方式提交:這樣我就可以讀取所有的二進制文件字符,這樣寫的格式文件內容如何在Visual Basic中打開「Delphi」中的二進制文件(exe)?

Strx$ = Space(FileLen(FileName)) 
Open FileName For Binary As #1 
    Get #1, , Strx$ 
Close 

alt text http://up.iranblog.com/Files/4b97136a8452414b97b1.png 問題是我如何打開一個字符串格式(像圖像),而不是0,1(二進制)格式的德爾福二進制(EXE)文件?

謝謝!

+2

你究竟想做什麼?也許我們可以提出更好的建議,因爲以文本方式打開二進制文件很可能無法解決任何問題。 – 2010-07-16 09:04:04

+0

執行此操作的更常見方法是使用十六進制查看器/編輯器組件,而不是將東西傾倒到不可讀的屏幕上。 – 2010-07-20 20:14:58

回答

6

EXE文件包含嵌入的NULL(#0)個字符。您可能在使用字符串時遇到問題,因爲通常在字符串的末尾找到NULL。一旦遇到NULL,一些例程將停止使用字符串。

話雖如此,以下將文件的內容轉換爲字符串。

function GetFileIntoString(FileName : String) : String; 
var 
SS : TStringStream; 
begin 
    SS := TStringStream.Create(''); 
    try 
    SS.LoadFromFile(FileName); 
    result := SS.DataString; 
    finally 
    SS.Free; 
    end; 
end; 
+1

內存泄漏 - 你應該使用try/finally和.free你的stringStream – glob 2010-07-16 09:10:29

+0

它與Delphi 2009和更高版本一起工作嗎? (考慮Unicode和默認字符編碼...) – mjn 2010-07-16 09:53:42

+0

泄漏修復。在Delphi 2009中,字符串將是Unicode,並且之前將是Ansi。兩者都會將文件加載到字符串中。 – 2010-07-16 10:38:42