OSDN Git Service

Ver1.0の巡回ファイル読み込み時の処理の修正
authorh677 <h677>
Tue, 13 Jan 2004 10:17:10 +0000 (10:17 +0000)
committerh677 <h677>
Tue, 13 Jan 2004 10:17:10 +0000 (10:17 +0000)
RoundData.pas

index 3c6373e..219f450 100644 (file)
@@ -329,6 +329,7 @@ var
     errorSl: TStringList;
     errorFileName: string;
        Item: TRoundItem;
+    delCount: Integer;
 begin
        sl := TStringList.Create;
     errorSl := TStringList.Create;
@@ -347,28 +348,31 @@ begin
                 end;
             end;
             //Item := TRoundItem.Create;
+            delCount := 0;
             //\82P\8ds\96Ú\82Í\83o\81[\83W\83\87\83\93
                        if sl[0] = ROUND_INDEX_VERSION then begin
                                for i := 1 to sl.Count - 1 do begin
-                                       Item := ParseRoundBoardLine(sl[i]);
+                                       Item := ParseRoundBoardLine(sl[i - delCount]);
                     if Item <> nil then begin
                                                FBoardList.Add(Item);
                                                RoundNameList.Add(Item.RoundName);
                     end else begin
-                       errorSl.Add( sl[i] );
-                        sl.Delete(i);
+                       errorSl.Add( sl[i - delCount] );
+                        sl.Delete(i- delCount);
+                        Inc(delCount);
                     end;
                                end;
             end else begin
                 if FOldFileRead then begin  //\83M\83R\83i\83r\96{\91Ì\82ª\83{\81[\83h\83t\83@\83C\83\8b\82ð\82æ\82Ý\82Æ\82Á\82½\8cã\82\82á\82È\82¢\82Æ\83N\83\89\83b\83V\83\85\82·\82é\82Ì\82Å
                                        for i := 1 to sl.Count - 1 do begin
-                                               Item := ParseOldRoundBoardLine(sl[i]);
+                                               Item := ParseOldRoundBoardLine(sl[i - delCount]);
                         if Item <> nil then begin
                                                        FBoardList.Add(Item);
                                                        RoundNameList.Add(Item.RoundName);
                         end else begin
-                               errorSl.Add( sl[i] );
-                               sl.Delete(i);
+                               errorSl.Add( sl[i- delCount] );
+                               sl.Delete(i- delCount);
+                            Inc(delCount);
                         end;
                                        end;
                 end else
@@ -391,6 +395,7 @@ var
     errorSl: TStringList;
     errorFileName: string;
        Item: TRoundItem;
+    delCount: Integer;
 //    boardList : TStringList;
 begin
 //    boardList := TStringList.Create;
@@ -412,28 +417,31 @@ begin
                 end;
             end;
             //Item := TRoundItem.Create;
+            delCount := 0;
                        //\82P\8ds\96Ú\82Í\83o\81[\83W\83\87\83\93
             if sl[0] = ROUND_INDEX_VERSION then begin
                                for i := 1 to sl.Count - 1 do begin
-                                       Item := ParseRoundThreadLine(sl[i]);
+                                       Item := ParseRoundThreadLine(sl[i - delCount]);
                     if Item <> nil then begin
                                                FItemList.Add(Item);
                                                RoundNameList.Add(Item.RoundName);
                                        end else begin
-                        errorSl.Add(sl[i]);
-                        sl.Delete(i);
+                        errorSl.Add(sl[i - delCount]);
+                        sl.Delete(i - delCount);
+                        Inc(delCount);
                     end;
                 end;
             end else begin
                 LoadRoundBoardFile;
                 for i := 1 to sl.Count - 1 do begin
-                                       Item := ParseOldRoundThreadLine(sl[i]);
+                                       Item := ParseOldRoundThreadLine(sl[i - delCount]);
                     if Item <> nil then begin
                                                FItemList.Add(Item);
                                                RoundNameList.Add(Item.RoundName);
                     end else begin
-                                               errorSl.Add(sl[i]);
-                        sl.Delete(i);
+                                               errorSl.Add(sl[i - delCount]);
+                        sl.Delete(i - delCount);
+                        Inc(delCount);
                     end;
                                end;
             end;
@@ -615,7 +623,7 @@ begin
                end;
         except
                Result := nil;
-            Exit;
+            break;
         end;
     end;
 end;