#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
int ObtenerNombreAlbaran(string &e,string &devolver)
{
for (int i = e.size()-1;i > -1;i--)
{
if (e[i] == ' ')
{
devolver = string(devolver.rbegin(),devolver.rend() );
return i;
}
else devolver += e[i];
}
//throw "Excepcion, nombre de hospital no encontrado";
return -1;
}
int main()
{
ifstream Datos("input.txt");
string linea;
string albaran;
string hospital;
int indice = 0;
if (!Datos)
{
cout<<"Error, fichero txt no encontrado";
cin.get();
return 1;
}
int numero = 0;
while (Datos.good())
{
getline(Datos,linea);
indice = ObtenerNombreAlbaran(linea,albaran);
if (indice == -1)
{
cout<<"--->Error, nombre de hospital no encontrado para el albaran: "<<linea<<endl;
linea.clear();
albaran.clear();
hospital.clear();
continue;
}
hospital = linea.substr(0,indice);
if (CreateDirectory(hospital.c_str(),NULL) == 0)
{
if (GetLastError() != ERROR_ALREADY_EXISTS)
{
cout<<"--->Error inesperado al crear la carpeta: "<<hospital<<" Permisos insuficientes?"<<endl;
linea.clear();
albaran.clear();
hospital.clear();
continue;
}
}
if (MoveFile(albaran.c_str(),string(hospital+"\\"+albaran).c_str()) == 0)
{
cout<<"--->Error al mover el albaran: "<<albaran<<". Puede que el albaran no exista?"<<endl;
linea.clear();
albaran.clear();
hospital.clear();
continue;
}
numero++;
cout<<numero<<" albaranes movidos"<<endl;
linea.clear();
albaran.clear();
hospital.clear();
}
cout<<endl<<endl<<"TERMINADO"<<endl;
cin.get();
return 0;
}
NeO2K1 escribió:Muchisimas gracias por tu currillo tio...
NeO2K1 escribió:Te debo un cafe si eres de Barcelona tio!!
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
int ObtenerNombreAlbaran(string &e,string &devolver)
{
for (int i = e.size()-1;i > -1;i--)
{
if (e[i] == ' ')
{
devolver = string(devolver.rbegin(),devolver.rend() );
return i;
}
else devolver += e[i];
}
return -1;
}
int main()
{
ifstream Datos("input.txt");
ofstream Error("Errores.txt");
string linea;
string albaran;
string hospital;
int indice = 0;
if (!Datos)
{
cout<<"Error, fichero txt no encontrado";
cin.get();
return 1;
}
int numero = 0;
//Sleep(1000);
while (Datos.good())
{
getline(Datos,linea);
indice = ObtenerNombreAlbaran(linea,albaran);
if (indice == -1)
{
Error<<"--->Error, nombre de hospital no encontrado para el albaran: "<<linea<<endl;
linea.clear();
albaran.clear();
hospital.clear();
continue;
}
hospital = linea.substr(0,indice);
if (CreateDirectory(hospital.c_str(),NULL) == 0)
{
if (GetLastError() != ERROR_ALREADY_EXISTS)
{
Error<<"--->Error inesperado al crear la carpeta: "<<hospital<<" Permisos insuficientes?"<<endl;
linea.clear();
albaran.clear();
hospital.clear();
continue;
}
}
if (MoveFile(albaran.c_str(),string(hospital+"\\"+albaran).c_str()) == 0)
{
Error<<"--->Error al mover el albaran: "<<albaran<<". Puede que el albaran no exista?"<<endl;
linea.clear();
albaran.clear();
hospital.clear();
continue;
}
numero++;
linea.clear();
albaran.clear();
hospital.clear();
}
cout<<"TERMINADO, "<<numero<<" archivos movidos"<<endl;
cin.get();
return 0;
}
NeO2K1 escribió:Un apunte...se podría hacer que se crearan las carpetas de la columna1??? Las de los hospitales...
NeO2K1 escribió:Pues no me las crea tio...
Como tendria que quedar el archivo txt???
Ya que lo hago como me dices, pero me dan error todos los ficheros...
nombre_hospital nombre_albaran
nombre_hospital nombre_albaran