cc2srt/cc2srt.c

76 lines
1.8 KiB
C

#include <stdio.h>
#include <stdlib.h>
struct entrada_cc{
int minutos;
int segundos;
char texto[255];
};
struct tiempo_srt{
int hora;
int minuto;
int segundo;
};
struct salida_srt{
int index;
struct tiempo_srt inicio;
struct tiempo_srt fin;
char texto[255];
};
int LeerEntrada(struct entrada_cc *ent, FILE *fentrada){
if (fscanf((FILE *)fentrada, "%d:%d\n", &ent->minutos, &ent->segundos) < 1) {
printf("fscanf devuelve 0\n");
return 0;
}
fgets(ent->texto, 255, (FILE *)fentrada);
return 1;
}
int main(int argc, char **argv) {
FILE *entrada;
FILE *salida;
char cadena [255];
struct entrada_cc ent1, ent2, *pent1, *pent2;
struct salida_srt sal1, sal2, *psal1, *psal2;
int i = 0;
for(i = 0; i < argc; i++){
printf("El argumento en la posición %d es %s\n", i, argv[i]);
}
if (argc < 2) {
printf("Uso: %s <nombre de fichero a convertir>.\n", argv[0]);
return(3);
}
entrada = fopen(argv[1], "rt");
if (entrada == NULL) {
printf("El fichero %s no se ha podido abrir.\n", argv[1]);
return(1);
}
salida = fopen("salida.srt", "w");
if (salida == NULL) {
printf("El fichero %s no se ha podido abrir.\n", argv[1]);
fclose(entrada);
return(2);
}
printf("Procesando fichero %s.\n", argv[1]);
fgets(cadena, 256, (FILE *) entrada);
ent2.minutos = -1;
pent1 = &ent1;
while(LeerEntrada(pent1, (FILE *)entrada) > 0) {
printf("Minutos: %d, Segundos: %d\n", pent1->minutos, pent1->segundos);
sprintf(cadena, "%d:%d --> \n%s\n", pent1->minutos, pent1->segundos, pent1->texto);
fputs(cadena, (FILE *) salida);
printf(cadena);
}
fclose(entrada);
fclose(salida);
return(0);
}