Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/Favorite.pas

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

revision 1.53 by h677, Sun Mar 2 03:51:19 2008 UTC revision 1.54 by h677, Sun May 24 12:37:06 2009 UTC
# Line 425  end; Line 425  end;
425    
426  procedure TFavoriteDM.WriteFavorite;  procedure TFavoriteDM.WriteFavorite;
427  var  var
428          FileName, tmpFileName: string;          FileName, tmpFileName, bakFileName: string;
429          SaveList: TStringList;          SaveList: TStringList;
430        Buffer: array[0..MAX_PATH] of Char;   // バッファ
431        FileRep : Boolean;
432  begin  begin
433      FavoriteDM.Modified := true;      FavoriteDM.Modified := true;
434          FileName := GikoSys.GetConfigDir + FAVORITE_FILE_NAME;          FileName := GikoSys.GetConfigDir + FAVORITE_FILE_NAME;
         if FileExists(FileName) then begin  
                 tmpFileName := GikoSys.GetConfigDir + '~' + FAVORITE_FILE_NAME;  
                 if FileExists(tmpFileName) then  
                         SysUtils.DeleteFile(tmpFileName); //SysUtils.をつけないとWinAPIと区別できないので  
                 RenameFile(FileName, tmpFileName);  
         end;  
435          SaveList := TStringList.Create;          SaveList := TStringList.Create;
436          try      tmpFileName := '';
437                  SaveList.Add('<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>');      // 書き込み用一時ファイル取得
438                  SaveList.Add('<favorite>');      if GetTempFileName(PChar(GikoSys.GetConfigDir), PChar('fav'), 0, Buffer) <> 0 then begin
439                  try          tmpFileName := Buffer;
440                          AddSaveString(TreeView.Items.GetFirstNode.getFirstChild, SaveList);          try
441                  except              try
442                  end;                  SaveList.Add('<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>');
443                  SaveList.Add('</favorite>');                  SaveList.Add('<favorite>');
444                  SaveList.SaveToFile(FileName);                  AddSaveString(TreeView.Items.GetFirstNode.getFirstChild, SaveList);
445          finally                  SaveList.Add('</favorite>');
446                  SaveList.Free;                  // 一時ファイルとして保存
447          end;                  SaveList.SaveToFile(tmpFileName);
448                    FileRep := True;
449                    // 前のファイルを移動する
450                    if FileExists(FileName) then begin
451                        bakFileName := GikoSys.GetConfigDir + '~' + FAVORITE_FILE_NAME;
452                        if FileExists(bakFileName) then begin
453                            FileRep := SysUtils.DeleteFile(bakFileName); //SysUtils.をつけないとWinAPIと区別できないので
454                        end;
455                        if FileRep then begin
456                            FileRep := RenameFile(FileName, bakFileName);
457                        end;
458                    end;
459                    // 正規のファイル名にリネームする
460                    if FileRep then begin
461                        FileRep := RenameFile(tmpFileName, FileName);
462                    end;
463                except
464                end;
465            finally
466                SaveList.Free;
467            end;
468        end;
469  end;  end;
470    
471  procedure TFavoriteDM.AddSaveString(Node: TTreeNode; SaveList: TStringList);  procedure TFavoriteDM.AddSaveString(Node: TTreeNode; SaveList: TStringList);

Legend:
Removed from v.1.53  
changed lines
  Added in v.1.54

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