powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поиск в текстовом файле
10 сообщений из 10, страница 1 из 1
Поиск в текстовом файле
    #38064661
asupviking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется текстовый файл формата:

02.03.2010: Строка 1
15.04.2010: Строка 2
20.05.2011: Строка 3
...

Необходимо произвести поиск даты в файле, которая берётся из textBox1 и если дата найдена вывести в textBox2 часть строки находящейся справа от двоеточия.
На форуме нашёл только поиск по текстовому файлу на С#, такого вида:

Код: c#
1.
2.
3.
Regex reg = new Regex(textBox1.Text + "-[0-9]+", RegexOptions.IgnoreCase);
MatchCollection math = reg.Matches(File.ReadAllText("D:\\File.txt"));
textBox2.Text = math[0].ToString().Replace(textBox1.Text + "-", "");



адаптировать его на с++ не получается. Помогите пожалуйста, кто знает.
...
Рейтинг: 0 / 0
Поиск в текстовом файле
    #38065468
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Поиск в текстовом файле
    #38065661
asupviking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
фиганыч спасибо, перевёл всё это дело на с++ вот как:

Код: plaintext
1.
2.
3.
Regex^ reg = gcnew Regex(this->textBox1->Text, static_cast<RegexOptions>(RegexOptions::IgnoreCase));
MatchCollection^ math = reg->Matches(File::ReadAllText("C:\\prav_test.txt"));
this->textBox2->Text = math[0]->ToString()->Replace(textBox1->Text, "");



но почему то всё равно поиск не получается, textBox пустой.
...
Рейтинг: 0 / 0
Поиск в текстовом файле
    #38065953
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asupviking,

хм, походу забыл дать ссылку на самое главное:

Регулярные выражения - википедия
Вот их реализация на .Net
Искать реализацию в этой сишной библиотеке влом - вот здесь всё найдёте сами

по-хорошему это всё надо почитать и тогда вы найдёте решение сами + повысите себе skill и получите level-up, всё-таки регулярка это мощный инструмент

ну а если лень - то можно попробывать так:

Код: plaintext
1.
2.
3.
Regex^ reg = gcnew Regex(this->textBox1->Text + ":.+?\\r\\n", static_cast<RegexOptions>(RegexOptions::IgnoreCase));
MatchCollection^ math = reg->Matches(File::ReadAllText("C:\\prav_test.txt"));
this->textBox2->Text = math[0]->ToString()->Replace(textBox1->Text, "");
...
Рейтинг: 0 / 0
Поиск в текстовом файле
    #38065989
asupviking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя нет, он находит подстроку (дату) в строке , а мне нужно что бы он всю строку возвращал, наверное нужно уазать какой-нибудь ключ.
...
Рейтинг: 0 / 0
Поиск в текстовом файле
    #38066002
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asupviking,

вам здесь не нужен Regex читайте просто первые 10 символов и парсите в дату
...
Рейтинг: 0 / 0
Поиск в текстовом файле
    #38066027
M234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationasupviking,

вам здесь не нужен Regex читайте просто первые 10 символов и парсите в дату

Да и парсить не надо, просто читать и сравнивать с введённым в текстбоксе.
...
Рейтинг: 0 / 0
Поиск в текстовом файле
    #38067485
asupviking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
фиганыч, всё работает, только я ещё задал кодировку для корректного отображения символов.

Код: plaintext
1.
2.
3.
Regex^ reg = gcnew Regex(this->textBox1->Text + ":.+?\\r\\n", static_cast<RegexOptions>(RegexOptions::IgnoreCase));
MatchCollection^ math = reg->Matches(File::ReadAllText("C:\\prav_test.txt", System::Text::Encoding::Default));
this->textBox2->Text = math[0]->ToString()->Replace(textBox1->Text, "");



Правда здесь возникают две проблемы: если в текстбокс2 вставляется строка, то в в конец строки добавляются два неизвестных символа (? переход на новую строку) и если искомый текст в файле не найден то генерируется исключение.
Два лишних символа в конце строки текстбокса не так страшны, главное обработать исключение если ничего не найдено. Как лучше это сделать: try catch или может условие какое поставить?
...
Рейтинг: 0 / 0
Поиск в текстовом файле
    #38068042
sld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sld
Гость
math.count>0
...
Рейтинг: 0 / 0
Поиск в текстовом файле
    #38068253
asupviking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо теперь работает чётко, фиганыч обязательно посмотрю материал, задача решена.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поиск в текстовом файле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]