KvArt

dz5.c

Jun 1st, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.59 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include "dz5.h"
  5. #define CMD_LINE
  6. #ifndef CMD_LINE
  7. void main() {
  8.     FILE *input, *output, *ldif;
  9.     char *InputName = NULL, *OutputName = NULL, *EmailCMP, c;
  10.     User *head = NULL;
  11.     Ldif_f *LDIFFields = NULL;
  12.     int i, ulaz;
  13.  
  14.     /*Unos polja potrebnih za ispis u LDIF format iz pomocne datoteke*/
  15.     ldif = fopen("nazivi.txt", "r");
  16.     LDIFFields = LDIFValuesImport(ldif);
  17.     fclose(ldif);
  18.    
  19.     if (LDIFFields == NULL) {
  20.         printf("Greska prilikom uvoza podataka iz pomocne datoteke.\n");
  21.         Brisi(InputName, OutputName, head, LDIFFields);
  22.         exit(0);
  23.     }
  24.  
  25.     /*Interaktivni meni za korisnika*/
  26.     while (1) {
  27.         printf("\n1. Uvoz kontakata iz .CSV datoteke\n"
  28.             "2. Izvoz kontakata u .LDIF datoteku\n"
  29.             "3. Izbacivanje kontakata na osnovu e-mail adrese i izvoz u .LDIF datoteku\n"
  30.             "Vas izbor? ");
  31.         scanf("%d", &i);
  32.         switch (i) {
  33.         case 1:
  34.             /*Unos podataka iz CSV datoteke*/  
  35.             ulaz = 1;
  36.             while (1) {
  37.                 printf("Unesite naziv ulazne datoteke (u formatu ime.csv):\n");
  38.                 InputName = ImportName(ulaz);
  39.  
  40.                 if (InputName == NULL) {
  41.                     printf("Greska u prilikom alokacije memorije.\n");
  42.                     Brisi(InputName, OutputName, head, LDIFFields);
  43.                     exit(0);
  44.                 }
  45.  
  46.                 ulaz = 0;
  47.                 input = fopen(InputName, "r");
  48.                 if (input == NULL) {
  49.                     printf("Datoteka sa datim imenom ne postoji.\n");
  50.                     free(InputName);
  51.                 }
  52.                 else break;
  53.             }
  54.  
  55.             head = ImportCSV(head, input);
  56.             fclose(input);
  57.            
  58.             if (head == NULL) {
  59.                 printf("Greska prilikom uvoza podataka iz ulazne datoteke.\n");
  60.                 Brisi(InputName, OutputName, head, LDIFFields);
  61.                 exit(0);
  62.             }
  63.            
  64.             break;
  65.         case 2:
  66.             /*Izvoz podataka u LDIF datoteku*/
  67.             printf("Unesite naziv izlazne datoteke (u formatu ime.ldif):\n");
  68.             ulaz = 1;
  69.             OutputName = ImportName(ulaz);
  70.            
  71.             if (OutputName == NULL) {
  72.                 printf("Greska prilikom ucitavanja imena izlazne datoteke.\n");
  73.                 Brisi(InputName, OutputName, head, LDIFFields);
  74.                 exit(0);
  75.             }
  76.            
  77.             ulaz = 0;
  78.             output = fopen(OutputName,"w");
  79.             ExportLDIF(head, LDIFFields, output);
  80.             break;
  81.        
  82.         case 3:
  83.             /*Izvoz podataka u LDIF datoteku sa obradom*/
  84.            
  85.             printf("Unesite pocetnu e-mail adresu korisnika kojeg zelite da izbacite iz kontakata:\n");
  86.             while ((c = getchar()) != '\n');
  87.             c = fgetc(stdin);
  88.             EmailCMP = ReadWord(stdin, &c);
  89.             if (EmailCMP == NULL) {
  90.                 printf("Neuspesno ucitavanje mejla.\n");
  91.                 Brisi(InputName, OutputName, head, LDIFFields);
  92.                 exit(0);
  93.             }
  94.             head = Delete(head, EmailCMP);
  95.             free(EmailCMP);
  96.            
  97.             if (head == NULL) {
  98.                 printf("Svi kontakti su izbrisani, ne postoje podaci koji bi se izvezli u izlaznu datoteku.\n");
  99.                 Brisi(InputName, OutputName, head, LDIFFields);
  100.                 exit(0);
  101.             }
  102.            
  103.             printf("Unesite naziv izlazne datoteke (u formatu ime.ldif):\n");
  104.             OutputName = ImportName(ulaz);
  105.            
  106.             if (OutputName == NULL) {
  107.                 printf("Greska prilikom ucitavanja imena izlazne datoteke.\n");
  108.                 Brisi(InputName, OutputName, head, LDIFFields);
  109.                 exit(0);
  110.             }
  111.  
  112.             output = fopen(OutputName, "w");
  113.             ExportLDIF(head, LDIFFields, output);
  114.         }
  115.         if ((i == 2) || (i == 3)) break;
  116.     }
  117.     Brisi(InputName, OutputName, head, LDIFFields);
  118.     fclose(output);
  119. }
  120. /*Unos preko komandne linije*/
  121. #else
  122. int main(int argc, const char *varg[]) {
  123.     FILE *input, *output, *ldif;
  124.     User *head = NULL;
  125.     char *InputName=NULL, *OutputName=NULL;
  126.     Ldif_f *LDIFFields = NULL;
  127.     if (argc > 4) {
  128.         printf("Uneto je vise argumenata nego sto je potrebno\n");
  129.         exit(0);
  130.     }
  131.     if (argc < 3) {
  132.         printf("Uneto je manje argumenata nego sto je potrebno.\n");
  133.         exit(0);
  134.     }
  135.     /*Otvaranje datoteka*/
  136.     input = fopen(varg[1], "r");
  137.     output = fopen(varg[2], "w");
  138.     if ((input == NULL) || (output == NULL));
  139.  
  140.     /*Uvoz iz pomocne datoteke*/
  141.     ldif = fopen("nazivi.txt", "r");
  142.     LDIFFields = LDIFValuesImport(ldif);
  143.     fclose(ldif);
  144.    
  145.     /*Uvoz iz CSV datoteke*/
  146.     head = ImportCSV(head, input);
  147.     fclose(input);
  148.  
  149.     if (head == NULL) {
  150.         printf("Greska prilikom ucitavanja podataka iz ulazne datoteke.\n");
  151.         Brisi(InputName, OutputName, head, LDIFFields);
  152.         fclose(output);
  153.         exit(0);
  154.     }
  155.    
  156.     /*Izvoz bez brisanja*/
  157.     if (argc==3) ExportLDIF(head, LDIFFields, output);
  158.    
  159.     /*Izvoz sa brisanjem*/
  160.     if (argc == 4) {
  161.         head = Delete(head, varg[3]);
  162.  
  163.         if (head == NULL) {
  164.             printf("Svi kontakti su izbrisani, ne postoje podaci koji bi se izvezli u izlaznu datoteku.\n");
  165.             Brisi(InputName, OutputName, head, LDIFFields);
  166.             fclose(output);
  167.             exit(0);
  168.         }
  169.         ExportLDIF(head, LDIFFields, output);
  170.     }
  171.     fclose(output);
  172.     Brisi(InputName, OutputName, head, LDIFFields);
  173. }
  174. #endif
Add Comment
Please, Sign In to add comment