Guest User

Untitled

a guest
Jun 21st, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. int GeraArquivoMod (char * arqEntrada, char * arqSaida)
  2. {
  3. int i3 = 0;
  4.  
  5. /* Abre Arquivo */
  6. FILE * arquivoEntrada = fopen(arqEntrada,"r");
  7. FILE * arquivoSaida = fopen(arqSaida, "w");
  8.  
  9. /* Checa se o arquivo foi aberto corretamente */
  10. if (arquivoEntrada == NULL || arquivoSaida == NULL ) {
  11. printf ("** Erro: nao foi possivel carregar arquivo: arquivo não existe **\n");
  12. exit(EXIT_FAILURE);
  13. }
  14. else
  15. {
  16.  
  17. char c1; // Caracteres auxiliares
  18. int i1, i2; // Inteiros auxiliares
  19. fpos_t pos;
  20.  
  21. c1 = getc(arquivoEntrada); // Pega o primeiro caracter
  22. while (!feof(arquivoEntrada))
  23. {
  24.  
  25. while (c1 != 34 && c1 != -1) c1 = getc(arquivoEntrada); // Ate encontrar primeira aspas ou fim do arquivo
  26. if (c1 != -1) // Se nao estiver no fim do arquivo
  27. {
  28. fgetpos (arquivoEntrada, &pos); // Pega posicao do fluxo
  29. i1 = 0;
  30.  
  31. /* Conta quantos caracteres tem entre aspas */
  32. c1 = getc(arquivoEntrada);
  33. while (c1 != 34)
  34. {
  35. c1 = getc(arquivoEntrada);
  36. i1++;
  37.  
  38. }
  39.  
  40. /* Le os caracteres contados e armazena numa string */
  41. i2 = 0;
  42. fsetpos (arquivoEntrada, &pos); // Redefine posicao do fluxo
  43. char string1[i1+1];
  44. while (i2 < i1)
  45. {
  46. c1 = getc(arquivoEntrada);
  47. string1[i2] = c1;
  48. i2++;
  49. }
  50. string1[i2] = '\0';
  51.  
  52. fprintf (arquivoSaida, "%d %s\n", i1, string1); // Imprime no arquivo
  53. i3++;
  54.  
  55. while (c1 != 10) c1 = getc(arquivoEntrada); // Ate acabar a linha
  56. c1 = getc(arquivoEntrada);
  57. }
  58. }
  59. }
  60. fclose (arquivoEntrada);
  61. fclose (arquivoSaida);
  62. return i3; // Retorna o numero de requisicoes
  63. }
Add Comment
Please, Sign In to add comment