|
Вопрос # 2 535/ вопрос открыт / |
|
Здравствуйте, эксперты!
У меня возникли две проблемы с чатом. Когда подключаю код с обработкой %0, %1, %2 перестаёт работать личка. И не получается отрезать %+цифра при отправке сообщения в чат. Все Delete, которые я пробовал плачевно сказываются на работе чата. В исходнике я отметил места, где стоят Delete, которые не дают нормально работать личке.
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: Shouldercannon (статус: Посетитель)
Вопрос отправлен: 18 марта 2009, 14:09
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 19 марта 2009, 21:39; участников в обсуждении: 2.
|
min@y™ (статус: Доктор наук), 18 марта 2009, 17:39 [#1]:
Объясни конкретнее, что ты хочешь. Пойми, людям неохота копаться в чужих исходниках. Скажи лучше, что тебя не устраивает в процедуре Delete(), а ещё лучше – что у тебя на входе и что ты хочешь иметь на выходе. И не надо заморачиваться и присылать проект целиком.
Например: "у меня есть строка '123456789', как удалить из неё 3 символа, начиная с символа '3', чтобы получилось '126789'?".
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Shouldercannon (статус: Посетитель), 19 марта 2009, 15:04 [#2]:
Проблема заключается в следующем.
Эта чать кода решает будет ли сообщение добавлено в Memo или нет:
if (to_ = nickname)or(from_ = nickname) then
К серверу я приконекчиваюсь с nickname=%0Nick
далее надо сделать чтобы переменная nickname стала просто Nick без %0
Тутже нашёл выход, сделать ещё одну переменную nickname2, которая и будет сравниваться.
|
|
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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|