OSDN Git Service

ReadSubjectの前回異常終了ファイルの処理の位置の変更。
authorh677 <h677>
Tue, 15 Mar 2005 16:23:11 +0000 (16:23 +0000)
committerh677 <h677>
Tue, 15 Mar 2005 16:23:11 +0000 (16:23 +0000)
時刻文字列変換関数の定数部分を定数化。

GikoSystem.pas

index 18dcb5a..80dfe52 100644 (file)
@@ -485,34 +485,21 @@ end;
  *************************************************************************)
 function TGikoSys.Get2chDate(aDate: TDateTime): string;
 var
-       d1: TDateTime;
        d2: TDateTime;
 begin
-       d1 := EncodeDate(1970, 1, 1);
        d2 := aDate - EncodeTime(9, 0, 0, 0);
-       //Result := FloatToStr(Trunc((d2 - d1) * 24 * 60 * 60));
-       Result := FloatToStr(Trunc((d2 - d1) * 86400));
+       Result := FloatToStr(Trunc((d2 - ZERO_DATE) * 86400));
 end;
 
-
+//val\82Í\81A1970/1/1/ 00:00:00 \82©\82ç\82Ì\8co\89ß\8e\9e\8aÔ
 function TGikoSys.IntToDateTime(val: Int64): TDateTime;
-var
-       d1: tdatetime;
-       d2: tdatetime;
 begin
-       d1 := EncodeDate(1970, 1, 1);
-       d2 := val / 86400.0;//(val * 1000) / (24 * 60 * 60 * 1000);
-       Result := d1 + d2;
+       Result := ZERO_DATE + val / 86400.0;
 end;
-
+//ADate\82ð1970/1/1/ 00:00:00 \82©\82ç\82Ì\8co\89ß\8e\9e\8aÔ\82É\95Ï\8a·\82·\82é
 function TGikoSys.DateTimeToInt(ADate: TDateTime): Int64;
-var
-       d: TDateTime;
-       c: Currency;
 begin
-       d := EncodeDate(1970, 1, 1);
-       c := (ADate - d) * 86400; //(ADate - d) * 24 * 60 * 60;
-       Result := Trunc(c);
+       Result := Trunc((ADate - ZERO_DATE) * 86400);
 end;
 
 
@@ -536,6 +523,9 @@ var
        idx: Integer;
        usePlugIn : Boolean;
        tmpStr: string;
