PB Blob转成文件

/*uf_create_pic
value string as_file_path 文件名  C:/test.txt
value blob ablb_data blob
return integer*/
integer li_FileNo, li_Writes, li_Cnt

long ll_BlobLen, ll_CurrentPos


blob lblb_Data

li_FileNo = FileOpen(as_file_path, StreamMode!, &
   Write!, LockReadWrite!, Append!)

If li_FileNo < 0 Then Return -1

 
ll_BlobLen = Len(ablb_Data)


// Determine the number of writes required 

// to write the entire blob

If ll_BlobLen > 32765 Then
   If Mod(ll_BlobLen, 32765) = 0 Then
      li_Writes = ll_BlobLen / 32765
   Else
      li_Writes = (ll_BlobLen / 32765) + 1
   End if
Else
   li_Writes = 1
End if

ll_CurrentPos = 1

For li_Cnt = 1 To li_Writes

   lblb_Data = BlobMid(ablb_Data, ll_CurrentPos, 32765)

   ll_CurrentPos += 32765

   If FileWrite(li_FileNo, lblb_Data) = -1 Then

      Return -1

   End if
Next

FileClose(li_FileNo)

Return 1

 

posted @ 2016-06-06 10:14  春夏秋冬春  阅读(2919)  评论(0编辑  收藏  举报