Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 27.06.2017
Сообщений: 8
1
Builder 6

Поиск в Memo

08.03.2019, 13:06. Показов 1361. Ответов 2

Author24 — интернет-сервис помощи студентам
Привет всем.
В моей программе есть поле Memo, куда выводится результат команды ping. Мне нужно из Memo достать время ответа. Пробовал сделать через Pos поиск.
C++
1
2
3
4
5
6
7
8
9
10
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
int PosTime,PosMC;
String ping,memostring;
for(PingLines;PingLines<Memo1->Lines->Count;PingLines++){ memostring=Memo1->Lines->Strings[PingLines];
PosTime=memostring.Pos("время=");
PosMC=memostring.Pos("мс");
ping=memostring.SubString(PosTime+7,PosMC-PosTime-7);
}
Label2->Caption=ping;
Но в итоге в ответ ничего не выводится. Пробовал отдельно вывести PosTime и PosMC, там постоянно 0.
Поиск в Memo
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.03.2019, 13:06
Ответы с готовыми решениями:

Поиск по Memo
Как найти слово в Memo и заменить его?

Поиск в Memo
Есть массив указателей на объекты одного класса У класса 5 полей При нажатии на кнопку, эти поля...

Поиск в Memo ?
Здравствуйте! задача : дано Memo1 ( в нем забит текст,числа) - edit1( для поиска чегото в...

Поиск слова в Memo
Есть 2 поля Memo с текстом, есть поле Edit, куда вводится слово. Как найти количество вхождений...

2
1702 / 898 / 207
Регистрация: 25.11.2009
Сообщений: 1,847
08.03.2019, 14:01 2
1. Нужно поправить смещение в SubString:
C++
1
2
SubString(PosTime + 6, PosMC - PosTime - 6);
//или SubString(PosTime + 6, PosMC - (PosTime + 6))
Если в строке memostring действительно будет искомое значение, оно будет найдено.

2. Ответ от команды ping состоит из двух строк, и время можно найти только в каждой второй строке. Стоит добавить проверку
C++
1
2
3
PosTime = memostring.Pos("время=");
if (!PosTime)
    continue;
1
0 / 0 / 0
Регистрация: 27.06.2017
Сообщений: 8
08.03.2019, 18:53  [ТС] 3
Оказалось проблема у меня в другом(текст в Memo - юникод, который виден благодаря шрифту и поиск по этой причине не работал), но в целом поиск работать таким способом должен.
Я сейчас решил реализовать это через элемент IdIcmpClient, а именно вывел пинг так:
C++
1
2
3
IdIcmpClient1->Host=Edit2->Text;
IdIcmpClient1->Ping();
Label2->Caption=IntToStr(IdIcmpClient1->ReplyStatus.MsRoundTripTime);
Но спасибо за ответ.
0
08.03.2019, 18:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2019, 18:53
Помогаю со студенческими работами здесь

Правильный поиск в Memo
Господа подскажите почему поиск if (AnsiPos(&quot;New&quot;, Memo1-&gt;Lines-&gt;Text)&gt;0 ) Даёт результат по...

Поиск слов в Memo
Возможно сделать чтоб в Memo искалось выбранное слово(с Edit ), и если такое находилось добавлять...

Поиск индекса строки MEMO
Как узнать индекс строки memo, зная первое слово этой строки? Т.е. существует к примеру строка...

Поиск и сложение переменных в memo
Здравствуйте дорогие форумчане Задача такова: Я вывожу в memo1 текст (ингредиенты и их количество...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru