2009-08-07 6 views
3

Wie analysiere ich tnsnames.ora Datei mit Visual C# (Visual Studio 2008 Express Edition), um die TNS-Namen zu erhalten? Zum Beispiel meine tnsnames.ora Datei enthältParsen tnsnames.ora in Visual C# 2008

ORCL = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = shaman)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl) 
    ) 
) 
BILL = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.58)(PORT = 1522)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl) 
    ) 
) 

Wie kann ich diese Datei analysieren, um die TNSNAMES (dh ORCL, BILL usw.) zu bekommen. Verzeihen Sie mir, wenn diese Frage zu offensichtlich klingt, ich lerne & versuche meine Hand in C#

Antwort

0

zusammen mit denen von Sathya zur Verfügung gestellt, erstellen Sie eine Methode:

StringBuilder strTns = new StringBuilder(); 

foreach (var fileLine in System.IO.File.ReadAllLines(fiTNS.FullName)) 
{ 
    if ((fileLine.Length > 0 
      && fileLine.Trim().Substring(0,1) != "#" 
     ) 
      && (fileLine.Length > 0 
       && fileLine.Trim().Substring (0,1) != "/" 
      ) 
     ) 

     { 
      strTns.AppendFormat("{0}{1}", fileLine, Environment.NewLine); 
     } 
} 

//TNSNamesValues = System.IO.File.ReadAllText (fiTNS.FullName).ToString().Replace ("\n", "").Replace ("\r", ""); 
String[] splitSeparator = LoadTNSNames (OracleHomeRegistryKey).ToArray(); 
String[] TNS = strTns.ToString().Split (splitSeparator, StringSplitOptions.None); 
+0

Was ist das LoadTNSNames? Wo ist der Quellcode? – Kiquenet

1
public List<string> ReadTextFile(string FP) 
{ 

    string inputString; 
    List<string> List = new List<string>(); 

    try 
    { 
     StreamReader streamReader = File.OpenText(FP.Trim()); // FP is the filepath of TNS file 

     inputString = streamReader.ReadToEnd(); 
     string[] temp = inputString.Split(new string[] {Environment.NewLine},StringSplitOptions.None); 

     for (int i = 0; i < temp.Length ;i++) 
     { 
      if (temp[i].Trim(' ', '(').Contains("DESCRIPTION")) 
      {     
       string DS = temp[i-1].Trim('=', ' '); 
       List.Add(DS); 
      }    

     } 
     streamReader.Close(); 
    } 
    catch (Exception EX) 
    { 
    } 


    return List; 

} 
+0

OP erwähnt er ist ziemlich neu in C#. Vielleicht könnte es hilfreich sein, einige Erklärungen und Begründungen hinzuzufügen, um Code zu vermeiden, der nicht vollständig verstanden wird. – shenles