請問二進制資料與ASCII之間的資料如何轉換 |
尚未結案
|
poemkevin
初階會員 發表:26 回覆:77 積分:30 註冊:2002-10-19 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
procedure ShowCode(ACode: string); Var sShow, sCatch: string; i: integer; begin sShow := ''; for i := 1 to Length(ACode) do begin sCatch := Format('%X', [Ord(ACode[i])]); if Length(sCatch) = 1 then sCatch := '0' sCatch; sShow := sShow sCatch ' '; end; Delete(sShow, Length(sShow), 1); Memo1.Lines.Add(sShow); end;[/quote] -- Everything I say is a lie. 發表人 - hagar 於 2002/11/17 19:58:23 |
poemkevin
初階會員 發表:26 回覆:77 積分:30 註冊:2002-10-19 發送簡訊給我 |
|
poemkevin
初階會員 發表:26 回覆:77 積分:30 註冊:2002-10-19 發送簡訊給我 |
各位前輩及版主大人,
小弟一直試不出
不知如何將二進制檔寫入時就轉成ASCII檔
是否可以寫個完整的範例程式,
謝謝您的不吝指導 而版主大人寫的副程式,因為小弟是初學者,試了好久都會有錯誤
只好厚著臉皮再向您請益, 希望您能不吝撥空指導 我原本用Memo1.Lines.LoadFromFile('aaa.bin');
其中aaa.bin是二進制檔案 小弟看DELPHI了徹底研究這本書
第6章的6-12範例用的方式大約如下
但我想改成由二進檔檔案讀入,再將二進制轉成文字檔寫到MEMO1上
但卻一直出現錯誤 BinStream:TMemoryStream;
StrStream:TStringStream; BinStream.LoadFromFile('c:\aaa.dds'); //aaa.dds是一個二進制檔
BinStream.Seek(0,soFromBeginning);
ObjectBinaryToText(BinStream,StrStream);//將二進制轉成文字檔
StrStream.Seek(0,soFromBeginning);
Memo1.text:=StrStream.DataString;
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
ObjectBinaryToText is used for component writing (e.g. in text dfm) and I think it is not the function you need. BTW, what do you mean by binary file? It would be helpful if you could provide more details (e.g. filespec, first 30 bytes of the file). This is an example of reading from an untyped file:
var AFile: file of byte; Buffer: array[0..1024] of byte; Count,bRead: integer; i: integer; s: string; begin Memo1.Clear; AssignFile(AFile,'c:\aaa.bin'); reset(AFile); try s := ''; while not EOF(AFile) do begin Count := SizeOf(Buffer); BlockRead(AFile,Buffer,Count,bRead); for i := 1 to bRead do begin s := s Format('%.2x ',[Buffer[i-1]]); if (i mod 8) = 0 then begin Memo1.Lines.Add(s); s := ''; end; end; if s<>'' then Memo1.Lines.Add(s); end; finally CloseFile(AFile); end; end; |
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
poemkevin
初階會員 發表:26 回覆:77 積分:30 註冊:2002-10-19 發送簡訊給我 |
真的很感謝前輩們的指導 可是弟是想要將機器讀到的檔案轉成可見的文字檔
弟之前也有用16位元編輯器去看過
如同上面那二位前輩所教的
所轉成的檔,是16位元檔
然而我要看的卻是它的文字資料
因為機器轉成的檔是需用日本公司附的軟體才能看到資料庫文件
它提供的程式一定也不符合我的需求
弟想將它那資料萃取出來到資料庫內
只是因為機器自動儲存的是二進檔
弟不知該如何轉成文字檔
例如將
<75 20 59 44 01 00 01 00 >型態轉成可見字元
這部份
縱使用16位元編輯器去看, 只能少部份可以看見一些可辦識的字元
如「日期或型號的英文就很清楚的看見,沒有亂碼錯誤」
,而其他大都是亂碼
如「便 ? $ @ ?溟?? ? k J @ B」 這類的亂碼
唉... 真不知如何去解決
因為那些都是資料庫數據資料
難道非得靠日本人寫的軟體不行嗎
真是難過 >.< 它轉出來的資料都是二進制檔
這個檔用它的軟體
可看到像我們在資料庫看到的資料類似DATAGRID,
也可以看到資料的趨勢圖及圓柱圖
|
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
poemkevin
初階會員 發表:26 回覆:77 積分:30 註冊:2002-10-19 發送簡訊給我 |
引言: Hello poemkevin 兄您好: 小弟個人猜想看不到的原因可能是TMemo並無支援他所對應的碼, 可能是Unicode或其他編碼, 你可先將他檔案的內容先轉到html網頁 檔試試, 在Browser上讀讀看, 切換各種編碼看能否看到裡面內容. 我不是高手, 高手是正在銀幕前微笑的人.Dear Miles君: Miles兄您所說的方式,弟也try過,內容除了某部份英文看得出來 其他的都是亂碼, 而這些亂碼資料照它機器所比對的 應該是數字資料, 只是不知為何就是顯示不出來 我猜想它可能有經過壓縮轉換過,因為它那個二進制檔雖才500多KB 但資料卻有16CHANEL共9000多筆記錄 除了日期型號及頻道的英文字可以看出外 其餘的大都是亂碼字元 我把它檔案放在網路上好了 http://home.pchome.com.tw/web/ptgfr/10010904.47w http://home.pchome.com.tw/web/ptgfr/10012202.58w 檔案名是機器依時間所命名的 您可以開看看 在這裏小弟真的很感謝各位前輩能撥空看小弟的問題 不管有沒有真正解決小弟的問題 小弟都很感謝大家的幫忙^^ |
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
The web server has added some banner codes.. Maybe you could try to upload them somewhere else. One way to guess is try to change a little bit (e.g. single field) and compare the file before and after the change. Beware of the license since reverse engineering sometimes may violate the terms in the license.
|
poemkevin
初階會員 發表:26 回覆:77 積分:30 註冊:2002-10-19 發送簡訊給我 |
非常感謝幾位前輩的幫忙
小弟找時間再將機器的日文資料看一看好了
看能不能找到資料解讀方面的資料
它應該是有壓縮編碼過吧
只是不太曉得它的運算方式
才一直解不出來
唉....日本人真詐, 連機器輸出資料檔案都要保護 >.<
引言: The web server has added some banner codes.. Maybe you could try to upload them somewhere else. One way to guess is try to change a little bit (e.g. single field) and compare the file before and after the change. Beware of the license since reverse engineering sometimes may violate the terms in the license. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |