JonathanFeitosa2

[C/C++] Manipulação Fácil de Arquivos com jFuncoes

Aug 2nd, 2016
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.63 KB | None | 0 0
  1. /*
  2. Manipulação de Arquivos de uma Maneira mais Fácil em C/C++
  3. Criado Por: Jonathan Feitosa
  4. Publicado: 02/08/2016
  5. Contato: www.FB.com/JFSJonathanFeitosa
  6. >> Todos direitos reservados.
  7.  
  8. Funções
  9. bool jAbrirArquivo(const char link[])
  10. bool jExiste(const char link[])
  11. void jCriarString(const char link[], const char nomeVariavel[], const char txt[])
  12. void jCriarInt(const char link[], const char nomeVariavel[], int num)
  13. void jEditarString(const char link[], const char variavelTrocar[], const char txt[])
  14. char *jGetString(const char link[], const char variavelTrocar[])
  15. int jGetInt(const char link[], const char variavelTrocar[])
  16.  
  17. Exemplos de Uso:
  18. jCriarString("teste.txt", "nome","Jonathan");
  19. jCriarInt("teste.txt", "idade",19);
  20. printf("- %s - ", jGetString("teste.txt", "nome");
  21. printf("%d - ", jGetInt("teste.txt", "idade");
  22. jEditarString("teste.txt", "nome","JonathanNovo");
  23. jEditarInt("teste.txt", "idade", 18);
  24. printf("%s - ", jGetString("teste.txt", "nome");
  25. printf("%d - ", jGetInt("teste.txt", "idade");
  26.  
  27. Saída: - Jonathan - 19 - JonathanNovo - 18 -
  28. Salva tudo em arquivos .txt ou como preferir
  29. */
  30.  
  31. #include <stdio.h>
  32. #include <stdlib.h> // Atoi
  33. #include <string.h>
  34.  
  35. FILE *arq;
  36. int i;
  37. char * pch;
  38. FILE *arqSaida;
  39.  
  40. #define MAX_TAMVARIAVEL 20
  41. #define MAX_TAMLINHA 50
  42.    
  43. bool jAbrirArquivo(const char link[]){
  44.    
  45.     arq = fopen(link, "a+");
  46.    
  47.     if(arq == NULL)
  48.         return false;
  49.        
  50.     return true;
  51. }
  52.  
  53. bool jExiste(const char link[]){
  54.    
  55.      if (FILE * file = fopen(link, "r")){
  56.         fclose(file);
  57.         return true;
  58.      }
  59.      else
  60.         return false;
  61. }
  62.  
  63. void jCriarString(const char link[], const char nomeVariavel[], const char txt[]){
  64.  
  65.     if(!jAbrirArquivo(link))
  66.             printf("Erro, nao foi possivel abrir o arquivo\n");
  67.     else
  68.         fprintf(arq, "%s = %s\n", nomeVariavel, txt);
  69.    
  70.     fclose (arq);
  71. }
  72.  
  73. void jCriarInt(const char link[], const char nomeVariavel[], int num){
  74.  
  75.     if(!jAbrirArquivo(link))
  76.             printf("Erro, nao foi possivel abrir o arquivo\n");
  77.     else
  78.         fprintf(arq, "%s = %d\n", nomeVariavel, num);
  79.    
  80.     fclose (arq);
  81. }
  82.  
  83. void jEditarInt(const char link[], const char variavelTrocar[], int num){
  84.  
  85.     arqSaida = fopen("edit.txt", "a+");
  86.     arq = fopen(link, "rt");
  87.  
  88.     bool jaEncontrado = false;
  89.    
  90.     for(i = 0; !feof(arq); i++){
  91.        
  92.         char a[MAX_TAMVARIAVEL] = "", mystring[MAX_TAMLINHA]="";
  93.         fgets(mystring, sizeof(mystring), arq);
  94.        
  95.         if(!jaEncontrado) {
  96.        
  97.             pch = strchr(mystring,'=');
  98.             strncpy (a, mystring, (pch-mystring+1)-2); 
  99.            
  100.             if(!strcmp(a, variavelTrocar)){
  101.                 sprintf(a, "%s = %d\n", variavelTrocar, num);
  102.                 fputs(a, arqSaida);
  103.                 jaEncontrado = true;
  104.                 continue;
  105.             }
  106.         }
  107.         fputs(mystring, arqSaida);
  108.     }
  109.  
  110.     fclose(arq);
  111.     fclose(arqSaida);
  112.    
  113.     remove(link);
  114.     rename("edit.txt", link);
  115. }
  116.  
  117. void jEditarString(const char link[], const char variavelTrocar[], const char txt[]){
  118.  
  119.     arqSaida = fopen("edit.txt", "a+");
  120.    
  121.     arq = fopen(link, "rt");
  122.     bool jaEncontrado = false;
  123.    
  124.     for(i = 0; !feof(arq); i++){
  125.        
  126.         char a[MAX_TAMVARIAVEL] = "", mystring[MAX_TAMLINHA]="";
  127.         fgets(mystring, sizeof(mystring), arq);
  128.        
  129.         if(!jaEncontrado) {
  130.        
  131.             pch = strchr(mystring,'=');
  132.             strncpy (a, mystring, (pch-mystring+1)-2); 
  133.             if(strcmp(a, variavelTrocar) == 0){
  134.                 sprintf(a, "%s = %s\n", variavelTrocar, txt);
  135.                 fputs(a, arqSaida);
  136.                 jaEncontrado = true;
  137.                 continue;
  138.             }
  139.         }
  140.         fputs(mystring, arqSaida);
  141.     }
  142.  
  143.     fclose(arq);
  144.     fclose(arqSaida);
  145.    
  146.     remove(link);
  147.     rename("edit.txt", link);
  148. }
  149.  
  150. char *jGetString(const char link[], const char variavelTrocar[]){
  151.  
  152.     arq = fopen(link, "rt");   
  153.     static char result[50];
  154.    
  155.     for(i = 0; !feof(arq);i++){
  156.  
  157.         char a[MAX_TAMVARIAVEL] = "", mystring[MAX_TAMLINHA]= "";
  158.        
  159.         fgets(mystring, sizeof(mystring), arq);
  160.         mystring[strlen(mystring) - 1] = '\0';
  161.         pch = strchr(mystring,'=');
  162.         strncpy (a, mystring, (pch-mystring+1)-2);
  163.        
  164.         if(!strcmp(a, variavelTrocar)){
  165.                  
  166.             memmove(mystring, mystring+(pch-mystring+1)+1, 30);
  167.             sprintf(result,"%s", mystring);
  168.             break;
  169.         }
  170.     }
  171.     fclose(arq);
  172.     return result;
  173. }
  174.  
  175. int jGetInt(const char link[], const char variavelTrocar[]){
  176.  
  177.     arq = fopen(link, "rt");
  178.    
  179.     static int result;
  180.    
  181.     for(i = 0; !feof(arq);i++){
  182.  
  183.         char a[MAX_TAMVARIAVEL] = "", mystring[MAX_TAMLINHA]= "";
  184.        
  185.         fgets(mystring, sizeof(mystring), arq);
  186.         mystring[strlen(mystring) - 1] = '\0'; 
  187.         pch = strchr(mystring,'=');
  188.         strncpy (a, mystring, (pch-mystring+1)-2);
  189.        
  190.         if(strcmp(a, variavelTrocar) == 0){
  191.                  
  192.             memmove(mystring, mystring+(pch-mystring+1)+1, 30);
  193.             result =  atoi (mystring);
  194.             break;
  195.         }
  196.     }
  197.     fclose(arq);
  198.     return result;
  199. }
Advertisement
Add Comment
Please, Sign In to add comment