hola r0d
jajajajaja muchas gracias por su ayuda comentarle que por lo menos de momento no he necesitado usar boost para resolver el problema igual he sido un poco "bestia"
con la solución pero... funciona... habrá que ver los errores que pueda producir pero bueno ya es un paso por lo menos para mi
aquí describo como he llegado a la solución del problema gracías a sus indicaciones, a propósito llamé al resultado final rod
jajajajajaja espero que no tenga copyright
como bien indicaba en su post en el FAQ declaré lo siguiente
Código:
char array2[256]; //array donde divido la linea, recibe buscar
string srtnumeros; //string para istringtream recibe array2[?]
std::istringstream obtenerhora1(srtnumeros ),obtenerhora2(srtnumeros ), obtenerminuto1(srtnumeros),obtenerminuto2(srtnumeros); //para convertir a valores integer
std::istringstream obtenersgundo1(srtnumeros ),obtenersegundo2(srtnumeros ); //para convertir a valores integer
int rod=0; // resultado final en segundos
const char *buscar; //buscar caracter ":" en la cadena y donde recibo las lineas del archivo
un string llamado srtnumeros que recibira el caracter que quiero convertir
he tenido que declarar todas "istringstream" que he necesitado puesto que sino no me dejaba "reutilizarla" al menos de la forma en la que lo he echo
, pienso probarla en una función más adelante
y un int llamado rod que recibe el resultado final en segundos
divimos el "buscar" osea la linea recibida en partes, para ello primero obtengo la longitud de buscar
Código:
len = strlen (buscar); //tamaño de la cadena
i=0;
for (i=0;i<len;i++)
array2[i] = buscar[i]; //dividimos la cadena una por una
y ahora viene lo bonito y lo que he considerado como muuuy "bestia" jajajaja como se las posiciones de los datos que quiero capturar he echo lo siguiente por porbar si funcionaba jajajaja
Código:
if (strchr(array2,':')!=NULL) //buscamos el caracter ":" en la cadena
{
srtnumeros=array2[0]; //hora1
istringstream obtenerhora1(srtnumeros );
obtenerhora1 >> hora1;
srtnumeros.clear (); //limpamos srtmuneros
srtnumeros=array2[1]; //hora2
istringstream obtenerhora2(srtnumeros );
obtenerhora2 >> hora2;
srtnumeros.clear ();
srtnumeros=array2[3]; //minuto1
istringstream obtenerminuto1(srtnumeros );
obtenerminuto1 >> minuto1;
srtnumeros.clear ();
srtnumeros=array2[4]; //minuto2
istringstream obtenerminuto2(srtnumeros );
obtenerminuto2 >> minuto2;
srtnumeros.clear ();
srtnumeros=array2[6]; //segundo1
istringstream obtenersegundo1(srtnumeros );
obtenersegundo1 >> segundo1;
srtnumeros.clear ();
srtnumeros=array2[7]; //segundo2
istringstream obtenersegundo2(srtnumeros );
obtenersegundo2 >> segundo2;
srtnumeros.clear ();
horas=((hora1*10)+hora2))*1200;
minutos=((minuto1*10)+minuto2))*60;
segundos=(segundo1*10)+segundo2;
rod=horas+minutos+segundos;
seeeeppp jajajajaja "rod" me da el resultado en segundos
justo lo que necesitaba... ahora estoy pensado si pudiera simplificar este proceso en una funcion, pero bueno al menos gracias a su ayuda hemos podido llegar a una primera meta mmmmuuuuuchas gracias