Muy buenas, a ver si alguien sabe que funcion hay en c# para hacer el getline de c++, tengo este codigo y no veo ninguna funcion equivalente
std::string buffer;
std::ifstream file;
file.open ("temp1");
std::ofstream tempfile;
tempfile.open ("temp2");
if (file.is_open())
{
while(!file.eof())
{
std::getline(file, buffer, ',');
tempfile << buffer;
}
tempfile.close();
file.close();
}
He visto el readline, pero no veo que le pueda pasar parametros de delimitador, necesito abrir un archivo y quitar los valores que no quiera y guardar el resultado en otro archivo. ¿Alguna idea de por donde hechar un vistazo?
saludos,
Usa el metodo ReadLine del objeto TextReader de System.IO para leer las cadenas de un archivo de texto y despues usa el metodo Split de la clase String para extraer las partes de la cadena delimitadas por el caracter que quieras:
System.IO.TextReader tr = new System.IO.StreamReader("C:\\autoexec.bat");
(...)
string[] words; // Array donde volcaremos las partes separadas por comas en la cadena.
words = tr.ReadLine().Split(','); // Extraemos todo el contenido separado por el delimitador.
Salu2...
¿pero split no parte la linea?, segun he visto por la doc, el split corta la linea por el delimitador, no se lo come.
ejemplo: hola, esto , es, el ,texto, que, quiero;
resultado en c++ con getline
hola esto es el texto que quiero.
resultado en c# con split
hola
esto
es
el
texto
que
quiero
¿o estoy equivocado?
saludos ,
Split descarta el delimitador cuando parte una cadena.
Un saludo!
Vicente
Edit: creo que no te entiendo, pero Split no añade un retorno de carro al final del string, eso depende de ti y de como lo imprimas (si usas Console.Write te va a salir lo mismo que en C++, si usas Console.WriteLine entonces claro que te salen en líneas diferentes).