Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
 Аватар для DIMAT
2 / 2 / 0
Регистрация: 24.06.2010
Сообщений: 81

Разбор текстового файла

07.07.2010, 02:34. Показов 4114. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый! Возникла такая проблема, на решение которой у меня не хватает опыта, вот прощу вашей помощи. Нужно текстовый файл, который имеет вид:
ventur-m 2010-03-18 15:26:35 FREQ:562452654 FIL:MYT
[TJ] GJM
[DJ]DJG

ventur-m 2010-03-18 18:35:07 FREQ:5534897 FIL:GMD
[TJ] PJM
[DJ]ADA
.
Вот такой тип файла, если развратся это лог, один файл на один день. в это файле есть много заголовков, один заголовок это одна запись в базу, заголовок начинается с ventur-m. Нужно чтобы из каждого заголовка бралось значение даты, время, значения FREQ: , [TJ] и [DJ].
Я пытался сделать циклы в цикле, но не могу уже придумать условие второго цикла. Код написать не могу, так как служу в армии на компе нету интернета, вам пишу с телефона. надеюсь на вашу помощь.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.07.2010, 02:34
Ответы с готовыми решениями:

Разбор текстового файла в массив
Доброго времени суток, есть текстовый файл с прим ерно таким содержимым: нужно этот текс запихать в некий массив: вот...

Разбор текстового файла
Прошу помочь, есть текстовый файл, блоки текста разделены пустой строкой, текст кирилический. Нужно каждый блок присвоить в элемент...

разбор текстового файла
Добрый день. Помогите пожалуйста. Где можно посмотреть пример разбра текстового файла разделенного табуляцией, либо символом?

26
 Аватар для FireOwl
62 / 44 / 14
Регистрация: 01.07.2009
Сообщений: 145
11.07.2010, 21:51
Студворк — интернет-сервис помощи студентам
Не понял, в чем сложность?
Сделайте условие - если в начале строки есть символы CMD то брать всю строку,
иначе применять выборку.
0
 Аватар для DIMAT
2 / 2 / 0
Регистрация: 24.06.2010
Сообщений: 81
12.07.2010, 11:45  [ТС]
ПОДСКАЖИТЕ КТО НИБУДЬ
0
Padawan
 Аватар для Johnny_D
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
12.07.2010, 11:56
Цитата Сообщение от DIMAT Посмотреть сообщение
начинаетс с [CMD взять все символы включая этого начала сроки
Мысль, мысль, пока......

Вот регулярка для взятия строки после [CMD], если мешают пробелы дописывае
Code
1
[^\s]
в нужный блок

Code
1
[^\[CMD\]][a-z0-9A-Z]*
0
 Аватар для DIMAT
2 / 2 / 0
Регистрация: 24.06.2010
Сообщений: 81
12.07.2010, 16:05  [ТС]
не работает, вот пример сроки:
[CMD LQA: JMTGJMW JGJMWTPGJ=WMTPJMWJT MJGJ=MJTGPM ] Она находится в одной из срок рич текст бокса, в принципе можно скопировать всю строит начиная от [CMD и заканчивая символом ]
0
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
12.07.2010, 21:31
я решаю подобные задачи следующим образом.
1) считываю файл в строку (мне с ней проще кажется работать)

2) иду по ней циклом while, вытаскивая нужные подстроки, а с подстрокой можно хоть что делать, например организовать подобный цикл для получения входящих в неё подстрок.

Приведу кусок программы, почти не адаптированный к вашей теме, просто нет времени ну совсем.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
            StrKey_Fr = "ventur-m";  // Начало подстроки
            StrKey_To = "ventur-m";  // Начало следующей подстроки, за неимением более подходящего за что зацепиться
            int x1;
            int x2;
            x1 = StrContent.IndexOf(StrKey_Fr);
            if (x1 > 0) x2 = StrContent.IndexOf(StrKey_To, x1+1);
            if(x1>=0 && x2<0)  // Если только одна запись в файле
             x2=StrContent.Lenhth;
            while (x2 > x1)
            {
                String StrSubStr = StrContent.Substring(x1, x2 - x1);
                // Вот здесь мы получили строку, которую можно разбирать во вложенном цикле, 
                // или скормить специально написанному для неё методу, который её разберёт
                // - вам виднее, как удобнее сделать
 
                // А теперь подготовимся к следующей итерации цикла
                x1=x2;
                x2 = StrContent.IndexOf(StrKey_To, x1+1);
                if(x1>=0 && x2<0)  // Если то была предпоследняя запись в файле
                  x2=StrContent.Lenhth;
                if(x2-x1<10)  // Если то была последняя запись в файле
                  break;
            }
Тут есть что оптимизировать, но в целом подход дб понятен, по шагам один раз прогоните и отладите.
0
 Аватар для DIMAT
2 / 2 / 0
Регистрация: 24.06.2010
Сообщений: 81
12.07.2010, 23:33  [ТС]
да нет там такое не прокатит нужно сделать поиск сроки с нужного нам начала.
0
 Аватар для s-kvv
76 / 73 / 9
Регистрация: 09.06.2010
Сообщений: 206
13.07.2010, 04:44
Цитата Сообщение от DIMAT Посмотреть сообщение
[CMD LQA: JMTGJMW JGJMWTPGJ=WMTPJMWJT MJGJ=MJTGPM ]
@"\[CMD([^\]]*?)\]"

Добавлено через 3 часа 16 минут
Знак "?" не нужен, хотя и так работает
@"\[CMD([^\]]*)\]"
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.07.2010, 04:44

Разбор (парсинг) текстового файла
Добрый день. помогите разобрать текстовик следующего содержания =102=TRAIO =1=1=1 =1=99=4MM L ...

Разбор текстового файла в powershell
Добрый день. Я мало что знаю про powershell, но у меня стоит такая задача. У меня есть файл с текстом. И мне нужно сделать так, чтобы,...

Разбор текстового файла в powershell
Здравствуйте. есть ли такая команда, которая позволяет считать текстовый файл и, например, когда в тексте будет находиться знак, например -...

Разбор текстового файла на слова
Добрый день, задача такова: Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию При разработке алгоритма...

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


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru