Advertisement
Guest User

synchronize

a guest
Nov 20th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.18 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5.  
  6. int main(int argc, char *argv[]) {
  7. FILE *fp;
  8. FILE *output;
  9. int hr1, min1, seg1, miliseg1, hr2, min2, seg2, miliseg2;
  10. int hrrecebido, minrecebido, segrecebido, milisegrecebido;
  11. int hora1final, minuto1final, segundo1final, milisegundo1final, hora2final, minuto2final, segundo2final, milisegundo2final;
  12. int total1, total2, totalrecebido;
  13. int n = 1000;
  14. char str[60], hora1[60], hora2[60], minuto1[60], minuto2[60], segundo1[60], segundo2[60], milisegundo1[60], milisegundo2[60];
  15. char recebidohr[60], recebidomin[60], recebidoseg[60], recebidomil[60];
  16. char soma[60];
  17. char milisegfinal1[60], segfinal1[60], minfinal1[60], horafinal1[60], milisegfinal2[60], segfinal2[60], minfinal2[60], horafinal2[60];
  18. int soma1, soma2;
  19. char final[60];
  20. char nome1[20], nicolas[20];
  21. strcpy(nome1, "LEGENDAS_ARRUMADAS_");
  22. strcpy(nicolas, argv[1]);
  23. strncat(nome1, nicolas, 30);
  24. fp = fopen(argv[1], "r+");
  25. output = fopen(nome1, "w+");
  26. if(fp == NULL){
  27. printf("O arquivo no existe.\n");
  28. system("PAUSE");
  29. return(-1);
  30. return 9;
  31. }
  32. if(argv[2][0] != '-' || argv[2][0] != '+'){
  33. }
  34. else{
  35. printf("Operador invalido, por favor insira - ou +");
  36. system("PAUSE");
  37. return(-1);
  38. }
  39. 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' ){
  40. printf("Formato invalido, por favor, da proxima vez insira o tempo no estilo:\n\n\t\t HH:MM:SS,MIL\n\n");
  41. system("PAUSE");
  42. return(-1);
  43. }
  44. else{
  45. recebidohr[0] = argv[3][0];
  46. recebidohr[1] = argv[3][1];
  47. recebidohr[2] = '\0';
  48. hrrecebido = atoi(recebidohr);
  49. recebidomin[0] = argv[3][3];
  50. recebidomin[1] = argv[3][4];
  51. recebidomin[2] = '\0';
  52. minrecebido = atoi(recebidomin);
  53. recebidoseg[0] = argv[3][6];
  54. recebidoseg[1] = argv[3][7];
  55. recebidoseg[2] = '\0';
  56. segrecebido = atoi(recebidoseg);
  57. recebidomil[0] = argv[3][9];
  58. recebidomil[1] = argv[3][10];
  59. recebidomil[2] = argv[3][11];
  60. recebidomil[3] = '\0';
  61. milisegrecebido = atoi(recebidomil);
  62. totalrecebido = hrrecebido*3600000+ minrecebido*60000 + segrecebido*1000 + milisegrecebido;
  63. while(fgets(str, n, fp) != NULL){
  64. if(isdigit(str[0]) && isdigit(str[1]) && ispunct(str[2])){
  65. hora1[0] = str[0];
  66. hora1[1] = str[1];
  67. hora1[2] = '\0';
  68. hora2[0] = str[17];
  69. hora2[1] = str[18];
  70. hora2[2] = '\0';
  71. hr1 = atoi(hora1);
  72. hr2 = atoi(hora2);
  73. minuto1[0] = str[3];
  74. minuto1[1] = str[4];
  75. minuto1[2] = '\0';
  76. minuto2[0] = str[20];
  77. minuto2[1] = str[21];
  78. minuto2[2] = '\0';
  79. min1 = atoi(minuto1);
  80. min2 = atoi(minuto2);
  81. segundo1[0] = str[6];
  82. segundo1[1] = str[7];
  83. segundo1[2] = '\0';
  84. segundo2[0] = str[23];
  85. segundo2[1] = str[24];
  86. segundo2[2] = '\0';
  87. seg1 = atoi(segundo1);
  88. seg2 = atoi(segundo2);
  89. milisegundo1[0] = str[9];
  90. milisegundo1[1] = str[10];
  91. milisegundo1[2] = str[11];
  92. milisegundo1[4] = '\0';
  93. milisegundo2[0] = str[26];
  94. milisegundo2[1] = str[27];
  95. milisegundo2[2] = str[28];
  96. milisegundo2[4] = '\0';
  97. miliseg1 = atoi(milisegundo1);
  98. miliseg2 = atoi(milisegundo2);
  99. total1 = hr1*3600000+ min1*60000 + seg1*1000 + miliseg1;
  100. total2 = hr2*3600000+ min2*60000 + seg2*1000 + miliseg2;
  101. if(argv[2][0] == '-'){
  102. total1 = total1 - totalrecebido;
  103. total2 = total2 - totalrecebido;
  104. if(total1 < 0 || total2 < 0){
  105. fclose(output);
  106. remove(nome1);
  107. printf("\n\nNumero invalido, ele deixaria a hora da legenda negativo, tente novamente.\n\n");
  108. system("PAUSE");
  109. return(-2);
  110. }
  111. }
  112. else {
  113. total1 = total1 + totalrecebido;
  114. total2 = total2 + totalrecebido;
  115. }
  116. milisegundo1final = total1 % 1000;
  117. segundo1final = ((total1 - milisegundo1final) % 60000);
  118. segundo1final = segundo1final / 1000;
  119. minuto1final = ((total1 - segundo1final - milisegundo1final)) % 3600000;
  120. minuto1final = minuto1final/ 60000;
  121. hora1final = ((total1 - minuto1final - segundo1final - milisegundo1final));
  122. hora1final = hora1final / 3600000;
  123. milisegundo2final = total2 % 1000;
  124. segundo2final = ((total2 - milisegundo2final) % 60000);
  125. segundo2final = segundo2final / 1000;
  126. minuto2final = (total2 - segundo2final - milisegundo2final) % 3600000;
  127. minuto2final = minuto2final/ 60000;
  128. hora2final = (total2 - minuto2final - segundo2final - milisegundo2final);
  129. hora2final = hora2final / 3600000;
  130. if(hora1final < 10){
  131. itoa(hora1final, horafinal1, 10);
  132. horafinal1[1] = horafinal1[0];
  133. horafinal1[0] = '0';
  134. horafinal1[2] = ':';
  135. }
  136. else{
  137. itoa(hora1final, horafinal1, 10);
  138. horafinal1[2] = ':';
  139. }
  140. if(minuto1final < 10){
  141. itoa(minuto1final, minfinal1, 10);
  142. minfinal1[1] = minfinal1[0];
  143. minfinal1[0] = '0';
  144. minfinal1[2] = ':';
  145. }
  146. else{
  147. itoa(minuto1final, minfinal1, 10);
  148. minfinal1[2] = ':';
  149. }
  150. if(segundo1final < 10){
  151. itoa(segundo1final, segfinal1, 10);
  152. segfinal1[1] = segfinal1[0];
  153. segfinal1[0] = '0';
  154. segfinal1[2] = ',';
  155. }
  156. else{
  157. itoa(segundo1final, segfinal1, 10);
  158. segfinal1[2] = ',';
  159. }
  160. if(milisegundo1final < 100){
  161. if(milisegundo1final < 10) {
  162. itoa(milisegundo1final, milisegfinal1, 10);
  163. milisegfinal1[2] = milisegfinal1[0];
  164. milisegfinal1[1] = '0';
  165. milisegfinal1[0] = '0';
  166. }
  167. else {
  168. itoa(milisegundo1final, milisegfinal1, 10);
  169. milisegfinal1[2] = milisegfinal1[1];
  170. milisegfinal1[1] = milisegfinal1[0];
  171. milisegfinal1[0] = '0';
  172. }
  173. }
  174. else{
  175. itoa(milisegundo1final, milisegfinal1, 10);
  176. }
  177. if(hora2final < 10){
  178. itoa(hora2final, horafinal2, 10);
  179. horafinal2[1] = horafinal2[0];
  180. horafinal2[0] = '0';
  181. horafinal2[2] = ':';
  182. }
  183. else{
  184. itoa(hora2final, horafinal2, 10);
  185. horafinal2[2] = ':';
  186. }
  187. if(minuto1final < 10){
  188. itoa(minuto2final, minfinal2, 10);
  189. minfinal2[1] = minfinal2[0];
  190. minfinal2[0] = '0';
  191. minfinal2[2] = ':';
  192. }
  193. else{
  194. itoa(minuto2final, minfinal2, 10);
  195. minfinal2[2] = ':';
  196. }
  197. if(segundo2final < 10){
  198. itoa(segundo2final, segfinal2, 10);
  199. segfinal2[1] = segfinal2[0];
  200. segfinal2[0] = '0';
  201. segfinal2[2] = ',';
  202. }
  203. else{
  204. itoa(segundo2final, segfinal2, 10);
  205. segfinal2[2] = ',';
  206. }
  207. if(milisegundo2final < 100){
  208. if(milisegundo2final < 10) {
  209. itoa(milisegundo2final, milisegfinal2, 10);
  210. milisegfinal2[2] = milisegfinal2[0];
  211. milisegfinal2[1] = '0';
  212. milisegfinal2[0] = '0';
  213. }
  214. else {
  215. itoa(milisegundo2final, milisegfinal2, 10);
  216. milisegfinal2[2] = milisegfinal2[1];
  217. milisegfinal2[1] = milisegfinal2[0];
  218. milisegfinal2[0] = '0';
  219. }
  220. }
  221. else{
  222. itoa(milisegundo2final, milisegfinal2, 10);
  223. }
  224. final[0] = horafinal1[0];
  225. final[1] = horafinal1[1];
  226. final[2] = ':';
  227. final[3] = minfinal1[0];
  228. final[4] = minfinal1[1];
  229. final[5] = ':';
  230. final[6] = segfinal1[0];
  231. final[7] = segfinal1[1];
  232. final[8] = ',';
  233. final[9] = milisegfinal1[0];
  234. final[10] = milisegfinal1[1];
  235. final[11] = milisegfinal1[2];
  236. final[12] = ' ';
  237. final[13] = '-';
  238. final[14] = '-';
  239. final[15] = '>';
  240. final[16] = ' ';
  241. final[17] = horafinal2[0];
  242. final[18] = horafinal2[1];
  243. final[19] = ':';
  244. final[20] = minfinal2[0];
  245. final[21] = minfinal2[1];
  246. final[22] = ':';
  247. final[23] = segfinal2[0];
  248. final[24] = segfinal2[1];
  249. final[25] = ',';
  250. final[26] = milisegfinal2[0];
  251. final[27] = milisegfinal2[1];
  252. final[28] = milisegfinal2[2];
  253. final[29] = '\0';
  254. fprintf(output, final);
  255. fprintf(output, "\n");
  256. }
  257. else{
  258. fprintf(output, str);
  259. }
  260. }
  261. fclose(fp);
  262. fclose(output);
  263. }
  264. return 0;
  265. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement