全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1426
推到 Plurk!
推到 Facebook!

如何將BINARY CODE還原?

尚未結案
kool0318
一般會員


發表:14
回覆:17
積分:6
註冊:2005-01-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-07 12:55:32 IP:220.130.xxx.xxx 未訂閱
小弟是DELPHI的新手...想請教各位專家 小弟利用winsocket的元件接收主機發送的資料 資料是BINARY CODE,雖然知道資料的格式 卻不知如何還原資料,麻煩各位專家不吝赐教..謝謝 [資料格式] TICK_ID:array[1..6] of char; TICK_NAME:array[1..6] of char; TICK_TIME:integer;// array[1..6] of char; TICK_OCCURS:array[1..11] of rpriceqty; TICK_0D0A:array[1..2] of char;
xriz8989
一般會員


發表:0
回覆:3
積分:0
註冊:2003-06-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-12-05 14:42:39 IP:211.22.xxx.xxx 未訂閱
    WinSocket 傳遞的資料格式 :: Byte Array 等同 Char Array;
所以將一切資料轉成 ShortString 即可.
EX:
sTick_id : shortstring[6];  等同  TICK_ID:array[1..6] of char;    var
  strTICK_ID : String;          
  strTICK_ID := ByteArr2Atr(TICK_ID); //ShortString convert to String;
        
以下Function提供參考.    function ByteArr2Str(Buffers: array of Byte): shortstring;
var
  idx,len: Integer;
begin
  //open array parameter 使用注意事項
  //1.low(), high() 皆回傳 == 0;  length() 回傳 -1;
  //2.SizeOf() 回傳實際長度
  //3.只能根據各自元素進行值的設定..無法對整組參數進行值的設定
  //4.不能更動長度..因為這 "不是動態陣列"      Result := '';
  len := sizeof(buffers) - 1;
  for idx := 0 to len do Result := Result   chr(Buffers[idx]);
  Result := trim(Result);//--清除空格
end;    [資料格式]
  TICK_ID:array[1..6] of char;
  TICK_NAME:array[1..6] of char;
  TICK_TIME:integer;// array[1..6] of char;
  TICK_OCCURS:array[1..11] of rpriceqty; //自定資料格式還是需以基礎Byte-Data進行轉換
  TICK_0D0A:array[1..2] of char;    
系統時間:2024-05-17 10:57:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!