Advertisement
Guest User

Crypto

a guest
Feb 13th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void swapStrings(char *str1, char *str2);
  6. void swapInt(int *int1, int *int2);
  7.  
  8. typedef struct
  9. {
  10. char kodTransakcije[20+1];
  11. float iznos;
  12. int dan;
  13. int mjesec;
  14. int godina;
  15. int sat;
  16. int minuta;
  17. int sekinda;
  18. } Transakcija;
  19.  
  20. int main()
  21. {
  22.  
  23. FILE* creeptoIN = NULL;
  24. creeptoIN = fopen("creepto.val", "rb");
  25.  
  26. int i = 0, m, n, j, k, l;
  27. char string[10];
  28. Transakcija transakcije[5000];
  29. int indexes[1000], inx=0;
  30.  
  31. while(!feof(creeptoIN))
  32. {
  33. fread(&transakcije[i], sizeof(Transakcija), 1,creeptoIN);
  34. //printf("%20s - %f - %d.%d.%d. %d:%d:%d \n", transakcije[i].kodTransakcije, transakcije[i].iznos/100, transakcije[i].dan, transakcije[i].mjesec, transakcije[i].godina, transakcije[i].sat, transakcije[i].minuta, transakcije[i].sekinda);
  35. i++;
  36. }
  37.  
  38. scanf("%s", string);
  39.  
  40. m = strlen(string);
  41. n = i; /// n je broj transakcija
  42.  
  43. if (m == 3)
  44. {
  45. for (i = 0; i < n; i++)
  46. {
  47.  
  48. if ((strchr(transakcije[i].kodTransakcije, string[0]) != NULL) && (strchr(transakcije[i].kodTransakcije, string[1]) != NULL) && (strchr(transakcije[i].kodTransakcije, string[2]) != NULL))
  49. {
  50. indexes[inx] = i;
  51. inx++;
  52. }
  53.  
  54. }
  55. }
  56. else if (m ==4)
  57. {
  58. for (i = 0; i < n; i++)
  59. {
  60. if ((strchr(transakcije[i].kodTransakcije, string[0]) != NULL) && (strchr(transakcije[i].kodTransakcije, string[1]) != NULL) && (strchr(transakcije[i].kodTransakcije, string[2]) != NULL) && (strchr(transakcije[i].kodTransakcije, string[3]) != NULL) )
  61. {
  62. indexes[inx] = i;
  63. inx++;
  64. }
  65. }
  66. }
  67.  
  68. ///sortiranje po satu
  69.  
  70. for (c = 0 ; c < ( inx - 1 ); c++)
  71. {
  72. for (d = 0 ; d < inx - 1; d++)
  73. {
  74. if (transakcije[indexes[d]].sat > transakcije[indexes[d+1]].sat)
  75. {
  76. swapInt(&transakcije[indexes[d]].sat, &transakcije[indexes[d+1]].sat);
  77. swapInt(&transakcije[indexes[d]].minuta, &transakcije[indexes[d+1]].minuta);
  78. swapInt(&transakcije[indexes[d]].sekinda, &transakcije[indexes[d+1]].sekinda);
  79. swapStrings(transakcije[indexes[d]].kodTransakcije, transakcije[indexes[d+1]].kodTransakcije);
  80. }
  81. }
  82. }
  83.  
  84. ///finalni ispis
  85. for (i = 0; i < inx; i++)
  86. {
  87. printf("%s@%.2d:%.2d:%.2d\n", transakcije[indexes[i]].kodTransakcije, transakcije[indexes[i]].sat, transakcije[indexes[i]].minuta, transakcije[indexes[i]].sekinda);
  88. }
  89.  
  90. fclose(creeptoIN);
  91.  
  92. return 0;
  93. }
  94.  
  95. void swapStrings(char *str1, char *str2)
  96. {
  97. char *temp = (char *)malloc((strlen(str1) + 1) * sizeof(char));
  98. strcpy(temp, str1);
  99. strcpy(str1, str2);
  100. strcpy(str2, temp);
  101. free(temp);
  102. }
  103.  
  104. void swapInt(int *int1, int *int2)
  105. {
  106. int swap;
  107. swap = *int1;
  108. *int1 = *int2;
  109. *int2 = swap;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement