76 lines
1.8 KiB
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);
|
|
}
|