Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int GeraArquivoMod (char * arqEntrada, char * arqSaida)
- {
- int i3 = 0;
- /* Abre Arquivo */
- FILE * arquivoEntrada = fopen(arqEntrada,"r");
- FILE * arquivoSaida = fopen(arqSaida, "w");
- /* Checa se o arquivo foi aberto corretamente */
- if (arquivoEntrada == NULL || arquivoSaida == NULL ) {
- printf ("** Erro: nao foi possivel carregar arquivo: arquivo não existe **\n");
- exit(EXIT_FAILURE);
- }
- else
- {
- char c1; // Caracteres auxiliares
- int i1, i2; // Inteiros auxiliares
- fpos_t pos;
- c1 = getc(arquivoEntrada); // Pega o primeiro caracter
- while (!feof(arquivoEntrada))
- {
- while (c1 != 34 && c1 != -1) c1 = getc(arquivoEntrada); // Ate encontrar primeira aspas ou fim do arquivo
- if (c1 != -1) // Se nao estiver no fim do arquivo
- {
- fgetpos (arquivoEntrada, &pos); // Pega posicao do fluxo
- i1 = 0;
- /* Conta quantos caracteres tem entre aspas */
- c1 = getc(arquivoEntrada);
- while (c1 != 34)
- {
- c1 = getc(arquivoEntrada);
- i1++;
- }
- /* Le os caracteres contados e armazena numa string */
- i2 = 0;
- fsetpos (arquivoEntrada, &pos); // Redefine posicao do fluxo
- char string1[i1+1];
- while (i2 < i1)
- {
- c1 = getc(arquivoEntrada);
- string1[i2] = c1;
- i2++;
- }
- string1[i2] = '\0';
- fprintf (arquivoSaida, "%d %s\n", i1, string1); // Imprime no arquivo
- i3++;
- while (c1 != 10) c1 = getc(arquivoEntrada); // Ate acabar a linha
- c1 = getc(arquivoEntrada);
- }
- }
- }
- fclose (arquivoEntrada);
- fclose (arquivoSaida);
- return i3; // Retorna o numero de requisicoes
- }
Add Comment
Please, Sign In to add comment