2013-04-12 7 views
-2

Я хочу написать строку рядом с строкой, случайным образом может быть любая строка, также я хочу знать, как удалить строку из нее, вот как мой StreamReader работы:C# - Запись строки рядом с строкой или удаление строки

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, и я хочу написать что-то на главном, также у меня есть некоторые проблемы с тем, как удалить e admin от 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

Смежные вопросы