| 1 |
//--------------------------------------------------------------------------- |
| 2 |
// 言語別定義ファイル情報を管理するクラス |
| 3 |
//--------------------------------------------------------------------------- |
| 4 |
#include <vcl.h> |
| 5 |
#include <vcl\inifiles.hpp> |
| 6 |
|
| 7 |
#pragma hdrstop |
| 8 |
|
| 9 |
#pragma package(smart_init) |
| 10 |
#include "KDefConfig.h" |
| 11 |
|
| 12 |
//--------------------------------------------------------------------------- |
| 13 |
/** |
| 14 |
* コンストラクタ |
| 15 |
* ファイル名を受け取ってロードする |
| 16 |
*/ |
| 17 |
KDefConfig::KDefConfig(AnsiString _FileName) { |
| 18 |
FileName = _FileName; |
| 19 |
LoadFromFile(); |
| 20 |
} |
| 21 |
//--------------------------------------------------------------------------- |
| 22 |
/** |
| 23 |
* コンストラクタ |
| 24 |
* 言語名とパスを受け取って自分を作成する |
| 25 |
*/ |
| 26 |
KDefConfig::KDefConfig(AnsiString _FileName,AnsiString _LangName, AnsiString _ExePath) { |
| 27 |
FileName = _FileName; |
| 28 |
LangName = _LangName; |
| 29 |
ExePath = _ExePath; |
| 30 |
|
| 31 |
LangExt = ""; |
| 32 |
UseHelpFile = false; |
| 33 |
RegExpLang = "";//言語を判定する正規表現 |
| 34 |
|
| 35 |
Option = "";//オプション |
| 36 |
LastFolder = "c:\\";//最後にアクセスしたフォルダ |
| 37 |
HelpFile = "";//ヘルプファイル |
| 38 |
TempFile = "Copal.tmp";//テンポラリファイルの名前 |
| 39 |
|
| 40 |
RegExpErr = ""; //エラー行取得用の正規表現 |
| 41 |
ShowError = false; //エラーコードを表示するか |
| 42 |
CheckErrorCode = true; |
| 43 |
UseTagJumpToOtherFile = false; |
| 44 |
|
| 45 |
SaveToFile(); |
| 46 |
} |
| 47 |
//--------------------------------------------------------------------------- |
| 48 |
/** |
| 49 |
* ファイルのロード |
| 50 |
* ファイルが無ければ勝手に作成する |
| 51 |
*/ |
| 52 |
void KDefConfig::LoadFromFile(void) { |
| 53 |
TIniFile *IniFile = new TIniFile(FileName); |
| 54 |
|
| 55 |
LangName = IniFile->ReadString("Language","Name","Perl"); |
| 56 |
LangExt = IniFile->ReadString("Language","Ext","pl"); |
| 57 |
RegExpLang = IniFile->ReadString("Language","RegExpLang","(^#!.*//perl.*)"); |
| 58 |
|
| 59 |
ExePath = IniFile->ReadString("Environment","ExePath","c:\\perl\\bin\\perl.exe"); |
| 60 |
Option = IniFile->ReadString("Environment","Option" , ""); |
| 61 |
LastFolder = IniFile->ReadString("Environment","LastFolder","c:\\"); |
| 62 |
|
| 63 |
UseHelpFile = IniFile->ReadBool("Environment","UseHelpFile",false); |
| 64 |
HelpFile = IniFile->ReadString("Environment","HelpFile",""); |
| 65 |
TempFile = IniFile->ReadString("Environment","TempFile","copal.tmp"); |
| 66 |
TempDir = IniFile->ReadString("Environment","TempDir",""); |
| 67 |
|
| 68 |
RegExpErr = IniFile->ReadString("Debug","RegExpErr","line [0-9]+.?"); |
| 69 |
ShowError = IniFile->ReadBool("Debug","ShowError",false); |
| 70 |
CheckErrorCode = IniFile->ReadBool("Debug","CheckErrorCode",true); |
| 71 |
|
| 72 |
UseTagJumpToOtherFile = IniFile->ReadBool("Debug","UseTagJumpToOtherFile",false); |
| 73 |
RegExpLine = IniFile->ReadString("Debug","RegExpLine",""); |
| 74 |
RegExpFile = IniFile->ReadString("Debug","RegExpFile",""); |
| 75 |
|
| 76 |
|
| 77 |
delete IniFile; |
| 78 |
} |
| 79 |
//--------------------------------------------------------------------------- |
| 80 |
/** |
| 81 |
* ファイルのセーブ |
| 82 |
*/ |
| 83 |
void KDefConfig::SaveToFile(void) { |
| 84 |
|
| 85 |
TIniFile *IniFile = new TIniFile(FileName); |
| 86 |
|
| 87 |
IniFile->WriteString("Language","Name",LangName); |
| 88 |
IniFile->WriteString("Language","Ext",LangExt); |
| 89 |
IniFile->WriteString("Language","RegExpLang",RegExpLang); |
| 90 |
|
| 91 |
IniFile->WriteString("Environment","ExePath",ExePath); |
| 92 |
IniFile->WriteString("Environment","Option" ,Option); |
| 93 |
IniFile->WriteString("Environment","LastFolder",LastFolder); |
| 94 |
|
| 95 |
IniFile->WriteBool("Environment","UseHelpFile",UseHelpFile); |
| 96 |
IniFile->WriteString("Environment","HelpFile",HelpFile); |
| 97 |
IniFile->WriteString("Environment","TempFile",TempFile); |
| 98 |
IniFile->WriteString("Environment","TempDir",TempDir); |
| 99 |
|
| 100 |
IniFile->WriteString("Debug","RegExpErr",RegExpErr); |
| 101 |
IniFile->WriteBool("Debug","ShowError",ShowError); |
| 102 |
IniFile->WriteBool("Debug","CheckErrorCode",CheckErrorCode); |
| 103 |
|
| 104 |
IniFile->WriteBool("Debug","UseTagJumpToOtherFile",UseTagJumpToOtherFile); |
| 105 |
IniFile->WriteString("Debug","RegExpLine",RegExpLine); |
| 106 |
IniFile->WriteString("Debug","RegExpFile",RegExpFile); |
| 107 |
|
| 108 |
delete IniFile; |
| 109 |
} |
| 110 |
//--------------------------------------------------------------------------- |
| 111 |
AnsiString |
| 112 |
KDefConfig::GetDefaultExt(void) { |
| 113 |
if(LangExt.Trim() == "") { |
| 114 |
return ""; |
| 115 |
} |
| 116 |
TStringList *st = new TStringList; |
| 117 |
st->CommaText = LangExt; |
| 118 |
AnsiString Ext = st->Strings[0]; |
| 119 |
delete st; |
| 120 |
return Ext; |
| 121 |
} |
| 122 |
//--------------------------------------------------------------------------- |
| 123 |
/** |
| 124 |
* その拡張子を含むか |
| 125 |
*/ |
| 126 |
bool |
| 127 |
KDefConfig::Contains(AnsiString Ext){ |
| 128 |
TStringList *st = new TStringList; |
| 129 |
st->CommaText = LangExt; |
| 130 |
for(int i=0;i<st->Count;i++){ |
| 131 |
AnsiString Ext2 = "."+st->Strings[i]; |
| 132 |
if(Ext2.LowerCase() == Ext.LowerCase()) { |
| 133 |
delete st; |
| 134 |
return true; |
| 135 |
} |
| 136 |
} |
| 137 |
delete st; |
| 138 |
return false; |
| 139 |
} |
| 140 |
//--------------------------------------------------------------------------- |
| 141 |
|