2013-04-12 2 views
-2

줄 옆에 문자열을 쓰고 임의로 줄을 쓸 수 있으며 줄을 지우는 방법을 알고 싶습니다. StreamReader 작품 : 여기에줄 옆에 문자열 작성 또는 문자열 삭제

using (StreamReader sb = new StreamReader("admin.txt")) 
{ 
    string[] ffoo = File.ReadAllLines("admin.txt"); 
    string[] ppoof = ffoo[0].Split(';'); 

    string line; 

    while ((line = sb.ReadLine()) != null) 
    { 
    if (line.StartsWith("#" + Server.Name.ToLower() + ": ")) 
    { 
     string[] punch = line.Split(';'); 
     if (!punch.Contains(Channel.Name.ToLower())) 
     { 
     StringBuilder str = new StringBuilder("admin.txt"); 
     str.Append(Channel.Name.ToLower() + ";"); 
     return; 
     } 
    } 
} 

목록이 만들어하는 방법입니다, 내 말은 내가 단지 라인을 작성할 수 있습니다

#main: alien;nobody;somebody; 
#devs: headdev;wae; 

그것은 그냥 메인 채널 옆에 뭔가를 쓸 수 없습니다 미세을 읽거나 dev에있는 그것의 끝에있는 문자열, 그리고 나는 main에 무언가를 쓰고 싶다. 또한 나는 삭제하는 방법에 몇 가지 문제가있다. 메인이나 dev의 관리자. 또한이 파일은 특대 크기가 될 것이고 아마도 우리가 그것을 사용한 후에 500 줄을 포함 할 것입니다. 그래서 당신이 큰 파일을위한 해결책을 줄 수 있다면 제발, 감사합니다!

+3

'StringBuilder'는 당신이 생각하는대로하지 않습니다. – SLaks

+0

@SLaks 그런 다음 줄을 쓰는 방법과 줄을 지우는 방법은 무엇입니까? – 111WARLOCK111

답변

0

StringBuilder.Append를 호출하면 문자열의 끝에 추가됩니다.

StringBuilder (string) 생성자를 호출하면 생성자의 매개 변수로 전달 된 문자열에 추가됩니다.

이 경우 "Admin.txt"를 문자열로 전달하지만 실제로 Admin.txt의 내용을 전달하려고하므로 내용을 읽어야합니다. 나는 당신이 생각하고 싶었던 무엇을 잘못 이해하는 경우

string[] lines = File.ReadAllLines("admin.txt"); 
for (int i = 0; i < lines.Length; i++) 
{ 
     if (lines[i].StartsWith(string.Format("#{0}: ", Server.Name.ToLower())) 
     { 
      if (!lines[i].Split(';').Contains(Channel.Name.ToLower())) 
       lines[i] += ";" + Channel.Name.ToLower(); 
     } 
    } 
File.WriteAllLines("admin.txt", lines); 

미안 :

트릭을 할해야합니다.

+0

뭔가 문제가 있습니다. 왜 그런지 잘 모르겠지만 클라이언트가 서버에 연결하여이 클라이언트가 작동 할 때마다 채팅에서 많은 오류가 발생할 수 있습니다. – 111WARLOCK111

+0

중단 점을 확인하고 확인할 수 있습니까? – Bauss