Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/22: Рейтинг темы: голосов - 22, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 01.12.2019
Сообщений: 15

Нахождение строки с текстового файла

02.12.2019, 00:11. Показов 4860. Ответов 30

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужна функция которая ищет с документа текстового нужные строки. Суть проблемы : хочу найти слово "AcDbLine" в рандомном месте файла (файл большой, и комбинация слов будет встречаться как "AcDbLineRecord" которое мне не нужно) под этим словом есть нужные мне цифры ( нужна 2,4,6,8,10,12тые строки под словом) каждый цикл считывания мне нужно нумеровать, чтобы позже вызвать допустим из массива строку с номером ячейки которая равна кол-ву прочитанных строк выше. Строки не имеют пробелов в конце. название файла "test.txt" Примерная информация в тексте (ненужное начало вырезано для удобства)

AcDbLineRecord \\эта штука будет в файле но она мне не нужна
0
AcDbLine\\нужная мне строка
10
34 \\ эту и каждую парную цифру надо выцепить
20
44\\ и эту
30
57\\эту
11
95\\эту
21
75\\эту
31
33\\эту
useless info...
end.
Заранее хочу поблагодарить всех тех кто полностью или частично поможет. И если не трудно алгоритм взять максимально топорный, я автоматик, а не кодер
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2019, 00:11
Ответы с готовыми решениями:

В конец каждой строки текстового файла дописать количество символов этой строки
Помогите, нужно : "В конец каждой строки текстового файла дописать количество символов этой строки". Получается только в начало, не...

Считывание строки с текстового файла
Напишите пожалуйстанаброски как можно считать строку с текстового файла ,для дальнейшей работы с ней.Используя string.h Спасибо

Вывод строки из текстового файла
Написать функцию, удовлетворяющую следующим требованиям: Прототип: int f(char*a, int n) Параметры: а - указатель исходного массива, n -...

30
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
02.12.2019, 16:35
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от crow53 Посмотреть сообщение
файл занимает 110кб и не может быть здесь выложен
Заверните весь файл в zip-архив и выложите здесь.
Цитата Сообщение от crow53 Посмотреть сообщение
Эскиз топорного варианта:
синтаксически все правильно, только увы поиска не происходит
А как вы поняли, что поиска не происходит?

Там, где стоит комментарий "закончили обрабротку координат" в массиве coords содержатся координаты обработанной линии. Здесь надо дописать какой-то код, который сделает с координатами то, что вам нужно: вывести на консоль, записать в файл, возвести в квадрат, сложить и поделить на 0... Я не знаю, что вам надо. Вы просили числа записать в массив.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
02.12.2019, 16:39
Цитата Сообщение от crow53 Посмотреть сообщение
Тип файла: txt test.txt (363 байт, 0 просмотров)
здесь всё находит.

Дайте мне такой файл, где прога находить не будет!
0
1 / 1 / 0
Регистрация: 01.12.2019
Сообщений: 15
02.12.2019, 16:44  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение


то всё как обычно - РАБОТАЕТ.
вот тогда целый test, только в связи с моей ошибкой полное название исключения AcDbLinetypeTableRecord , поменяйте его в маркере(но суть осталась прежней символы одинаковы в обоих случаях)
Вложения
Тип файла: rar test.rar (20.5 Кб, 3 просмотров)
0
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
02.12.2019, 16:45
del
1
1 / 1 / 0
Регистрация: 01.12.2019
Сообщений: 15
02.12.2019, 16:47  [ТС]
Цитата Сообщение от L0M Посмотреть сообщение
del
спасибо, только сейчас прозрел что там написано)
0
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
02.12.2019, 16:53
Лучший ответ Сообщение было отмечено crow53 как решение

Решение

