Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include <stdio.h>
- #include <conio.h>
- #include <iostream>
- #include <string>
- #include <io.h>
- #include <cmath>
- #include "dialog.h"
- #include "binary.h"
- #include "struct.h"
- bool createindialog(int argc, char *argv1, char *argv2)
- {
- char s_text[1001], s_bin[1001];
- bool t_way = true;
- if (argc != 3)//проверка на некорректность данных в параметрах
- {
- printf_s("\nВведите имя текстового файла (без расширения): ");
- scanf_s("%s", s_text, 1000);
- strcat_s(s_text, ".txt");
- printf_s("Введите имя бинарного файла (без расширения): ");
- scanf_s("%s", s_bin, 1000);
- }
- else
- {
- t_way = false;
- strcpy_s(s_text, argv1);
- strcpy_s(s_bin, argv2);
- }
- int num = createbinary(s_text, s_bin);
- if (!(num == -1))
- {
- if ((!(num == -1)) and (!(num == -2)))
- {
- if (num != 0)
- {
- printf_s("\nСоздан файл из %d записей", num);
- }
- else
- {
- printf_s("\nИсходный файл пустой");
- }
- }
- }
- return t_way;
- }
- int searchindialog(char *argv2, bool t_way)
- {
- char s_bin[1001];
- if (t_way)
- {
- printf_s("\nВведите имя бинарного файла (без расширения): ");
- scanf_s("%s", s_bin, 1000);
- }
- else
- {
- printf_s("\n");
- strcpy_s(s_bin, argv2);
- }
- FILE *input;
- if (fopen_s(&input, s_bin, "rb+") == 0)
- {
- int elem = 0, num = 0;
- Tproduce prod;
- printf_s("Введите требуемое количество элементов продукции: ");
- scanf_s("%d", &elem);
- do
- {
- fread(&prod, sizeof(prod), 1, input);
- if ((prod.quantity < elem) and !feof(input))
- {
- num++;
- if (num == 1)
- {
- printf_s("\nНайдены элементы, удовлетворяющие условию:\n");
- }
- printf_s("'%s' в количестве '%d' штук с порядковым номером '%d'\n", prod.name, prod.quantity, prod.number);
- }
- } while (!feof(input));
- if (num == 0)
- {
- printf_s("\nНе найдено ни одной искомой записи");
- }
- else
- {
- printf_s("\nВсего элементов найдено - %d", num);
- }
- }
- else
- {
- printf_s("\nОшибка: не удалось открыть бинарный файл");
- fclose(input);
- return -1;
- }
- fclose(input);
- return 0;
- }
- int changeindialog(char *argv2, bool t_way)
- {
- char s_bin[1001];
- if (t_way)
- {
- printf_s("\nВведите имя бинарного файла (без расширения): ");
- scanf_s("%s", s_bin, 1000);
- printf_s("\n");
- }
- else
- {
- printf_s("\n");
- strcpy_s(s_bin, argv2);
- }
- FILE *input;
- if (fopen_s(&input, s_bin, "rb+") == 0)
- {
- int num = 0;
- Tproduce prod;
- do
- {
- fread(&prod, sizeof(prod), 1, input);
- if ((prod.quantity < 0) and (!feof(input)))
- {
- int quantity = 0;
- num++;
- quantity = prod.quantity;
- prod.quantity = abs(prod.quantity);
- fseek(input, 0 - sizeof(prod), SEEK_CUR);
- fwrite(&prod, sizeof(prod), 1, input);
- fseek(input, 0, SEEK_CUR);
- printf_s("Найдена запись '%s' в количестве '%d' штук с порядковым номером '%d', в которой скорректировано значение количества на '%d'\n", prod.name, quantity, prod.number, prod.quantity);
- }
- } while (!feof(input));
- if (num == 0)
- {
- printf_s("Ни одной коррекции не было произведено");
- }
- else
- {
- printf_s("\nВсего элементов скорректировано - %d", num);
- }
- }
- else
- {
- printf_s("\nОшибка: не удалось открыть бинарный файл");
- fclose(input);
- return -1;
- }
- fclose(input);
- return 0;
- }
- int view(char *argv2, bool t_way)
- {
- char s_bin[1001];
- if (t_way)
- {
- printf_s("\nВведите имя бинарного файла (без расширения): ");
- scanf_s("%s", s_bin, 1000);
- }
- else
- {
- strcpy_s(s_bin, argv2);
- }
- printf_s("\n");
- FILE *input;
- if (fopen_s(&input, s_bin, "rb+") == 0)
- {
- int num = 0;
- Tproduce prod;
- do
- {
- fread(&prod, sizeof(prod), 1, input);
- if (!feof(input))
- {
- num++;
- printf_s("'%s' в количестве '%d' штук с порядковым номером '%d'\n", prod.name, prod.quantity, prod.number);
- }
- } while (!feof(input));
- if (num == 0)
- {
- printf_s("\nНе найдено ни одной записи");
- }
- else
- {
- printf_s("\nВсего элементов в файле найдено - %d", num);
- }
- }
- else
- {
- printf_s("\nОшибка: не удалось открыть бинарный файл");
- fclose(input);
- return -1;
- }
- fclose(input);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement