Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.13;
Скачать: CL | DM;

Вниз

работа с copy(s,1,2), Delete(s,1,2) и Pos( ; ,s)   Найти похожие ветки 

 
Konus   (2007-04-18 09:05) [0]

задача такая:
приходит сообщение, надо распознать, кому оно предназначено и показать текст адресатам
нашел пример чата, там реализовано примерно так:

простое сообщение:
if Copy(s,1,2) = "#M" then begin
  Delete(s,1,2);
  Memo1.Lines.Insert(0,Copy(s,1,Pos(";",s)-1)+"> "+
                       Copy(s,Pos(";",s)+1,Length(s)-Pos(";",s)));

это, как я понимаю, мы определили что M - message, общее сообщение
далее берем часть строки до ; - имя, добавляем > и текст сообщения от ; до конца

приватное сообщение:
 if Copy(s,1,2) = "#P" then begin
  Delete(s,1,2);
  to_ := Copy(s,1,Pos(";",s)-1);
  Delete(s,1,Pos(";",s));
  from_ := Copy(s,1,Pos(";",s)-1);
  Delete(s,1,Pos(";",s));

то же самое, но мы теперь знаем, что это приват
идем до первого знака ; - кому, до второго - от кого, далее - текст сообщения

мне необходимо отправлять приватные сообщения нескольким адресатам
каким образом можно реализовать?
т.е. понятно, что тем же, но откуда знать, сколько раз прыгать от ; до ; и когда начинается само сообщение?


 
Konus   (2007-04-18 09:10) [1]

если я вставлю еще какой-то специальный символ, указывающий на начало текста, как его определить?

сначала цикл добавления имен в список адресатов по такой схеме
пока не нашел специальный символ
Copy(s,1,Pos(";",s)-1);
Delete(s,1,Pos(";",s));

а потом Copy(s,Pos("СПЕЦСИМВОЛ",s)+1, Length(s)-Pos(";",s)) - текст сообщения?

если так, то каким образом сделать цикл до нахождения специального символа?


 
Sha ©   (2007-04-18 10:29) [2]

Проще всего этих нескольких адресатов разделять запятой.

И еще, начиная с D7, есть PosEx - так что можно обойтись без Delete


 
Konus   (2007-04-19 11:29) [3]

спасибо
D5 стоит :/


 
Keni ©   (2007-04-19 23:09) [4]

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


 
Kolan ©   (2007-04-19 23:21) [5]

Предлогаю заветсти класс «Сообщение» где и инкапсулирвать весь этот разбор.



Страницы: 1 вся ветка

Текущий архив: 2007.05.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.038 c
15-1176418839
Oblivion
2007-04-13 03:00
2007.05.13
Как заработать денег на своей проге


15-1176723476
Yaros-hoi
2007-04-16 15:37
2007.05.13
Фильтрация по дате


3-1172500836
avsam
2007-02-26 17:40
2007.05.13
ADO-версия. Как узнать?


9-1149650179
kinder_help
2006-06-07 07:16
2007.05.13
Помогите пожалуйста сделать рулетку!!!


15-1176497172
Petr V.Abramov
2007-04-14 00:46
2007.05.13
Не обос<по большому>ся бы... :)