2016-06-07 3 views
0

Я не понял, почему он не работает. Ошибка показывает, что newArraylist (line 13);newSreamReader (line 14, 24) не существует. Любая помощь будет оценена по достоинству.Скопируйте текст по указанной строке

using System; 
using System.IO; 
using System.Collections; 
namespace InsertLineInTextFile 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string strTextFileName = "file.txt"; 
      int iInsertAtLineNumber = 2; 
      string strTextToInsert = "Amudha"; 
      ArrayList lines = new ArrayList(); 
      StreamReader rdr = new StreamReader(strTextFileName); 
      string line; 
      while ((line = rdr.ReadLine()) != null) lines.Add(line); 
      rdr.Close(); 
      if (lines.Count > iInsertAtLineNumber) lines.Insert(iInsertAtLineNumber, strTextToInsert); 

      else 
       lines.Add(strTextToInsert); 
      StreamWriter wrtr = new StreamWriter(strTextFileName); 
      foreach (string strNewLine in lines) wrtr.WriteLine(strNewLine); 
      wrtr.Close(); 
     } 
    } 
} 
+2

Попробуйте с 'новый ArrayList()' и 'новый SreamReader (strTextFileName)' –

+0

@QuentinRoger .. Где я должен упомянуть это .. – user6435267

ответ

0

Во-первых, вам нужно подумать о том, чего вы достигнете; обратный engeniering (увы!) Говорит

вставки strTextToInsert на iInsertAtLineNumber линия из имя_файла файла (или добавить текст, если файл слишком коротка)

Затем реализация:

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 

... 
string fileName = "file.txt"; 
int iInsertAtLineNumber = 2; 
string strTextToInsert = "Amudha"; 

List<String> lines = File 
    .ReadLines(fileName) 
    .ToList(); 

if (lines.Count > iInsertAtLineNumber) 
    lines.Insert(iInsertAtLineNumber, strTextToInsert); 
else 
    lines.Add(strTextToInsert); 

File.WriteAllLines(fileName, lines); 

Пожалуйста, не используйте устаревшей класса ArrayList но List<T> (List<String> в этом вопросе). Часто File.ReadLines и File.WriteAllLines являются более доступными для чтения и Просты в обслуживании than StreamReader/StreamWriter.

+0

Где я должен упомянуть об этом .. Извините спросить это .. – user6435267

+0

@ user6435267: Просто в самом начале вопроса: «Я попытался вставить строку ...», то ваш код; наконец, ваша проблема - (пожалуйста, не «она не работает» - если она сработала, вы не отправили вопрос) - * ошибка компиляции времени * в строке # ... («...»); цитируйте сообщение, которое показало компилятор –

+0

Я пробовал ваш код .. Он говорит имя. strTextFileName не существует .. – user6435267

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