/*
Oracle의 이름
1。查询注册表,获取oracle安装根目录
예: HKEY_LOCAL_MACHINESOFTWAREORACLEORACLE_HOME REG_SZ E:ORACLEORA92
得知oracle服务name文件所의 위치는 根目录networkADMINtnsnames.ora입니다.
2。解析该文件,该文件结构如
# ------------------------------------------------
포털 =
(설명 =
(ADDRESS_LIST =
(주소 = (프로토콜 = TCP)(호스트 = 134.104.52.6)(포트 = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = 포털)
)
)
3。解析要点:
일행일행获取再解析
跳过以#打头的注释行
过滤掉空格后, 首字符에서 A~z 间的行就包含了Oracle服务name
截取该行第一个“=”号左边的字符串,trim处理后就是Oracle服务name了
*/
공개 정적 문자열[] GetOracleTnsNames()
{
노력하다
{
// 查询注册表,获取oracle服务文件路径
RegistryKey 키 = Registry.LocalMachine.OpenSubKey("소프트웨어").OpenSubKey("ORACLE");
string home = (string)key.GetValue("ORACLE_HOME");
문자열 파일 = home + @"networkADMINtnsnames.ora";
// 解析文件
스트링라인;
ArrayList arr = new ArrayList();
StreamReader sr = 새로운 StreamReader(파일);
while ((line = sr.ReadLine()) != null)
{
line = 라인.트림();
if (라인 != "")
{
char c = 라인[0];
if ( c>= 'A' && c<='z')
arr.Add(line.Substring(0, line.IndexOf(' ')));
}
}
sr.닫기();
// 返回字符串数组
return (string[])arr.ToArray(typeof(string));
}
잡기 (예외예외)
{
null을 반환;
}
}
http://www.cnblogs.com/surfsky/archive/2006/08/29/489682.html