Загрузка...

C++ working with a file (DB)

Thread in C/C++ created by lugenlord Jun 5, 2018. 387 views

  1. lugenlord
    lugenlord Topic starter Jun 5, 2018 20 Mar 11, 2017
    В общем, есть файл *txt и в нем имеются строки типо таких:
    Code

    27 января
    День воинской славы России. День снятия блокады города Ленинграда (1944г.)
    Ну, можно их в принципе поменять. Мне нужна такая программа, в которой я должен вписать дату или просто год, и программа будет искать совпадения со всего файла, а после выведет эту строку, где нашлось совпадение. Я понял то, что этот поиск можно осуществить посимвольно, либо как-то полностью что ли.
    Например: Я ввожу 1944 и прога выводит мне "День воинской славы России. День снятия блокады города Ленинграда (1944г.)". Ну примерно так +-. Делал по разному ничего не получается, что прога не видит в файле ничего, что она ничего не может в нем найти и все такое. Очень нужно, хоть какую-нибудь часть программы или приближенное
     
  2. MainShiro
    MainShiro Jun 5, 2018 Banned 56 Mar 6, 2018
    Попробуй notepad++ :) Отпиши потом шо да как
     
  3. HideHard
    HideHard Jun 5, 2018 Banned 11 Jul 17, 2017
    Регулярки
     
  4. lugenlord
    lugenlord Topic starter Jun 5, 2018 20 Mar 11, 2017
    Изначально у меня была вот такая программа
    Code

    #include <fstream>
    #include <iostream>
    #include <string>
    #include <Windows.h>
    using namespace std;

    int main()
    {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);

    string buff, ent;

    while (true)
    {
    ifstream fin("D://Dev-Cpp//datt.txt");

    cout << "Enter date: "; getline(cin, ent);

    getline(fin, buff);

    while (ent != buff)
    {
    getline(fin, buff);
    }

    getline(fin, buff);
    cout << (buff) << "\n______________________________________________________________________________\n" << endl;

    fin.close();
    }





    system("pause");
    return 0;
    }
    В ней я вводил, например: 1 января и она выводила мне "1) Новый год. 2) Всемирный день мира. 3) Национальный день похмелья. 4) Манифест о введении всеобщей воинской повинности и Устав воинской повинности (1874г.)"
    В самом текстовом документе это выглядит так: "
    1 января
    1) Новый год. 2) Всемирный день мира. 3) Национальный день похмелья. 4) Манифест о введении всеобщей воинской повинности и Устав воинской повинности (1874г.)"
    Ну и все работает, но когда я захотел сделать, чтобы программа искала везде и выводила строчки, где есть совпадения, то все, ничего не выходит, я хз
     
  5. satan4
    satan4 Jun 5, 2018 46 тысяч в боте 31 Apr 30, 2018
    Изи
     
  6. lugenlord
    lugenlord Topic starter Jun 5, 2018 20 Mar 11, 2017
    Да?
     
  7. swmf
    swmf Jun 5, 2018 101 Dec 8, 2017
    это слишком ресурсозатратно
     
  8. swmf
    swmf Jun 5, 2018 101 Dec 8, 2017
    короче, посимвольно ищешь дату, затем полностью копируешь следующую строку до символа \n и всё
     
  9. swmf
    swmf Jun 5, 2018 101 Dec 8, 2017
    ой, у тебя там про год
     
  10. Masson_MIX
    Masson_MIX Jun 5, 2018 Я даун :3 94 Feb 4, 2018
    Ctrl+F
     
  11. Help
    Help Jun 5, 2018 469 May 12, 2017
    Зачем использовать файл как бд ? Используй бд.
     
  12. Neloder
    Neloder Jun 5, 2018 Проверяйте через лс 806 Oct 5, 2016
     
  13. lugenlord
    lugenlord Topic starter Jun 6, 2018 20 Mar 11, 2017
    Code

    void word(int argc; CHAR* argv[] ; )
    {
    fstream File;
    string FileName = ("Файл") ;
    do {
    File.open(FileName,ios::in);
    if (File == NULL) {
    cout « "Ошибка! Возможно такого файла не существует! Повторите ввод:" « endl;
    }
    }
    while (File==NULL);
    vector<string> Text;
    int i=0;

    string s;
    while (getline(File, s)) { Text.push_back(s); }

    string word; int h=0;
    cout « "Введите слово: " « endl;
    cin » word;
    cout « word « "»: "«еndl;

    for (int j=0; j < Text.size(); j++)
    {
    istringstream is(Text[j]);
    while (is » s)
    if (s.find(word) != string::npos)
    {
    cout « Text[j] « endl;
    ++h;
    }

    }

    if (h==0) cout«"Строк со словом « "word" « "нет"«endl;
    system("pause");
    }
    Что здесь не так?)
     
Loading...
Top