Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #define EXIT 4
- #define SIZE_STR 20
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <string.h>
- int printMenu(void);
- int searchFile(FILE* file);
- void cleanBuffer(char* buffer, int* indexBuffer);
- int main(int argc, char** argv)
- {
- FILE* csvfile;
- int choice = 0, flag = 0;
- csvfile = fopen("C:\\Users\\ronra\\Desktop\\example2.csv", "r");
- while (choice != EXIT)
- {
- choice = printMenu();
- switch (choice)
- {
- case 1:
- {
- flag = searchFile(csvfile);
- if (flag != 0)
- {
- printf("Value was found in row %d\n", flag);
- }
- else
- {
- printf("Value Wasn't Found");
- }
- break;
- }
- case 2:
- {
- break;
- }
- case 3:
- printf("");
- {
- printf("");
- break;
- }
- case EXIT:
- {
- printf("Good bye!");
- }
- default:
- {
- printf("Try agian.");
- break;
- }
- }
- }
- fclose(csvfile);
- getchar();
- }
- int printMenu(void)
- {
- int choice = 0;
- 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");
- scanf("%d", &choice);
- getchar();
- return choice;
- }
- int searchFile(FILE* file)
- {
- int c, rowInsexOrflag = 1, row = 1, indexBuffer = 0, flag = 0;
- char str[SIZE_STR] = { 0 };
- char buffer[SIZE_STR] = { 0 };
- int indexRowOrFlag = 0;
- printf("Enter value to search: ");
- fgets(str, SIZE_STR, stdin);
- str[strlen(str) - 1] = '\0';
- while (buffer[indexBuffer] != EOF)
- {
- buffer[indexBuffer] = fgetc(file);
- if (buffer[indexBuffer] == ',' || buffer[indexBuffer] == '\n' || buffer[indexBuffer] == EOF)
- {
- if (buffer[indexBuffer] == '\n')
- {
- flag++;
- }
- buffer[indexBuffer] = 0;
- indexBuffer--;
- if (strcmp(str, buffer) == 0)
- {
- rowInsexOrflag = row;
- return rowInsexOrflag;
- }
- cleanBuffer(&buffer, &indexBuffer);
- indexBuffer--;
- if (flag == 1)
- {
- flag--;
- row++;
- }
- }
- indexBuffer++;
- }
- indexRowOrFlag = 0;
- return indexRowOrFlag;
- }
- void cleanBuffer(char* buffer, int* indexBuffer)
- {
- for (int i = 0; i < strlen(buffer); i++)
- {
- buffer[i] = '\0';
- }
- *indexBuffer = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement