求 小牛人 解释

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;

 

你可能感兴趣的:(求 小牛人 解释)