Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct bdsm
- {
- char* author; // Автор
- char* book; // название книги
- int edition; // Тираж
- double cost; // Цена
- };
- int addBook(bdsm *bd, int m, char*text)
- {
- char *p3 = (char*)malloc(0);
- int i = 0, j = 0, z = 0;
- while(i < strlen(text))
- {
- p3 = NULL;
- free(p3);
- p3 = (char*)malloc(0);
- j = 0;
- for ((z==0) ? i=0 : i++; (text[i] != ' ' && text[i] != '\n' && text[i] != '\0') && i < strlen(text); i++)
- {
- if (text[i + 1] != ' ')
- p3 = (char*)realloc(p3, sizeof(char)*(j + 1));
- p3[j] = text[i];
- j++;
- }
- p3[j] = '\0';
- switch(z) {
- case 0:
- bd[m].author = new char[strlen(p3) + 1];
- strcpy(bd[m].author, p3);
- break;
- case 1:
- bd[m].book = new char[strlen(p3) + 1];
- bd[m].book = p3;
- break;
- case 2:
- bd[m].edition = atoi(p3);
- break;
- case 3:
- bd[m].cost = atof(p3);
- break;
- }
- z++;
- }
- m++;
- return m;
- }
- int load(bdsm *bd,int m) {
- ifstream db(dbFile); //файл бд.
- if(db.fail()) //если реад онли ИЛИ НЕ СУЩЕСТВУЕТ (создай его перед запуском программы. Если компилить, кидай в папку с исходным кодом)
- return -1;
- else
- if(db.eof()) //Это, если БД пуста.
- return 0;
- char c, *text = (char*)malloc(0);
- text = NULL;
- int i = 0,z=0;
- text = (char*)realloc(text, sizeof(char)*(z + 1));
- while (db.get(c) && text[i]!='\0')
- {
- text = (char*)realloc(text, sizeof(char)*(i + 1));
- text[i] = c;
- i++;
- if(c=='\n'||c=='\0') {
- text[i]='\0';
- m=addBook(bd, m, text);
- text = NULL;
- free(text);
- text = (char*)malloc(0);
- i=0;
- }
- }
- if(i!=0) {
- text[i]='\0';
- m=addBook(bd, m, text);
- text = NULL;
- free(text);
- }
- return m;
- }
- void save(bdsm *bd, int n) {
- char*writeLine = "", c = ' ';
- ofstream saveFile(dbFile, ios_base::out | ios_base::trunc);
- for(; n>0; n--)
- {
- saveFile<<bd[n-1].author<<" "<<bd[n-1].book<<" "<<bd[n-1].edition<<" "<<bd[n-1].cost<<endl; //Всё в программе хранится в таком виде. Хочешь выводить текст, сравнивай нужные элементы и выводи именно в таком виде. Структура для примера наверху.
- }
- saveFile.close();
- }
- int start(bdsm *bd,int m) {
- m=load(bd,m);
- cout<<m;
- return m;
- }
- /////
- bdsm *bd = new bdsm[1]; //структура
- int m = start(bd,0); //Начальное значение элементов. Крч, через AddBook и load прогоняется массив из всех символов, разделяется по строкам и заполняется в структуру. ну и m плюсуется. В конце выдается ровное количество, сколько элементов в структуре.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement