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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2008, 17:26   #1
-HunteR-
Форумчанин
 
Аватар для -HunteR-
 
Регистрация: 04.11.2007
Сообщений: 117
Сообщение Отсечение нужного кода

Я сделал клиента и сервера на TServerSocket & TClientSocket, но не в этом дело(я о том, что не надо тему переносить в раздел про сетевое программирование):
Клиент шлет серверу текст, например:"привет*мой_ник*как_дела?"

Вопрос: Как в Edit1 записать "привет", тоесть текст, который идет до первой звездочки, в Edit2 - текст, который после перовой звездочки, а в Edit3 - текст, который после второй звездочки???

Вопрос2: Можно ли наоборот, отсекать вначале "как_дела", как например если есть адрес файла: "C:\Folder\Folder\file.exe", как мне отсечь только file.exe и записать его в один из Edit???
Перед тем, как выложить код, я его всегда проверяю.
Если помог - тыкни на на весы слева, под аватарой.
-HunteR- вне форума Ответить с цитированием
Старый 24.06.2008, 20:34   #2
Makarov
Форумчанин
 
Аватар для Makarov
 
Регистрация: 03.01.2008
Сообщений: 102
По умолчанию

Вопрос 1:сообщение клиента серверу - это прока и рассматривайте ее как массив символов. То есть по цикл проверяйте посимвольно, пока не встретится символ '*'. Считайте количество символов до звездочки и разбивайте полученную строку на 3 строки.
Теория без практики мертва и бесплодна, практика без теории невозможна и пагубна.
Makarov вне форума Ответить с цитированием
Старый 25.06.2008, 10:36   #3
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Можно использовать функцию Pos(p,s:string):byte, которая ищет в строке s подстроку p и возвращает номер первого символа строки s, с которого начинается строка p или 0,если строка p не была найдена. Тогда вашу разбивку строки на три можно организовать так (Delphi):
Код:
s:= 'привет*мой_ник*как_дела?';// ваша строка
 x:= Pos('*',s); // находим первую звездочку
 Edit1.Text:= Copy(s,1,x-1); // все, что до нее, копируем в Edit1 
 Delete(s,1,x);// удаляем из строки то, что скопировали + сама звездочка 
 x:= Pos('*',s);// вновь ищем '*', но находим уже ту, что была второй
 Edit2.Text:= Copy(s,1,x-1);// опять копируем
 Delete(s,1,x); // удаляем 
 Edit3.Text:= s;// в третий Edit вставляем то, что осталось
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 25.06.2008, 13:21   #4
-HunteR-
Форумчанин
 
Аватар для -HunteR-
 
Регистрация: 04.11.2007
Сообщений: 117
По умолчанию

-=<[Evklidd]>=-
Вот это как раз и нужно было!!! Спасибо!!
Перед тем, как выложить код, я его всегда проверяю.
Если помог - тыкни на на весы слева, под аватарой.
-HunteR- вне форума Ответить с цитированием
Старый 25.06.2008, 15:04   #5
-HunteR-
Форумчанин
 
Аватар для -HunteR-
 
Регистрация: 04.11.2007
Сообщений: 117
По умолчанию

А второй вопрос, никто не знает???
Перед тем, как выложить код, я его всегда проверяю.
Если помог - тыкни на на весы слева, под аватарой.
-HunteR- вне форума Ответить с цитированием
Старый 25.06.2008, 15:29   #6
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Ну почему же, знаем, можно так file.exe отсечь:
Код:
var
 s, s1, s2: string;
 k: integer;
begin
 s:= 'C:\Folder\Folder\file.exe';
 for k:= Length(s) downto 1 do
  s1:= s1 + s[k]; // переворачиваем строку
 k:= Pos('\',s1);// находим первый слэш
 s2:= Copy(s1,1,k-1);// копируем то, что до него
 s1:= '';// освобождаем вспомогательную строку
 for k:= Length(s2) downto 1 do
  s1:= s1 + s2[k];// обратно переворачиваем
 Edit1.Text:= s1;// вывод в Edit
end;
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 25.06.2008, 16:16   #7
-HunteR-
Форумчанин
 
Аватар для -HunteR-
 
Регистрация: 04.11.2007
Сообщений: 117
По умолчанию

Большре спасибо, -=<[Evklidd]>=-
Перед тем, как выложить код, я его всегда проверяю.
Если помог - тыкни на на весы слева, под аватарой.
-HunteR- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача Делфи - поиск нужного и замена Katovski Помощь студентам 8 30.05.2008 21:28
отсечение области окна нестандартной формы Makcydrl Win Api 3 07.05.2008 01:36
действие при выборе нужного <option> badfilin JavaScript, Ajax 2 16.04.2008 23:59
Как из ImageList получить HBITMAP нужного мне bitmap. reiserfs Win Api 6 12.11.2007 21:13
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51