2016-10-05 3 views
0

각 줄마다 설정 및 값 조합이있는 구성 파일이 있습니다. 값이 무엇으로 설정되었는지는 모르겠지만 설정의 이름은 알고 있는데 전체 라인을 업데이트해야합니다. 나는 File.ReadAllText.Replace와 File.WriteAllText를 사용하는 수많은 예제를 발견했으나 특정 문자열을 다른 문자열로 대체하고 있습니다.특정 문자열이 포함 된 파일의 줄 바꾸기 #

설정 예 선 :

나는 "Server.ServerType ="이 예제에서 나는 "modded하게 Server.ServerType ="로 대체 할 포함 된 행을 찾을 필요가
Server.ServerType=official 

.

C#을 사용하여이 작업을 수행하는 가장 단순한 방법은 무엇입니까?

+0

[시스템. Text.RegularExpressions] (https://msdn.microsoft.com/en-us/library/xwewhkd1(v=vs.110)asp). 또는 [이 게시물] (http://stackoverflow.com/questions/485659/can-net-load-and-parse-a-properties-file-equivalent-to-java-properties-class)'= 'sign in value – gwillie

답변

0

"="기호로 줄을 분리 한 다음 첫 번째 요소를 사용하여 테스트하고 필요에 따라 두 번째 요소를 변경 한 다음 "="부호를 바꾸어 결합하십시오. 난 당신이 (IF/THENs 많은 것보다 쉽습니다) 여러 테스트를해야합니다 가정 스위치 사용 : 당신이 값을 여러 번 변경하면

string line = ReadLine(); 
    string[] parts = line.Split('='); 
    switch(parts[0]){ 
     case "Server.ServerType": 
     parts[1] = "modded"; 
     break; 
     .... 
    } 
    string newline = String.Join("=",parts); 
    WriteLine(newline); 

을, 당신은 사용할 수 있습니다

어쩌면
Dictionary<string,string> values = new Dictionary<string,string> 
string[] parts = Readline().Split('='); 
values.Add(parts[0],parts[1]); 
values["Server.ServerType"] = "modded"; 
.... 
foreach(KeyValuePair<string,string> kvp in values){ 
    WriteLine(kvp.Key+"="+kvp.Value); 
} 
+0

훌륭하다, 나는 그것을 시도 할 것이다. 고맙습니다! –

+0

도움이 된다니 기쁘다. 건배! –

관련 문제