n
newbie.works.with.QTНаурыз 4, 2019, 1:07 Т.Қ.
как найти конкретную строку в файле (блокнот)
У меня следуйщая задача:
ввожу слово или код в консоль, программка считывает, находит в блокноте нужную строку записывает две переменные:
(1-я ту строку которую мы нашли благодоря слову или коду и
2-я следуйщая сторка после неё)
вот так вот.
у меня есть только проверка есть ли слово или код:
#include <iostream> #include <windows.h> #include <string.h> #include <fstream> using namespace std; int main() { char word[256], line[256], tmp[256]; char *buf = NULL; ifstream file; setlocale(0, ""); cout << "слово для поиска: "; cin.get(word, 256, '\n'); file.open("D:\\TRAN\\Lib6.txt", ios::in); if(!file) { cout<<"нет такого файла!!!!"<<endl; exit(1); } while (!file.eof()) { file.getline(line, 256, '\n'); strcpy(tmp, line); buf = strtok(tmp, " "); if (buf == NULL) { cout << "Ошибка" << endl; file.close(); system("pause"); exit(1); } if (strcmp(buf, word) == 0) { cout << line <<" : найдено совпадение" << endl; system("pause"); exit(0); } } cout << "нет подобных значений" << endl; file.close(); system("pause"); return 0; }
и просто вывод текста:
const int len = 300, strings = 6; const char ch = '\n'; char mass[len][strings]; ifstream fs("D:\\TRAN\\Lib6.txt", ios::in | ios::binary); if(!fs) return 1; for(int r = 0; r<strings; r++) { fs.getline(mass[r], len-1,ch); cout << "String " << r+1 << " = "<< mass[r] << endl; } fs.close();
а вот найти строку по слову, записать в переменную
эту строку и в другую переменную следуйщую строку не знаю как...
кажется двигаюсь не в том направлении :(
помогите пожалуйста.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
Г
- Геній
- Қыр. 13, 2024, 12:46 Т.Қ.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:66ұпай,
- Бағалау ұпайлары-1
t
- torgaev_2024
- Қыр. 8, 2024, 6:20 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:33ұпай,
- Бағалау ұпайлары-10
Соңғы пікірлер
Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
ВР
Linux жүйесінде файлдарды қалай көшіруге болады Screenshot_20240802-065123.png
Влад РусоковТам. 2, 2024, 1:47 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
Енді форумда талқылаңыз
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
BlinCTМаусым 25, 2024, 1 Т.Ж.
BlinCTМамыр 5, 2024, 5:46 Т.Ж.
Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
Добрый день!
Вы не пробовали использовать std::string для строк?
Это было бы несколько проще для поиска строк, вот примеры для поиска строк в строке std::string
Добрый вечер,
спасибо за ссылку. А для работы нужно весь текст из txt записывать? не получается организовать чтение из файла (не знаю как это сделать)
конечно, нужно считывать
Вот например один из вариантов чтения из файла в одну строку
Большое спасибо!!!!
Только один вопрос: как записать в переменную всю строку сначала (у меня просто получается только кусок) и как записать следуйщую строку?
Вот у меня так получилось:
Мысли насчёт второй строчки таковы:
узнать где переход на следуйщую строку и узнать точку
и записать всё что между ними в переменную (только это в мыслях, а как скомпилировать так ошибки одни)
Что это за кракозябры в коде. Как вообще понять, что вы этим хотите сказать?
У себя код скомпилировал, ну в некоторых случаях там есть выход за пределы массива, если не находит тот же самый Seven.
Не совсем понимаю конкретики вашей проблемы. И ещё перепишите код с использованием фигурных скобок у условий. А то мне кажется, что вы просто не совсем понимаете синтаксис языка. Если фигурный скобок у if нет, то в C++ учитывается в качестве тела условия только одна следующая за if строка, и никакие отступы в данном языке программирования роли не играют.
пример прост: я пишу из консоли переменную string
-Chto chitaesh?
txt:
программа должна выдать:
-knigy.
непонимаю как сказать программе
- все символы после конца строки и до точки запиши в пременную dva
Ну вот так можно написать программу.
Сохранит в вектор все строки, которые оканчиваются на точку. В вашем случае это как раз ответы получаются.
Добрый вечер. Извините, неправильно написал.....
Ну так выводит все строки с точкой, а мне нужно только следуйщую после нашей.
Ну самый такой вариант в лоб, при полном совпадении строки вопроса и учитывая, что следующая строка, которая оканчивается на точку является ответом, можно написать так.
Большооооое спасибо!!!!!
Не передать как я вам благодарен, спасибо что всегда отзываетесь.
Теперь я смогу продолжить работу в QT!!! (пробую писать бота (Я как вы могли догадаться немного не програмист, моя специализация - анимация),
( с Ui разобрался (строка ввода с кнопочкой), а вот с блокнотом была проблема, но благодоря вам это уже в прошлом (в эти строчки будут закидываться не просто слова, а путь к Waw файлу))
Спасибо!!!!