線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:941
推到 Plurk!
推到 Facebook!

請教如何在Stream中尋找特定字?

答題得分者是:dllee
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-14 15:57:19 IP:61.220.xxx.xxx 未訂閱
小弟想在avi檔案中找出圖片,因此必需找到圖片關鍵字FFD8,FFD9,但是不熟BCB中memory stream的用法,尚請高手們指導,先謝啦!
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-14 22:33:53 IP:61.224.xxx.xxx 未訂閱
引言: 小弟想在avi檔案中找出圖片,因此必需找到圖片關鍵字FFD8,FFD9,但是不熟BCB中memory stream的用法,尚請高手們指導,先謝啦!
不大清楚您要找的 FFD8,FFD9 是如何的順序... 以下是以 byte 為單位去找,先找 FF 再找 D8 或 D9
  TMemoryStream *stm=new TMemoryStream;
  stm->LoadFromFile("abc.avi");
  unsigned char *Buf=(unsigned char *)stm->Memory;
  for(int i=0;iSize-1;i  )
  {
    if(Buf[i]==0xFF)
    {
      if(Buf[i 1]==0xD8)
        ShowMessage("FFD8 found at offset " String(i));
      else if(Buf[i 1]==0xD9)
        ShowMessage("FFD9 found at offset " String(i));
    }
  }
  delete stm;
以下是以 short 為單位去找,直接找 FFD8 或 FFD9,但您有可能是要找 D8FF 或 D9FF
  TMemoryStream *stm=new TMemoryStream;
  stm->LoadFromFile("unit1.obj");
  char *Buf=(char *)stm->Memory;
  for(int i=0;iSize-1;i  )
  {
    if(*(unsigned short*)&Buf[i]==0xD8FF)
        ShowMessage("FF D8 found at offset " String(i));
    else if(*(unsigned short*)&Buf[i]==0xD9FF)
        ShowMessage("FF D9 found at offset " String(i));
  }
  delete stm;
沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-18 08:33:20 IP:61.220.xxx.xxx 未訂閱
多謝dllee大哥回應,您的方法應該可以解決小弟的問題,謝啦!
系統時間:2024-05-17 7:18:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!