Advertisement
Guest User

Untitled

a guest
May 20th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #define EXIT 4
  3. #define SIZE_STR 20
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <time.h>
  8. #include <string.h>
  9. int printMenu(void);
  10. int searchFile(FILE* file);
  11. void cleanBuffer(char* buffer, int* indexBuffer);
  12. int main(int argc, char** argv)
  13. {
  14. FILE* csvfile;
  15. int choice = 0, flag = 0;
  16. csvfile = fopen("C:\\Users\\ronra\\Desktop\\example2.csv", "r");
  17. while (choice != EXIT)
  18. {
  19. choice = printMenu();
  20. switch (choice)
  21. {
  22. case 1:
  23. {
  24. flag = searchFile(csvfile);
  25. if (flag != 0)
  26. {
  27. printf("Value was found in row %d\n", flag);
  28. }
  29. else
  30. {
  31. printf("Value Wasn't Found");
  32. }
  33. break;
  34. }
  35. case 2:
  36. {
  37. break;
  38. }
  39. case 3:
  40. printf("");
  41. {
  42. printf("");
  43. break;
  44. }
  45. case EXIT:
  46. {
  47. printf("Good bye!");
  48. }
  49. default:
  50. {
  51. printf("Try agian.");
  52. break;
  53. }
  54. }
  55. }
  56. fclose(csvfile);
  57. getchar();
  58. }
  59. int printMenu(void)
  60. {
  61. int choice = 0;
  62. printf("Please enter your choice:\n1 - Search a term in the document.\n2 - change a value in a specific place.\n3 - copy a value from one place to another\n4- Exit\n");
  63. scanf("%d", &choice);
  64. getchar();
  65. return choice;
  66. }
  67. int searchFile(FILE* file)
  68. {
  69. int c, rowInsexOrflag = 1, row = 1, indexBuffer = 0, flag = 0;
  70. char str[SIZE_STR] = { 0 };
  71. char buffer[SIZE_STR] = { 0 };
  72. int indexRowOrFlag = 0;
  73. printf("Enter value to search: ");
  74. fgets(str, SIZE_STR, stdin);
  75. str[strlen(str) - 1] = '\0';
  76. while (buffer[indexBuffer] != EOF)
  77. {
  78. buffer[indexBuffer] = fgetc(file);
  79. if (buffer[indexBuffer] == ',' || buffer[indexBuffer] == '\n' || buffer[indexBuffer] == EOF)
  80. {
  81. if (buffer[indexBuffer] == '\n')
  82. {
  83. flag++;
  84. }
  85. buffer[indexBuffer] = 0;
  86. indexBuffer--;
  87. if (strcmp(str, buffer) == 0)
  88. {
  89. rowInsexOrflag = row;
  90. return rowInsexOrflag;
  91. }
  92. cleanBuffer(&buffer, &indexBuffer);
  93. indexBuffer--;
  94. if (flag == 1)
  95. {
  96. flag--;
  97. row++;
  98. }
  99. }
  100. indexBuffer++;
  101. }
  102. indexRowOrFlag = 0;
  103. return indexRowOrFlag;
  104. }
  105. void cleanBuffer(char* buffer, int* indexBuffer)
  106. {
  107. for (int i = 0; i < strlen(buffer); i++)
  108. {
  109. buffer[i] = '\0';
  110. }
  111. *indexBuffer = 0;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement