Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <ctype.h>
- int main(int argc, char *argv[]) {
- FILE *fp;
- FILE *output;
- int hr1, min1, seg1, miliseg1, hr2, min2, seg2, miliseg2;
- int hrrecebido, minrecebido, segrecebido, milisegrecebido;
- int hora1final, minuto1final, segundo1final, milisegundo1final, hora2final, minuto2final, segundo2final, milisegundo2final;
- int total1, total2, totalrecebido;
- int n = 1000;
- char str[60], hora1[60], hora2[60], minuto1[60], minuto2[60], segundo1[60], segundo2[60], milisegundo1[60], milisegundo2[60];
- char recebidohr[60], recebidomin[60], recebidoseg[60], recebidomil[60];
- char soma[60];
- char milisegfinal1[60], segfinal1[60], minfinal1[60], horafinal1[60], milisegfinal2[60], segfinal2[60], minfinal2[60], horafinal2[60];
- int soma1, soma2;
- char final[60];
- char nome1[20], nicolas[20];
- strcpy(nome1, "LEGENDAS_ARRUMADAS_");
- strcpy(nicolas, argv[1]);
- strncat(nome1, nicolas, 30);
- fp = fopen(argv[1], "r+");
- output = fopen(nome1, "w+");
- if(fp == NULL){
- printf("O arquivo no existe.\n");
- system("PAUSE");
- return(-1);
- return 9;
- }
- if(argv[2][0] != '-' || argv[2][0] != '+'){
- }
- else{
- printf("Operador invalido, por favor insira - ou +");
- system("PAUSE");
- return(-1);
- }
- if(argv[3][2] != ':' || argv[3][5] != ':' || argv[3][8] != ',' || argv[3][0] < '0' || argv[3][0] > '9' || argv[3][1] < '0' || argv[3][1] > '9' || argv[3][3] < '0' || argv[3][3] > '9' || argv[3][4] < '0' || argv[3][4] > '9' || argv[3][6] < '0' || argv[3][6] > '9' || argv[3][7] < '0' || argv[3][7] > '9' || argv[3][9] < '0' || argv[3][9] > '9' || argv[3][10] < '0' || argv[3][10] > '9' || argv[3][11] < '0' || argv[3][11] > '9' ){
- printf("Formato invalido, por favor, da proxima vez insira o tempo no estilo:\n\n\t\t HH:MM:SS,MIL\n\n");
- system("PAUSE");
- return(-1);
- }
- else{
- recebidohr[0] = argv[3][0];
- recebidohr[1] = argv[3][1];
- recebidohr[2] = '\0';
- hrrecebido = atoi(recebidohr);
- recebidomin[0] = argv[3][3];
- recebidomin[1] = argv[3][4];
- recebidomin[2] = '\0';
- minrecebido = atoi(recebidomin);
- recebidoseg[0] = argv[3][6];
- recebidoseg[1] = argv[3][7];
- recebidoseg[2] = '\0';
- segrecebido = atoi(recebidoseg);
- recebidomil[0] = argv[3][9];
- recebidomil[1] = argv[3][10];
- recebidomil[2] = argv[3][11];
- recebidomil[3] = '\0';
- milisegrecebido = atoi(recebidomil);
- totalrecebido = hrrecebido*3600000+ minrecebido*60000 + segrecebido*1000 + milisegrecebido;
- while(fgets(str, n, fp) != NULL){
- if(isdigit(str[0]) && isdigit(str[1]) && ispunct(str[2])){
- hora1[0] = str[0];
- hora1[1] = str[1];
- hora1[2] = '\0';
- hora2[0] = str[17];
- hora2[1] = str[18];
- hora2[2] = '\0';
- hr1 = atoi(hora1);
- hr2 = atoi(hora2);
- minuto1[0] = str[3];
- minuto1[1] = str[4];
- minuto1[2] = '\0';
- minuto2[0] = str[20];
- minuto2[1] = str[21];
- minuto2[2] = '\0';
- min1 = atoi(minuto1);
- min2 = atoi(minuto2);
- segundo1[0] = str[6];
- segundo1[1] = str[7];
- segundo1[2] = '\0';
- segundo2[0] = str[23];
- segundo2[1] = str[24];
- segundo2[2] = '\0';
- seg1 = atoi(segundo1);
- seg2 = atoi(segundo2);
- milisegundo1[0] = str[9];
- milisegundo1[1] = str[10];
- milisegundo1[2] = str[11];
- milisegundo1[4] = '\0';
- milisegundo2[0] = str[26];
- milisegundo2[1] = str[27];
- milisegundo2[2] = str[28];
- milisegundo2[4] = '\0';
- miliseg1 = atoi(milisegundo1);
- miliseg2 = atoi(milisegundo2);
- total1 = hr1*3600000+ min1*60000 + seg1*1000 + miliseg1;
- total2 = hr2*3600000+ min2*60000 + seg2*1000 + miliseg2;
- if(argv[2][0] == '-'){
- total1 = total1 - totalrecebido;
- total2 = total2 - totalrecebido;
- if(total1 < 0 || total2 < 0){
- fclose(output);
- remove(nome1);
- printf("\n\nNumero invalido, ele deixaria a hora da legenda negativo, tente novamente.\n\n");
- system("PAUSE");
- return(-2);
- }
- }
- else {
- total1 = total1 + totalrecebido;
- total2 = total2 + totalrecebido;
- }
- milisegundo1final = total1 % 1000;
- segundo1final = ((total1 - milisegundo1final) % 60000);
- segundo1final = segundo1final / 1000;
- minuto1final = ((total1 - segundo1final - milisegundo1final)) % 3600000;
- minuto1final = minuto1final/ 60000;
- hora1final = ((total1 - minuto1final - segundo1final - milisegundo1final));
- hora1final = hora1final / 3600000;
- milisegundo2final = total2 % 1000;
- segundo2final = ((total2 - milisegundo2final) % 60000);
- segundo2final = segundo2final / 1000;
- minuto2final = (total2 - segundo2final - milisegundo2final) % 3600000;
- minuto2final = minuto2final/ 60000;
- hora2final = (total2 - minuto2final - segundo2final - milisegundo2final);
- hora2final = hora2final / 3600000;
- if(hora1final < 10){
- itoa(hora1final, horafinal1, 10);
- horafinal1[1] = horafinal1[0];
- horafinal1[0] = '0';
- horafinal1[2] = ':';
- }
- else{
- itoa(hora1final, horafinal1, 10);
- horafinal1[2] = ':';
- }
- if(minuto1final < 10){
- itoa(minuto1final, minfinal1, 10);
- minfinal1[1] = minfinal1[0];
- minfinal1[0] = '0';
- minfinal1[2] = ':';
- }
- else{
- itoa(minuto1final, minfinal1, 10);
- minfinal1[2] = ':';
- }
- if(segundo1final < 10){
- itoa(segundo1final, segfinal1, 10);
- segfinal1[1] = segfinal1[0];
- segfinal1[0] = '0';
- segfinal1[2] = ',';
- }
- else{
- itoa(segundo1final, segfinal1, 10);
- segfinal1[2] = ',';
- }
- if(milisegundo1final < 100){
- if(milisegundo1final < 10) {
- itoa(milisegundo1final, milisegfinal1, 10);
- milisegfinal1[2] = milisegfinal1[0];
- milisegfinal1[1] = '0';
- milisegfinal1[0] = '0';
- }
- else {
- itoa(milisegundo1final, milisegfinal1, 10);
- milisegfinal1[2] = milisegfinal1[1];
- milisegfinal1[1] = milisegfinal1[0];
- milisegfinal1[0] = '0';
- }
- }
- else{
- itoa(milisegundo1final, milisegfinal1, 10);
- }
- if(hora2final < 10){
- itoa(hora2final, horafinal2, 10);
- horafinal2[1] = horafinal2[0];
- horafinal2[0] = '0';
- horafinal2[2] = ':';
- }
- else{
- itoa(hora2final, horafinal2, 10);
- horafinal2[2] = ':';
- }
- if(minuto1final < 10){
- itoa(minuto2final, minfinal2, 10);
- minfinal2[1] = minfinal2[0];
- minfinal2[0] = '0';
- minfinal2[2] = ':';
- }
- else{
- itoa(minuto2final, minfinal2, 10);
- minfinal2[2] = ':';
- }
- if(segundo2final < 10){
- itoa(segundo2final, segfinal2, 10);
- segfinal2[1] = segfinal2[0];
- segfinal2[0] = '0';
- segfinal2[2] = ',';
- }
- else{
- itoa(segundo2final, segfinal2, 10);
- segfinal2[2] = ',';
- }
- if(milisegundo2final < 100){
- if(milisegundo2final < 10) {
- itoa(milisegundo2final, milisegfinal2, 10);
- milisegfinal2[2] = milisegfinal2[0];
- milisegfinal2[1] = '0';
- milisegfinal2[0] = '0';
- }
- else {
- itoa(milisegundo2final, milisegfinal2, 10);
- milisegfinal2[2] = milisegfinal2[1];
- milisegfinal2[1] = milisegfinal2[0];
- milisegfinal2[0] = '0';
- }
- }
- else{
- itoa(milisegundo2final, milisegfinal2, 10);
- }
- final[0] = horafinal1[0];
- final[1] = horafinal1[1];
- final[2] = ':';
- final[3] = minfinal1[0];
- final[4] = minfinal1[1];
- final[5] = ':';
- final[6] = segfinal1[0];
- final[7] = segfinal1[1];
- final[8] = ',';
- final[9] = milisegfinal1[0];
- final[10] = milisegfinal1[1];
- final[11] = milisegfinal1[2];
- final[12] = ' ';
- final[13] = '-';
- final[14] = '-';
- final[15] = '>';
- final[16] = ' ';
- final[17] = horafinal2[0];
- final[18] = horafinal2[1];
- final[19] = ':';
- final[20] = minfinal2[0];
- final[21] = minfinal2[1];
- final[22] = ':';
- final[23] = segfinal2[0];
- final[24] = segfinal2[1];
- final[25] = ',';
- final[26] = milisegfinal2[0];
- final[27] = milisegfinal2[1];
- final[28] = milisegfinal2[2];
- final[29] = '\0';
- fprintf(output, final);
- fprintf(output, "\n");
- }
- else{
- fprintf(output, str);
- }
- }
- fclose(fp);
- fclose(output);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement