9111行是开始断点,然后 F8单步,9112行判断不成立,怎么突然到9127行 End那里了?

 

现在改成这样了,是正常了。关键差异,在第二个判断的语句里。
 

 jsa := SA([]).AsArray;
  for I := 0 to Strlist.Count - 1 do
  if SO(Strlist[I]) <> nil then
  begin
    S := SO(Strlist[I]).S[SoNameC];//*
//    if SO(Strlist[I]).S[SoNameC] < DateTimeToStr(Now - LastDays) then
//如果用上面这行写法,就有这个现象。
//用个 string类型的变量 过度一下 就正常。
    if S < DateTimeToStr(Now - LastDays) then//*
    begin
      jsa.Add(SO(I));// 1 3 5 7
      Continue;
    end
    else
      Break;
  end
  else
    jsa.Add(SO(I));
  for I := jsa.Length - 1 downto 0 do//7 5 3 1
    Strlist.Delete(jsa[I].AsInteger);
  if NowSave then
    Strlist.SaveToFile(Filename);

end;

 

procedure AddjdsJson2(const Tid: string);
var
  jo: ISuperObject;
  S: string;
begin
//{"2015-03-15":{"993831137720616":true,"999059446806504":true}}
//{"2015-03-15":{"993831137720616":true,"999059446806504":true},"2015-03-14":{"993831137720616":true,"999059446806504":true}}
  if Tid = '' then Exit;
  S := DatetoStr(Date);
  jo := jdsJSON[S];//这里 要用个 变量,不能直接用 函数表达式
  if jo = nil then
  begin
    jo := SO();
    jdsJSON[S] := jo;//SO();
//    jo := jdsJSON[DatetoStr(Date)];
  end;
  jo.B[tid] := True;
end;

 

 posted on 2014-12-23 14:34  宝兰  阅读(175)  评论(0编辑  收藏  举报