2014-09-24 2 views
-2

텍스트 파일에서 줄 바꿈을 제거하고 C#에서 StreamReader를 사용하여 다음 줄을 시작하는 방법. 세션 [ "패키지 2은"] "거짓"인 경우C#에서 텍스트 파일의 줄 바꿈 문자를 제거하는 방법

내 코드는,

try 
{ 
    StringBuilder sb = new StringBuilder(); 
    if (File.Exists(Server.MapPath("OrderDetails.txt"))) 
    { 
     string sFileName = Server.MapPath("OrderDetails.txt"); 
     using (StreamReader StreamReader1 = new StreamReader(sFileName)) 
     { 
      sb.Append(StreamReader1.ReadToEnd()); 
      StreamReader1.Close(); 
      try 
      { 
       if (Session["Package1"].ToString() == "true") 
       { 
        sb.Replace("{Package1}", "Package1"); 
       } 
       else 
       { 
        sb.Replace("{Package1}", null); 
       } 

       if (Session["Package2"].ToString() == "true") 
       { 
        sb.Replace("{Package2}", "Package2"); 
       } 
       else 
       { 
        sb.Replace("{Package2}", null); 
       } 

       if (Session["Package3"].ToString() == "true") 
       { 
        sb.Replace("{Package3}", "Package3"); 
       } 
       else 
       { 
        sb.Replace("{Package3}", null); 
       } 

      } 
      catch { } 
     } 
    } 

    return sb.ToString(); 
} 
catch (Exception ex) 
{ 
    return ""; 
} 

내가

, Package1

을 다음과 같은 출력을 얻고 // 나는 라인 SPCE를 얻고있다 여기

패키지 3

세션 [ "패키지 2은"] "FALSE"인 경우 1,515,

난 Package1

Package3

I는 VS2008 (3.5)을 사용하고,

이 이런 결과를 원한다.

+0

을 시도 할 것

경우 (세션 [ "패키지 2"]. ToString() == "true"로)'하지'경우 (세션 [ "Package2"])'? –

답변

0

공백 만있는 줄을 건너 뛰고 싶습니까? 비어 있다면 다음 라인으로 독자를 진행하고 확인하는 대신 ReadLine를 사용하여 모두 StringBuilder에서

string line; 
using (StreamReader StreamReader1 = new StreamReader(sFileName)) 
{ 
    while ((line = StreamReader1.ReadLine()) != null) 
    { 
     if (!string.IsNullOrEmpty(line.Trim())) 
      sb.AppendLine(line); 
     // ... 
    } 
} 
+0

IsNullOrWhiteSpace가 3.5 verson – Srinivas

+0

@ 1612를 사용하고 있기 때문에 오류가 표시됩니다. 이미 수정되었습니다. :) –

0

당신이 줄 바꿈을 표현하기 위해 사용되는 문자를 포함하는 파일에서 모든 것을 추가합니다. 그러나 대체 코드를 사용하려고하면 줄 바꿈을 제외한 문자열의 문자 만 바꿉니다. 이 개행은 StringBuilder 버퍼에 남아 있으며 빈 행의 원인이됩니다. 내가 '그런 추한 방식으로 부울 값을 확인 할 수있는 이유는 무엇

...... 
string replacement = (Session["Package1"].ToString() == "true" ? 
              "Package1" + Environment.NewLine, ""); 
sb.Replace("{Package1}" + Environment.NewLine, replacement); 
...... 
관련 문제