+    BoardPath : String;
+    protocol, host, path, document, port, bookmark     : string;
+    is2ch : Boolean;
        {*
        FavoThreadItem : TFavoriteThreadItem;
        Node: TTreeNode;
@@ -547,6 +537,10 @@ begin
        UnRead := 0;
 
        usePlugIn := Board.IsBoardPlugInAvailable;
+    if not usePlugIn then begin
+       GikoSys.ParseURI(Board.URL, protocol, host, path, document, port, bookmark );
+        is2ch := Is2chHost(host);
+    end;
 
        FileName := Board.GetFolderIndexFileName;
 
@@ -576,16 +570,21 @@ begin
                                        ThreadItem := TThreadItem.Create(
                                                        Board.BoardPlugIn,
                                                        Board.BoardPlugIn.FileName2ThreadURL( DWORD( Board ), Rec.FFileName ) )
-                               else
-                                       ThreadItem := TThreadItem.Create(
-                                               nil,
-                                               Get2chBoard2ThreadURL( Board, ChangeFileExt( Rec.FFileName, '' ) ) );
-
+                               else begin
+                                       //ThreadItem := TThreadItem.Create(
+                                       //      nil,
+                    //    Get2chBoard2ThreadURL( Board, ChangeFileExt( Rec.FFileName, '' )) );
+                    ThreadItem := TThreadItem.Create(
+                       is2ch,
+                        Get2chBoard2ThreadURL( Board, ChangeFileExt( Rec.FFileName, '' )),
+                        host, Board.BBSID, ChangeFileExt( Rec.FFileName, '' ) );
+                end;
+
+                ThreadItem.BeginUpdate;
                                if FileList.Count <> 0 then
                                        if FileList.Find( ThreadItem.FileName, Index ) then
                                                FileList.Delete( Index );
 
-                               ThreadItem.BeginUpdate;
                                ThreadItem.No := Rec.FNo;
                                ThreadItem.FileName := Rec.FFileName;
                                ThreadItem.Title := Rec.FTitle;
@@ -620,41 +619,6 @@ begin
                                        end;
                                end;
 
-                               //\91O\89ñ\88Ù\8fí\8fI\97¹\8e\9e\83`\83F\83b\83N
-                               if TmpFileList.Count <> 0 then begin
-                                       if TmpFileList.Find(ChangeFileExt(ThreadItem.FileName, '.tmp'), Index) then begin
-                                               ini := TMemIniFile.Create(ExtractFilePath(Board.GetFolderIndexFileName) + TmpFileList[Index]);
-                                               try
-                                                       tmpStr := ini.ReadString('Setting', 'RoundDate', DateTimeToStr(ZERO_DATE));
-                                                       ThreadItem.RoundDate := ConvertDateTimeString(tmpStr);
-
-                                                       tmpStr := ini.ReadString('Setting', 'LastModified', DateTimeToStr(ZERO_DATE));
-                                                       ThreadItem.LastModified := ConvertDateTimeString(tmpStr);
-                                                       ThreadItem.Count := ini.ReadInteger('Setting', 'Count', 0);
-                                                       ThreadItem.NewReceive := ini.ReadInteger('Setting', 'NewReceive', 0);
-
-                                                       ThreadItem.Size := ini.ReadInteger('Setting', 'Size', 0);
-                                                       if(ThreadItem.Size = 0) and (FileExists(ThreadItem.GetThreadFileName)) then begin
-                                                               try
-                                                                       ThreadItem.Size := GetFileSize(ThreadItem.GetThreadFileName) - ThreadItem.Count;
-                                                               except
-                                                               end;
-                                                       end;
-
-
-                                                       ThreadItem.Round := ini.ReadBool('Setting', 'Round', False);
-                                                       ThreadItem.UnRead := False;//ini.ReadBool('Setting', 'UnRead', False);
-                                                       ThreadItem.ScrollTop := ini.ReadInteger('Setting', 'ScrollTop', 0);
-                                                       ThreadItem.AllResCount := ini.ReadInteger('Setting', 'AllResCount', ThreadItem.Count);
-                                                       ThreadItem.NewResCount := ini.ReadInteger('Setting', 'NewResCount', 0);
-                                                       ThreadItem.AgeSage := TGikoAgeSage(ini.ReadInteger('Setting', 'AgeSage', Ord(gasNone)));
-                                               finally
-                                                       ini.Free;
-                                               end;
-                                               DeleteFile(ExtractFilePath(Board.GetFolderIndexFileName) + TmpFileList[Index]);
-                                               TmpFileList.Delete(Index);
-                                       end;
-                               end;
 
                                ThreadItem.EndUpdate;
                                Board.Add(ThreadItem);
@@ -667,9 +631,10 @@ begin
                if UnRead <> Board.UnRead then
                        Board.UnRead := UnRead;
 
+        Boardpath := ExtractFilePath(Board.GetFolderIndexFileName);
                //\83C\83\93\83f\83b\83N\83X\82É\96³\82©\82Á\82½\83\8d\83O\82ð\92Ç\89Á\81i\95\85\82ê\83C\83\93\83f\83b\83N\83X\91Î\89\9e\81j
                for i := 0 to FileList.Count - 1 do begin
-                       FileName := ExtractFileDir(Board.GetFolderIndexFileName) + '\' + FileList[i];
+                       FileName := Boardpath + FileList[i];
 
                        //ResRec := DivideStrLine(ReadThreadFile(FileName, 1));
                        if usePlugIn then begin
@@ -706,6 +671,45 @@ begin
                        Board.Add(ThreadItem);
                end;
                Board.EndUpdate;
+
+               //\91O\89ñ\88Ù\8fí\8fI\97¹\8e\9e\83`\83F\83b\83N
+        for i := TmpFileList.Count - 1 downto 0 do begin
+        //if TmpFileList.Count <> 0 then begin
+            ThreadItem := Board.FindThreadFromFileName(ChangeFileExt(TmpFileList[i], '.dat'));
+            if ThreadItem <> nil then begin
+            //if TmpFileList.Find(ChangeFileExt(ThreadItem.FileName, '.tmp'), Index) then begin
+                ini := TMemIniFile.Create(Boardpath + TmpFileList[i]);
+                try
+                    tmpStr := ini.ReadString('Setting', 'RoundDate', DateTimeToStr(ZERO_DATE));
+                    ThreadItem.RoundDate := ConvertDateTimeString(tmpStr);
+
+                    tmpStr := ini.ReadString('Setting', 'LastModified', DateTimeToStr(ZERO_DATE));
+                    ThreadItem.LastModified := ConvertDateTimeString(tmpStr);
+                    ThreadItem.Count := ini.ReadInteger('Setting', 'Count', 0);
+                    ThreadItem.NewReceive := ini.ReadInteger('Setting', 'NewReceive', 0);
+
+                    ThreadItem.Size := ini.ReadInteger('Setting', 'Size', 0);
+                    if(ThreadItem.Size = 0) and (FileExists(ThreadItem.GetThreadFileName)) then begin
+                        try
+                            ThreadItem.Size := GetFileSize(ThreadItem.GetThreadFileName) - ThreadItem.Count;
+                        except
+                        end;
+                    end;
+
+
+                    ThreadItem.Round := ini.ReadBool('Setting', 'Round', False);
+                    ThreadItem.UnRead := False;//ini.ReadBool('Setting', 'UnRead', False);
+                    ThreadItem.ScrollTop := ini.ReadInteger('Setting', 'ScrollTop', 0);
+                    ThreadItem.AllResCount := ini.ReadInteger('Setting', 'AllResCount', ThreadItem.Count);
+                    ThreadItem.NewResCount := ini.ReadInteger('Setting', 'NewResCount', 0);
+                    ThreadItem.AgeSage := TGikoAgeSage(ini.ReadInteger('Setting', 'AgeSage', Ord(gasNone)));
+                finally
+                    ini.Free;
+                end;
+                DeleteFile(Boardpath + TmpFileList[i]);
+            end;
+        end;
+
        finally
                sl.Free;
                FileList.Free;