Hola muy buenas!!..
Estoy intentando hacer un programita que parsee un fichero de texto demo.txt (muy desordenado) y divida cada párrafo desde una letra mayúscula hasta un punto aparte y lo guarde en otro fichero resultado pero linea por linea (1 párrafo por cada linea).
_____________________demo.txt____________________
Hola esta es una linea simple sin punto final
Esta linea empieza con una tabulacion pero tiene punto final y empieza con una mayúscula. Este párrafo es complementario del anterior porque no hay un punto a parte entonces deberia pertenecer al mismo parrafo.
Aquí empieza un párrafo bonito porque el anterior párrafo tuvo un punto y aparte.
En la linea anterior hay un \n pero no importa porque yo solo necesito cortar párrafos.
Aquí hay una gran tabulacion entonces habría que quitar el espacio.
_________________________________________________
Hasta ahora tengo escrito este pequeño código pero me tira todo el string en el fichero de una vez osea del tiron.
Código:
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
string leer_parrafo( istream &in ) {
string result, line;
// Leer y concatenar las líneas hasta que dos nuevas líneas sean leidas
while (getline( in, line )) {
if (line.empty()) break;
else result += line +' ';
// Deshacerse de ese último espacio
result.erase( result.length() -1 );
// Encontrar un string que no pertenesca al tabulador horizontal,
// nueva linea, tabulador vertical o retorno de carro
string::size_type i = result.find_first_not_of ( " \t\n\v\r\f" );
if ( i != string::npos )
continue;
}
return result;
}
int main() {
cout << "Leyendo parrafos desde el fichero...\n";
ifstream file( "demo.txt" );
ofstream resul( "resultado.txt" );
// Leer el fichero llamando a la funcion leer_parrafo
string fichero_parrafo = leer_parrafo( file );
file.close();
cout << "Excribiendo parrafos al fichero resultado.txt...\n";
//escribir la cadena fichero_parrafo en resultado.txt
resul << fichero_parrafo;
//cerrar el fichero resul
resul.close();
cout << "ECHO.." << endl;
return 0;
}
Agradezco de antemano cualquier ayuda.. Un abrazo!!!...