To open the file for reading you can use the File.OpenText
".
File.OpenText
returns a StreamReader
, assuming it is a multi-line file, use the StreamReader.ReadLine
" to read row by line in a loop :
string linha;
using(var arquivo = File.OpenText("arquivo1.txt")) {
while ((linha = arquivo.ReadLine()) != null) {
// Use "linha" aqui ...
}
}
To get the sequence before the first space, use the String.IndexOf
:
string linha = "foo bar baz";
int indice = linha.IndexOf(" "); // 3. O número de caracteres antes do primeiro espaço
With the index of the characters you want to remove, use the String.Substring
to return the sequence from that index:
string linha = "foo bar baz";
int indice = linha.IndexOf(" ");
string outraLinha = "bar" + linha.Substring(indice);
Console.WriteLine(linha); // foo bar baz
Console.WriteLine(outraLinha); // bar bar baz
In your specific case, you can apply this way:
using System.IO;
// ...
string linha;
int contador = 0;
using(var arquivo = File.OpenText("foobar.txt")) { // Abre o arquivo para leitura
while ((linha = arquivo.ReadLine()) != null) { // Lê linha por linha
int espaco = linha.IndexOf(" "); // Quantidade de caracteres antes do espaço
contador++; // Incrementa o número da linha atual
// Retorna os caracteres a partir do primeiro espaço
string linhaIndexada = "N" + contador + linha.Substring(espaco);
// Use "linhaIndexada" aqui ...
}
}
See DEMO