Modifier un fichier texte

Résolu
SpiritAnghell Messages postés 19 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 7 mai 2008 - 15 oct. 2005 à 21:37
SpiritAnghell Messages postés 19 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 7 mai 2008 - 17 oct. 2005 à 16:27
Bonsoir;

Voila je dispose d'un fichier texte de sous-titres. Il est fait de la facon suivante:

1
00:00:24,441 --> 00:00:25,359
Ca y est.

2
00:00:27,277 --> 00:00:30,155
Je peux le regarder une minute?

3
00:00:31,907 --> 00:00:33,283
Sid, tu es une artiste.

4
00:00:35,702 --> 00:00:39,248
Tu es en train de me dire que tu vas sortir d'ici et que je ne vais jamais le revoir.

5
00:00:39,873 --> 00:00:41,875
Il y a de grandes chances, oui.

.
.
.

etc

J'aimerais modifier chaque ligne des timers, pour ajouter 2secondes a chaque itération. Par exemple le 1er ss titre deviendrait:

1
00:00:26,441 --> 00:00:27,359
Ca y est.

Merci d'avance!

4 réponses

Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
16 oct. 2005 à 13:43
Ah oui, donc ça devient :



else

{

char a[3];

midcopy(ligne, a, 6, 8);

int i = atoi(a);

i += 2;



if ( i == 61)

{

a[0] = '0', a[1] = '1';

} else itoa(i, a, 10);



ligne[6] = a[0];

ligne[7] = a[1];



midcopy(ligne, a, 23, 25);

int u = atoi(a);

u += 2;



if ( u == 61)

{

a[0] = '0', a[1] = '1';

} else itoa(u, a, 10);



ligne[23] = a[0];

ligne[24] = a[1];



fputs(ligne, out);

}
3
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
16 oct. 2005 à 00:09
#include <windows.h>

#include <stdio.h>



void midcopy( char *input, char *output, int start, int stop )

{

int index = 0;

for( int i = start; i < stop; i++ )

{

output[index] = input[i];

index++;

}

output[index] = 0;

}



int main()

{

char ligne[256];

char sub[] = "test.sub";

char sub_out[] = "test_out.sub";



FILE *file = fopen(sub, "r");

FILE *out = fopen(sub_out, "w");



while( fgets(ligne, sizeof(ligne), file) )

{

if( !strstr(ligne, " --> ") )

{

fputs(ligne, out);

}

else

{

char a[3];

midcopy(ligne, a, 6, 8);

int i = atoi(a);

i += 2;



itoa(i, a, 10);



ligne[6] = a[0];

ligne[7] = a[1];



midcopy(ligne, a, 23, 25);

int u = atoi(a);

u += 2;



itoa(u, a, 10);



ligne[23] = a[0];

ligne[24] = a[1];



fputs(ligne, out);

}

}



fclose(file);

fclose(out);



system("pause");



return 0;

}
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
16 oct. 2005 à 13:19
Bonjour,



Zootella

Le problème de ton code est que si on a un temps egal a 00:00:59,125 alors ca donne : 00:00:61,125



SpiritAngel

regarde ici si ca te convient : http://mirabon.free.fr/fichier_c/main.txt

Matt...
0
SpiritAnghell Messages postés 19 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 7 mai 2008
17 oct. 2005 à 16:27
Salut , merci à tous je me suis servi du premier script en le modifiant moi-même ca a marché impec ! Merci beaucoup !
0
Rejoignez-nous