crow53,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
const string lineMark = "AcDbLine";
 
 
int main()
{
    ifstream ifs("test.txt");
    string str;
    double coords[6];
    int cnt = -1;
    while (ifs >> str) {
        if (cnt == -1)
            if (str != lineMark)
                continue;
            else {
                cnt = 0;
                continue;
            }
        ++cnt;
        if (cnt % 2 == 0) {
            coords[(cnt - 2) / 2] = stod(str);
        }
        if (cnt == 12) {
            cnt = -1;      // закончили обрабротку координат
 
            cout << "AcDbLine: ";
            for (size_t i = 0; i < 6; ++i)
                cout << coords[i] << " ";
            cout << endl;
        }
    }
    ifs.close();
}
Результат в консоли по вашему файлу:
Code
1
2
AcDbLine: -72.2955 69.0895 0 -72.2955 1402.28 0
AcDbLine: -699.967 129.205 0 -699.967 1129.21 0
0
1 / 1 / 0
Регистрация: 01.12.2019
Сообщений: 15
02.12.2019, 17:00  [ТС]
задача решена спасибо )
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
02.12.2019, 17:00
дел
0
1 / 1 / 0
Регистрация: 01.12.2019
Сообщений: 15
02.12.2019, 17:03  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
ок.

Второй маркер-ключ тот же самый или опять другой???

или он каждый раз новый?
если я правильно понял то второй маркер отвечает за исключение при обработке поиска. соответственно у меня стоял нужный(ненужный) AcDbLinetypeTableRecord который не должен был искаться, и нет, конкретно этот марке не меняется
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
02.12.2019, 17:13
Цитата Сообщение от crow53 Посмотреть сообщение
задача решена спасибо )
но для меня осталось загадка зачем вы долго рассказывали сначала про AcDbLineRecord потом про AcDbLinetypeTableRecord,
если он в вашем поиске ВАЩЕ НЕ НУЖЕН!!!

выкинул поиск этого ключа и тоже всё стало находить в искомом файле.


Если бы вы сразу дали настоящий входной файл, то можно было бы реально съэкономить время,

Добавлено через 4 минуты
доверившись вам я исходил из того что ключей AcDbLine в файле будет много, ан НЕТ

Удачи!
0
1 / 1 / 0
Регистрация: 01.12.2019
Сообщений: 15
02.12.2019, 17:14  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
но для меня осталось загадка зачем вы долго рассказывали сначала про AcDbLineRecord потом про AcDbLinetypeTableRecord,
если он в вашем поиске ВАЩЕ НЕ НУЖЕН!!!

выкинул поиск этого ключа и тоже всё стало находить в искомом файле.
я писал условие по памяти, конечно я сам пытался писать подобную програму но столкнулся с рядом проблем:
-не мог укомплектовать данные
-не понимал как перестать находить этот AcDbLinetypeTableRecord ибо они повторялись в файле 3 раза вроде

если я не описывал проблему с тем что выше нужного мне AcDbLine есть AcDbLinetypeTableRecord результат мне показывали примерно такой же какой я писал самолично, то есть мне выдавало в логах AcDbLinetypeTableRecord
вот и по ошибке я написал AcDbLineRecord, я заметил её на средине диалога, и дабы не усложнять все просто менял AcDbLinetypeTableRecord на AcDbLineRecord(с чем я тоже изначально протестировал, дабы проблем не возникало изза этого - результат соответственно тот же)

извините)) И Вам удачи!)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2019, 17:14

Отсортировать строки текстового файла
Дан строковый файл. Создать новый строковый файл, в котором строки из исходного файла располагались бы в лексикографическом порядке, то ...

Считать длину строки текстового файла
Есть квадратная матрица, которая заполняется данными из файла. Если размерность матрицы больше, чем объём данных в файле, то нужно...

Вставка строки из текстового файла в код
Как прочитать в текстовом файле строку и подставить её в код? Есть векстор чисел. Я прохожу по нему циклом , при этом условие if должны...

Выровнять строки текстового файла по ширине
дан текстовый файл. выровнять все строки по ширине, выравнивание произвести по самой длинной строке файла. результат поместить в новый файл.

Добавить в конец первого текстового файла содержимое второго текстового файла
Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru