Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 535

/ вопрос открыт /

Здравствуйте, эксперты!
У меня возникли две проблемы с чатом. Когда подключаю код с обработкой %0, %1, %2 перестаёт работать личка. И не получается отрезать %+цифра при отправке сообщения в чат. Все Delete, которые я пробовал плачевно сказываются на работе чата. В исходнике я отметил места, где стоят Delete, которые не дают нормально работать личке.

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Shouldercannon Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Shouldercannon (статус: Посетитель)
Вопрос отправлен: 18 марта 2009, 14:09
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 19 марта 2009, 21:39; участников в обсуждении: 2.
min@y™

min@y™ (статус: Доктор наук), 18 марта 2009, 17:39 [#1]:

Объясни конкретнее, что ты хочешь. Пойми, людям неохота копаться в чужих исходниках. Скажи лучше, что тебя не устраивает в процедуре Delete(), а ещё лучше – что у тебя на входе и что ты хочешь иметь на выходе. И не надо заморачиваться и присылать проект целиком.

Например: "у меня есть строка '123456789', как удалить из неё 3 символа, начиная с символа '3', чтобы получилось '126789'?".
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Shouldercannon

Shouldercannon (статус: Посетитель), 19 марта 2009, 15:04 [#2]:

Проблема заключается в следующем.
Эта чать кода решает будет ли сообщение добавлено в Memo или нет:
if (to_ = nickname)or(from_ = nickname) then
К серверу я приконекчиваюсь с nickname=%0Nick
далее надо сделать чтобы переменная nickname стала просто Nick без %0
Тутже нашёл выход, сделать ещё одну переменную nickname2, которая и будет сравниваться.
min@y™

min@y™ (статус: Доктор наук), 19 марта 2009, 21:39 [#3]:

Ну и в чём проблема? Вот тестовая программа, в ней функция. Попробуй.

program p2535;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
// Функция для расшифровки конструкций типа %<цифры><имя>
// Результат функции - <имя>
// Номер после "%" возвращается в параметре Value   
function GetNick(const Source: string; var Value: Integer): string;
var
  sValue: string;
  Index: Integer;
begin
  Result:= '';
  sValue:= '';
  Index:= 2;
 
  // Берём цифры
  while Source[Index] in ['0'..'9'] do
    begin
      sValue:= sValue + Source[Index];
      Inc(Index);
    end;
 
  // Возвращаем номер после "%"
  if sValue <> ''
    then Value:= StrToInt(sValue)
    else Value:= -1;
 
  // Берём и возвращаем ник
  Result:= Copy(Source, Index, Length(Source));
end;
 
const
  Nick = '%11Nick';
  //Nick = '%0Nick';
 
var
  Value: Integer;
 
begin
  WriteLn(' Nick = ' + Nick);
  WriteLn(' GetNick(', Nick, ') = ', GetNick(Nick, Value));
  WriteLn(' Value = ', Value);
 
  ReadLn;
end.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:46
Выполнено за 0.02 сек.