Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/ItemDownload.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.34 by yoffy, Mon Aug 16 14:24:05 2004 UTC revision 1.35 by h677, Fri Sep 10 17:23:48 2004 UTC
# Line 1177  end; Line 1177  end;
1177  }  }
1178  procedure TDownloadItem.SaveItemFile;  procedure TDownloadItem.SaveItemFile;
1179  var  var
1180          Body: TStringList;          Body, oldBody: TStringList;
1181          Cnt: Integer;          Cnt: Integer;
1182          OldCnt: Integer;          OldCnt: Integer;
1183          FileName: string;          FileName: string;
# Line 1208  begin Line 1208  begin
1208                  try                  try
1209                  //              if FileExists(FileName) and (ResponseCode = 206) then begin                  //              if FileExists(FileName) and (ResponseCode = 206) then begin
1210                          if FileExists(FileName) and (State = gdsDiffComplete) then begin                          if FileExists(FileName) and (State = gdsDiffComplete) then begin
                 //                      Body.Text := Content;  
                 //                      if Body.Count > 0 then  
                 //                              Body.Delete(0);  
                 //                      Content := Body.Text;  
1211                                  loopCnt := 10;                                  loopCnt := 10;
1212                                  repeat                                  repeat
1213                                          finish := true;                                          finish := true;
# Line 1224  begin Line 1220  begin
1220                                          except                                          except
1221                                                  on E:EFOpenError do begin                                                  on E:EFOpenError do begin
1222                                                          sleep(10);                                                          sleep(10);
                                                         finish := false;  
1223                                                          Dec(loopCnt);                                                          Dec(loopCnt);
1224                                                            if loopCnt > 0 then
1225                                                                    finish := false;
1226                                                  end;                                                  end;
1227                                          end;                                          end;
1228                                  until finish and ( loopCnt > 0 );                                  until finish;
1229                                  //Cnt := Body.Count;                                  //Cnt := Body.Count;
1230                          end else begin                          end else begin
1231                                  if IsAbone then begin                                  if IsAbone then begin
1232                                          // あぼーんを検出したのでここまで読んだと新着レス番のつけなおし                                          // あぼーんを検出したのでここまで読んだと新着レス番のつけなおし
1233                                          loopCnt := 10;                                          oldBody := TStringList.Create;
1234                                          repeat                                          try
1235                                                  finish := true;                                                  loopCnt := 10;
1236                                                  try                                                  repeat
1237                                                          Body.LoadFromFile(FileName);                                                          finish := true;
1238                                                  except                                                          try
1239                                                          on E:EFOpenError do begin                                                                  oldBody.LoadFromFile(FileName);
1240                                                                  sleep(10);                                                          except
1241                                                                  finish := false;                                                                  on E:EFOpenError do begin
1242                                                                  Dec(loopCnt);                                                                          sleep(10);
1243                                                                            Dec(loopCnt);
1244                                                                            if loopCnt > 0 then
1245                                                                                    finish := false
1246                                                                            else
1247                                                                                    finish := true;
1248                                                                    end;
1249                                                          end;                                                          end;
1250                                                  end;                                                  until finish;
                                         until finish and ( loopCnt > 0 );  
                                         LastTxt := Body.Strings[ Body.Count - 1 ];  
                                         if ThreadItem.Kokomade > 0 then begin  
                                                 KokoTxt := Body.Strings[ ThreadItem.Kokomade - 1 ];  
                                         end;  
                                         if ThreadItem.NewReceive > 0 then begin  
                                                 NewTxt := Body.Strings[ ThreadItem.NewReceive - 1 ];  
                                         end;  
1251    
1252                                          Body.Text := Content;                                                  Body.Text := Content;
1253                                          Body.Find( LastTxt, LastIdx );                                                  if (ThreadItem.Kokomade > 0) and (ThreadItem.Kokomade <= oldBody.Count) then begin
1254                                          OldCnt := LastIdx + 1;                                                          ThreadItem.Kokomade := Body.IndexOf(oldBody.Strings[ ThreadItem.Kokomade - 1 ]) + 1;
                                         NewRes := Body.Count - OldCnt;  
   
                                         if ThreadItem.Kokomade > 0 then begin  
                                                 Body.Find( KokoTxt, KokoIdx );  
                                                 ThreadItem.Kokomade := KokoIdx + 1;  
                                         end;  
                                         if ThreadItem.NewReceive > 0 then begin  
                                                 Body.Find( NewTxt, NewIdx );  
                                                 Inc( NewIdx );  
                                                 if OldCnt < NewIdx then begin  
                                                         OldCnt := NewIdx;  
                                                         NewRes := Body.Count - NewIdx;  
1255                                                  end;                                                  end;
1256    
1257                                                    LastIdx := oldBody.Count;
1258                                                    repeat
1259                                                            Dec(LastIdx);
1260                                                            OldCnt := Body.IndexOf(oldBody.Strings[ LastIdx ]) + 1;
1261                                                    until ( OldCnt <> 0 ) or (LastIdx = 0);
1262    
1263                                                    NewRes := Body.Count - OldCnt;
1264    
1265                                            finally
1266                                                    oldBody.Free;
1267                                          end;                                          end;
1268    
1269                                  end else begin                                  end else begin
1270                                          Body.Text := Content;                                          Body.Text := Content;
1271                                          //ThreadItem.Count := 0;                                          //ThreadItem.Count := 0;

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26