OSDN Git Service

板の取得日時の文字列におかしな形式がときたまある模様なので、
authorh677 <h677>
Sat, 21 Feb 2004 08:37:10 +0000 (08:37 +0000)
committerh677 <h677>
Sat, 21 Feb 2004 08:37:10 +0000 (08:37 +0000)
そのときでもきちんと日時を取得できるように修正

BoardGroup.pas

index f903fe9..1b098ca 100644 (file)
@@ -356,7 +356,8 @@ type
        function        BBSsFindBoardFromURL( inURL : string ) : TBoard;
        function        BBSsFindBoardFromTitle( inTitle : string ) : TBoard;
        function        BBSsFindThreadFromURL( inURL : string ) : TThreadItem;
-
+    function   ConvertDateTimeString( inDateTimeString : string) : string;
+    
 var
        BBSs            : array of TBBS;
 
@@ -985,6 +986,7 @@ procedure TBoard.LoadSettings;
 var
        ini: TMemIniFile;
        FileName: string;
+    tmp: string;
 begin
        if Length( FilePath ) > 0 then
                FileName := ExtractFilePath( FilePath ) + FOLDER_INI_FILENAME
@@ -997,9 +999,33 @@ begin
        ini := TMemIniFile.Create(FileName);
        try
 //             Round := ini.ReadBool('Status', 'Round', False);
-               FRoundDate := ini.ReadDateTime('Status', 'RoundDate', ZERO_DATE);
-               FLastModified := ini.ReadDateTime('Status', 'LastModified', ZERO_DATE);
-               FLastGetTime := ini.ReadDateTime('Status', 'LastGetTime', ZERO_DATE);
+               tmp := ini.ReadString('Status', 'RoundDate', DateTimeToStr(ZERO_DATE));
+        FRoundDate := StrToDateTime(ConvertDateTimeString(tmp));
+        tmp := ini.ReadString('Status', 'LastModified', DateTimeToStr(ZERO_DATE));
+        FLastModified := StrToDateTime(ConvertDateTimeString(tmp));
+        tmp := ini.ReadString('Status', 'LastGetTime', DateTimeToStr(ZERO_DATE));
+        FLastGetTime := StrToDateTime(ConvertDateTimeString(tmp));
+
+        {
+               try
+                       FRoundDate := ini.ReadDateTime('Status', 'RoundDate', ZERO_DATE);
+        except
+            tmp := ini.ReadString('Status', 'RoundDate', DateTimeToStr(ZERO_DATE));
+               FRoundDate := StrToDateTime(ConvertDateTimeString(tmp));
+        end;
+        try
+               FLastModified := ini.ReadDateTime('Status', 'LastModified', ZERO_DATE);
+               except
+            tmp := ini.ReadString('Status', 'LastModified', DateTimeToStr(ZERO_DATE));
+               FLastModified := StrToDateTime(ConvertDateTimeString(tmp));
+        end;
+        try
+               FLastGetTime := ini.ReadDateTime('Status', 'LastGetTime', ZERO_DATE);
+        except
+            tmp := ini.ReadString('Status', 'LastGetTime', DateTimeToStr(ZERO_DATE));
+               FLastGetTime := StrToDateTime(ConvertDateTimeString(tmp));
+        end;
+        }
                FUnRead := ini.ReadInteger('Status', 'UnRead', 0);
                FSPID := ini.ReadString('Cookie', 'SPID', '');
                FPON := ini.ReadString('Cookie', 'PON', '');
@@ -1049,7 +1075,21 @@ begin
                ini.Free;
        end;
 end;
-
+//\82Æ\82«\82½\82Ü2003 02 08 0:32:13\82±\82ñ\82È\8c`\8e®\82Ì\93ú\95t\82ª\82 \82é\82Ì\82Å\82»\82ê\82ð
+//        2003/02/08 0:32:13\82É\95Ï\8a·\82·\82é
+function       ConvertDateTimeString( inDateTimeString : string) : string;
+var
+       i : Integer;
+begin
+    if ( AnsiPos('/', inDateTimeString ) = 0 ) and
+       ( AnsiCompareStr( DateTimeToStr(ZERO_DATE), inDateTimeString) <> 0 ) then begin
+               for i := 0 to 1 do begin
+               Insert('/',inDateTimeString, AnsiPos(' ', inDateTimeString) + 1 );
+               Delete(inDateTimeString, AnsiPos(' ', inDateTimeString), 1);
+       end;
+    end;
+    Result := inDateTimeString;
+end;
 // \83T\83u\83W\83F\83N\83gURL\8eæ\93¾
 function TBoard.GetReadCgiURL: string;
 begin