Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Mika_50 en 21 Enero 2016, 18:59 pm



Título: Duda sobre cadena de caracteres
Publicado por: Mika_50 en 21 Enero 2016, 18:59 pm
Buenas a todos  :D
Estoy haciendo un trabajo en el cual se está trabajando con ficheros. Tengo que crear una función que me ordene los elementos de una tabla según el número de caracteres de sus lineas.
Cabe decir que estoy trabajando con ficheros de subtitulos de peliculas en formato SUBRIP.
El problema que tengo es que no sé como hacer que me compare los caracteres de cada subtitulo(un elemento de la tabla) con el del siguiente para así poder ordenarlos de menor a mayor.   :(
Osea que si me podéis ayudar a encontrar una función que cuente los caracteres de unas lineas dentro de una tabla, os lo agradecería mucho.  :laugh:
Un subtitulo es de este modo:
1
00:00:01,334 --> 00:00:02,920
I'd name you the Hand of the King.

Y la tabla tiene en cada componente uno de este estilo, puede tener máximo tres lineas.
gracias  :-* ;-)


Título: Re: Duda sobre cadena de caracteres
Publicado por: ivancea96 en 21 Enero 2016, 19:13 pm
Por curiosidad, para qué es.
https://foro.elhacker.net/programacion_cc/contar_tipo_de_linea_desde_fichero-t447032.0.html (https://foro.elhacker.net/programacion_cc/contar_tipo_de_linea_desde_fichero-t447032.0.html)


Título: Re: Duda sobre cadena de caracteres
Publicado por: MAFUS en 21 Enero 2016, 19:15 pm
Jeje, veo que al profe le ha gustado esto de los subtítulos  :laugh:
Supongo que lo haces con C++, de eso ni idea.
Pero para C, después de rellenar un array de estructuras, cuya estructura está pensada para guardar un bloque subtítulo entero, con strlen miraría cada uno del tamaño de las tres cadenas y me quedaría con el valor de la mayor. El dato lo guardaría en un array de ints cin correspondencia al de estructuras. Mediante una función de ordenación iterar sobre el array de ints y ordenar los dos arrays en base al numérico.
Finalizado el procesi tendría lis subtítulis ordenados según criterio.


Título: Re: Duda sobre cadena de caracteres
Publicado por: Mika_50 en 21 Enero 2016, 19:22 pm
Por curiosidad, para qué es.
https://foro.elhacker.net/programacion_cc/contar_tipo_de_linea_desde_fichero-t447032.0.html (https://foro.elhacker.net/programacion_cc/contar_tipo_de_linea_desde_fichero-t447032.0.html)

Para un trabajo de la universidad, estoy en primero de Ingeniería Informática. jeje  :P



Jeje, veo que al profe le ha gustado esto de los subtítulos  :laugh:
Supongo que lo haces con C++, de eso ni idea.
Pero para C, después de rellenar un array de estructuras, cuya estructura está pensada para guardar un bloque subtítulo entero, con strlen miraría cada uno del tamaño de las tres cadenas y me quedaría con el valor de la mayor. El dato lo guardaría en un array de ints cin correspondencia al de estructuras. Mediante una función de ordenación iterar sobre el array de ints y ordenar los dos arrays en base al numérico.
Finalizado el procesi tendría lis subtítulis ordenados según criterio.

Y se puede usar strlen(TS?
lo que pasa que creo que habria un problema porque es un struct subtitulo que es asi:
struct Subtitulo {
   int numero;                // número del subtítulo
   int numLineasTexto;        // su número de líneas
   char texto[MAX_LINEAS][MAX_LONG_LINEA];    // cada una de sus líneas
   Tiempo inicio, fin;        // tiempo del inicio y fin de su proyección
};

asi que se podria poner strlen(texto(TS))?

Es en c++.


Título: Re: Duda sobre cadena de caracteres
Publicado por: MAFUS en 21 Enero 2016, 19:45 pm
strlen(texto[linea]);

Pero no se si C++ tiene otra forma. Pero si es C++ ¿no harias string texto[3] en el struct?


Título: Re: Duda sobre cadena de caracteres
Publicado por: Orubatosu en 21 Enero 2016, 22:44 pm
Seguro que me meto donde no me llaman, pero en un caso como el que indicas, donde no sabes la cantidad de líneas que va a tener el fichero, y vas a tener que trabajar con líneas individuales, yo cargaría el fichero en un vector

Es decir por si las dudas, en el contenedor <VECTOR> de la STL ya que creo que sería la manera mas eficiente de manejarlo.

Claro que si hablamos de un "trabajo de clase" y se supone que no habéis dado ese tema aún, me callo la boca