Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2017, 08:48   #1
sarsen
Пользователь
 
Регистрация: 04.08.2016
Сообщений: 58
По умолчанию Фильтр писанины

Код работы с терминалом
Код:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
S:string;
begin
  ComPort1.ReadStr(S, Count);
  Memo1.Text := Memo1.Text + S;
end;
Как начать выводить сообщение в Memo1.Text пока в S не появится слово OK и всё, что после OK начинать вывод ?
sarsen вне форума Ответить с цитированием
Старый 06.01.2017, 09:34   #2
AnryKZKZ
Пользователь
 
Регистрация: 15.04.2014
Сообщений: 62
По умолчанию

Цитата:
Как начать выводить сообщение в Memo1.Text пока в S не появится слово OK и всё, что после OK начинать вывод ?
Не совсем понятно - когда должен идти вывод сообщения?
AnryKZKZ вне форума Ответить с цитированием
Старый 06.01.2017, 11:31   #3
sarsen
Пользователь
 
Регистрация: 04.08.2016
Сообщений: 58
По умолчанию

Цитата:
Сообщение от AnryKZKZ Посмотреть сообщение
Не совсем понятно - когда должен идти вывод сообщения?
в терминал в Memo1.Text летит сообщение с терминала, берутся данные с S и отправляются в Memo1.Text но туда летит весь текст, например мне надо отфильтровать сообщение полученное в Memo1.Text тоесть не выводить его пока не встретится с S Слово OK, вот допустим сообщение ( пошла муха на базар и купила OK самовар) После ОК слово сомовар вот ещё в Memo1.Text и вывести, как бы ждать на S слово OK и после него вывести что написанно до пока опять не прилетит OK тоесть после сомовар опять OK закончили вывод.
sarsen вне форума Ответить с цитированием
Старый 06.01.2017, 12:27   #4
AnryKZKZ
Пользователь
 
Регистрация: 15.04.2014
Сообщений: 62
По умолчанию

Тогда алгоритм будет такой (если я правильно понял рассуждения):
Берешь строку S, полученную с терминала, вычисляешь ее длину, и в ней ищешь нужную тебе комбинацию с помощью команды pos. Команда возвращает тебе позицию, откуда начинается указанная строка. Далее командой copy копируешь все, начиная со следующего символа и до конца строки во временную строку и вставляешь ее в Memo1.text.
AnryKZKZ вне форума Ответить с цитированием
Старый 06.01.2017, 14:50   #5
sarsen
Пользователь
 
Регистрация: 04.08.2016
Сообщений: 58
По умолчанию

Цитата:
Сообщение от AnryKZKZ Посмотреть сообщение
Тогда алгоритм будет такой (если я правильно понял рассуждения):
Берешь строку S, полученную с терминала, вычисляешь ее длину, и в ней ищешь нужную тебе комбинацию с помощью команды pos. Команда возвращает тебе позицию, откуда начинается указанная строка. Далее командой copy копируешь все, начиная со следующего символа и до конца строки во временную строку и вставляешь ее в Memo1.text.
Ну да есть же pos спасибо за подсказку, буду ковырять.
sarsen вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтр в БД Goodrich Microsoft Office Access 1 24.11.2014 20:00
Фильтр geniy1998 Общие вопросы Delphi 6 18.03.2012 15:45
Фильтр beygul Помощь студентам 7 09.02.2010 22:50
Фильтр Машенька Microsoft Office Access 1 16.12.2009 20:27