Blob資料類型的使用

來源:互聯網
上載者:User

Blob資料類型的使用:  
  blob{200}   bl_var     //   定義一個初始大小為200位元組blob  
  blob   bl_var     //   普通定義方法,零長度blob  
  bl_var   =   Blob(Space(200))     //   動態分配200個位元組,實際上是分配了一個200字元的字串,全部為空白格(ASCII碼20H),最後轉換為blob。也就是開闢了一個200位元組的記憶體區,內容都是20H,而不是00H。全部初始化為全零的變通方法:(DX有更直接方法嗎?)  
  blob   bl_var  
  bl_var   =   Blob(Space(200))  
  for   i   =   1   to   Len(bl_var)  
      BlobEdit(bl_var,   i,   Char(0))  
  next  
  //   BlobEdit()用於修改一個blob變數指定位置的值,修改值可以是任何類型(轉換到blob位元組)。  
  但是有個奇特的地方,PB會把char看作string,當寫入了一個非零的字元(char)時,字串以零字元結束,因此實際上修改了blob變數的兩個位元組(一個是字元本身,一個是零位元組),解決方案是Blob(some_char),因為用Blob來轉換字串時,只有有效字元被轉換,結尾的零字元會被忽略。而Blob(Char(0))將會返回一個空值,因為PB把char(0)作為零長度的字串處理。  
  當修改值超出blob變數的範圍時,該次修改將不起作用!  
   
  //   對blob變數作逐位元組處理的方法:  
  //   bl_source已經初始化,i是要處理的位元組位置  
  blob{1}   bl_byte     //   聲明單位元組長度的blob  
  int   li_byte  
  bl_byte   =   BlobMid   (bl_source,   i,   1)     //   Extract   a   byte  
  li_byte   =   Asc(String(bl_byte))     //   轉換到整型  
  ...   //   對li_byte的值作任意處理,處於0-255單位元組取值範圍內  
  //   位元組內容處理後再放回去  
  if   li_byte   =   0   then  
      BlobEdit(bl_source,   i,   Char(0))     //   寫入00H  
  else  
      BlobEdit(bl_source,   i,   Blob(Char(li_byte)))  
  end   if  
    

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.