Modifier un fichier texte

[Résolu]
Signaler
Messages postés
19
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
7 mai 2008
-
Messages postés
19
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
7 mai 2008
-
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

Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Statut
Membre
Dernière intervention
5 septembre 2006
1
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);

}
Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Statut
Membre
Dernière intervention
5 septembre 2006
1
#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;

}
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010

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...
Messages postés
19
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
7 mai 2008

Salut , merci à tous je me suis servi du premier script en le modifiant moi-même ca a marché impec ! Merci beaucoup !