ギコナビ
修訂 | 3916c684b7c91c1c55f3e081cfc0759e56cd9a85 (tree) |
---|---|
時間 | 2006-07-03 23:00:35 |
作者 | h677 <h677> |
Commiter | h677 |
初期化ファイルの処理をまとめるクラスを新設
@@ -0,0 +1,94 @@ | ||
1 | +unit DefaultFileManager; | |
2 | + | |
3 | +{! | |
4 | +\file DefaultFileManager.pas | |
5 | +\brief úÝèt@CÇNX | |
6 | +} | |
7 | +interface | |
8 | + | |
9 | +uses | |
10 | + Windows, Classes, Controls, ComCtrls, SysUtils; | |
11 | + | |
12 | +type | |
13 | + | |
14 | + TDefaultFileManager = class(TObject) | |
15 | + private | |
16 | + {! | |
17 | + \brief âÎpXÅÔ·iCXg[tH_º) | |
18 | + \param Path CXg[tH_©çÌÎpX | |
19 | + } | |
20 | + class function GetFilePath(const Path: String) : String; | |
21 | + {! | |
22 | + \brief FromFileª¶ÝµCToFileª¶ÝµÈ¢êÉRs[·é | |
23 | + \param FromFile úÝèt@Czu³ | |
24 | + \param ToFile zuæ | |
25 | + } | |
26 | + class procedure CopyFile(const FromFile: String; const ToFile : String); | |
27 | + public | |
28 | + {! | |
29 | + \brief úÝèt@CðwèÊuÉRs[·é | |
30 | + \param FileName úÝèt@CÌzuwèt@C | |
31 | + } | |
32 | + class procedure CopyDefaultFiles(const FileName: String); | |
33 | + end; | |
34 | + | |
35 | +implementation | |
36 | + | |
37 | +uses | |
38 | + IniFiles,ShellAPI, GikoSystem, MojuUtils; | |
39 | + | |
40 | +class procedure TDefaultFileManager.CopyDefaultFiles(const FileName: String); | |
41 | +const | |
42 | + FROM_KEY = 'FROM'; | |
43 | + TO_KEY = 'TO'; | |
44 | +var | |
45 | + ini : TMemIniFile; | |
46 | + sections : TStringList; | |
47 | + i: Integer; | |
48 | +begin | |
49 | + if ( FileExists(FileName) ) then begin | |
50 | + ini := TMemIniFile.Create( FileName ); | |
51 | + sections := TStringList.Create; | |
52 | + try | |
53 | + // ·×ÄÌZNVðÇÝÞ | |
54 | + ini.ReadSections(sections); | |
55 | + for i := 0 to sections.Count - 1 do begin | |
56 | + // FROM ©ç TOÉt@CðRs[·é | |
57 | + CopyFile( ini.ReadString(sections[i], FROM_KEY, ''), | |
58 | + ini.ReadString(sections[i], TO_KEY, '') ); | |
59 | + end; | |
60 | + finally | |
61 | + sections.Clear; | |
62 | + sections.Free; | |
63 | + ini.Free; | |
64 | + end; | |
65 | + end; | |
66 | + | |
67 | +end; | |
68 | +class procedure TDefaultFileManager.CopyFile( | |
69 | + const FromFile: String; const ToFile : String); | |
70 | +var | |
71 | + fromPath, toPath : String; | |
72 | +begin | |
73 | + // zu³CzuæÌǿ穪¢èÌêͽàµÈ¢ | |
74 | + if ( (FromFile <> '') and (ToFile <> '') ) then begin | |
75 | + // ../ Æ©ÅCXg[tH_æèãÌÌæÉANZX³êéÆ | |
76 | + // ¢éÌÅu·µÄµÜ¤ | |
77 | + fromPath := GetFilePath( FromFile ); | |
78 | + toPath := GetFilePath( ToFile ); | |
79 | + if ( FileExists(fromPath) ) then begin | |
80 | + // zuæÉ Á½ç½àµÈ¢ | |
81 | + if (not FileExists(toPath)) then begin | |
82 | + Windows.CopyFile( PChar(fromPath), PChar(toPath), False); | |
83 | + end; | |
84 | + end; | |
85 | + end; | |
86 | + | |
87 | +end; | |
88 | +class function TDefaultFileManager.GetFilePath(const Path: String): String; | |
89 | +begin | |
90 | + Result := GikoSys.GetAppDir + | |
91 | + CustomStringReplace( | |
92 | + CustomStringReplace(Path, '/', '\' ), '..\', ''); | |
93 | +end; | |
94 | +end. |
@@ -448,7 +448,8 @@ uses | ||
448 | 448 | ToolBarUtil, NewBoard, HTMLCreate, IndividualAbon, |
449 | 449 | GikoBayesian, About, ShellAPI, |
450 | 450 | RoundName, RoundData, Menus, ListViewUtils, |
451 | - ThreadControl, GikoMessage, InputAssist; | |
451 | + ThreadControl, GikoMessage, InputAssist, | |
452 | + DefaultFileManager; | |
452 | 453 | |
453 | 454 | const |
454 | 455 | MSG_ERROR : string = 'G['; |
@@ -1507,6 +1508,11 @@ end; | ||
1507 | 1508 | ////////////////////////////////XbhÜŨµÜ¢///////////////////// |
1508 | 1509 | procedure TGikoDM.DataModuleCreate(Sender: TObject); |
1509 | 1510 | begin |
1511 | + // GikoDMæèàú»³êéKvª ét@Cª¢éƱ¯éII | |
1512 | + // ú»ÔÉÓ·é±ÆII | |
1513 | + //ñN®Ìú»t@CÝè | |
1514 | + TDefaultFileManager.CopyDefaultFiles( | |
1515 | + GikoSys.GetAppDir + 'defaultFiles.ini'); | |
1510 | 1516 | end; |
1511 | 1517 | // ************************************************************************* |
1512 | 1518 | //! Oõ_CAOð\¦·é |
@@ -71,7 +71,8 @@ uses | ||
71 | 71 | BrowserRecord in 'BrowserRecord.pas', |
72 | 72 | GikoMessage in 'GikoMessage.pas', |
73 | 73 | InputAssist in 'InputAssist.pas' {InputAssistForm}, |
74 | - InputAssistDataModule in 'InputAssistDataModule.pas' {InputAssistDM: TDataModule}; | |
74 | + InputAssistDataModule in 'InputAssistDataModule.pas' {InputAssistDM: TDataModule}, | |
75 | + DefaultFileManager in 'DefaultFileManager.pas'; | |
75 | 76 | |
76 | 77 | {$R *.RES} |
77 | 78 | {$R gikoResource.res} |