//对大字符操作,每个字符串大概3000-5000字节
procedure Texchanger.AnalysisDepthData(value,asks,bids,splitstr,ADelim: string);
var
apos,bpos,ipos:Integer;
str,stmp,stra,strb:string;
i,j:Integer;
begin
stmp := StringReplace(value,splitstr,'^',[]);
stmp := StringReplace(stmp,ADelim,'`',[rfReplaceAll]);
SetLength(str,Length(stmp));
j := 1;
for i:= 1 to Length(value) do
begin
if (stmp[i]='"')or(stmp[i]='[')or(stmp[i]=']')or(stmp[i]='{')or(stmp[i]='}')or(stmp[i]=#13)or(stmp[i]=#10)or(stmp[i]=':') then
Continue
else
begin
str[j] := stmp[i];
inc(j);
end;
end;
<span style="color:#ff0000;">stmp := ''; //如果没有这句话,会出现over flow提示框</span>
apos := Pos(asks,str);
bpos := Pos(bids,str);
ipos := Pos('^',str);
if apos < bpos then
begin
stra := Copy(str,apos+length(asks),ipos - apos - Length(asks));
strb := Copy(str,bpos+length(bids),Length(str));
end
else
begin
strb := Copy(str,bpos+length(bids),ipos - bpos - Length(bids));
stra := Copy(str,apos+length(asks),Length(str));
end;
SplitDelimitedString(stra,asksList,True,'`');//SplitColumns();
SplitDelimitedString(strb,bidsList,True,'`');
end;