Duda sobre cadena de caracteres

Iniciado por Mika_50, 21 Enero 2016, 18:59 PM

0 Miembros y 1 Visitante están viendo este tema.

Mika_50

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  :-* ;-)


MAFUS

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.

Mika_50

#3
Cita de: 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

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




Cita de: 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.

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++.

MAFUS

strlen(texto[linea]);

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

Orubatosu

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
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998