loadRecord 函数读取 string 时出错

server 环境:centos7

dolphindb : 社区版,2.00.7 Linux64


问题:

当读取的二进制数据中,字符串不是以 0x0 结尾的时候,会出错。

错误提示:

STIRNG/SYMBOL must end with 0x0.

示例:

attachments-2022-10-pZmwXGMC634f74f4e8c78.png
如图所示的 144-151 的8个字符;164-195 的32个字符。(可能源数据就是没有初始化字符串或者已经填满。)


例子:

bin_schema = [
    (`TimeStamp,LONG),(`nTime,INT),(`nStatus,INT),
    (`nPreClose,INT),(`uOpen,INT),(`uHigh,INT),(`uLow,INT),(`uMatch,INT),
    (`uAskPrice1,INT),(`uAskPrice2,INT),(`uAskPrice3,INT),(`uAskPrice4,INT),(`uAskPrice5,INT),
    (`uAskVol1,INT),(`uAskVol2,INT),(`uAskVol3,INT),(`uAskVol4,INT),(`uAskVol5,INT),
    (`uBidPrice1,INT),(`uBidPrice2,INT),(`uBidPrice3,INT),(`uBidPrice4,INT),(`uBidPrice5,INT),
    (`uBidVol1,INT),(`uBidVol2,INT),(`uBidVol3,INT),(`uBidVol4,INT),(`uBidVol5,INT),
    (`uNumTrades,INT),(`iVolume,LONG),(`iTurnover,LONG),(`uHighLimited,INT),(`uLowLimited,INT),
    (`sTradingPhtaseCode,STRING,8),(`nPreIOPV,INT),(`nIOPV,INT),
    (`mk_type,INT),(`code,STRING,32),(`trade_day,INT)
]
men_tb = loadRecord(temp_file,bin_schema,0,200)

读取附件temp_file.dat








请先 登录 后评论

1 个回答

Boye

是的,目前loadRecord是要求STIRNG/SYMBOL字段必须以0结尾,若长度不足,需在最后补0达到指定长度。

请先 登录 后评论
  • 1 关注
  • 0 收藏,737 浏览
  • Mkelar 提出于 2022-10-19 11:52