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

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

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2010, 13:52   #1
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию Вытащить ссылку

Суть такова получает dll мой текст от программы,ссылки такова содержание:
[_url]http://ya.ru[_/url] нужно убрать [_url]_[_/url] и передать дальше ссылку.
Подскажите как реализовать.
-=Virus=- вне форума Ответить с цитированием
Старый 09.09.2010, 19:55   #2
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

я правильно понимаю:
исходник: [_url]http://ya.ru[_/url]
результат: http://ya.ru
т.е. убрать то, что в квадратных скобках? и сам исходник находтися в массиве текста, или нет?
Если да, то несколько вариантов:
1. регулярные выражения
2. замена (это если только исзодник на входе)
3. поиск вхождений и выдирание из строки нужного (Pos, PosX, Copy)
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 09.09.2010, 20:51   #3
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

вот весь код:
Цитата:
if (dwID = 5) then //проверяем канал на сообщения
begin
//Получаем данные из канала
uSenderLogin := fReadText(bInBuffer, iReadOffset);//Имя отправителя
uSenderIP := fReadText(bInBuffer, iReadOffset);//IP-адрес отправителя
iSenderIcon := fReadInteger(bInBuffer, iReadOffset);//Иконка отправителя
uChannel := fReadText(bInBuffer, iReadOffset);/Канал где размещено сообщения
iMessageMode := fReadInteger(bInBuffer, iReadOffset);//Тип сообщения
uText := fReadText(bInBuffer, iReadOffset);//текст сообщения
if Form2.Edit1.Text=uChannel then //канал откуда брать ссылку

begin
Form1.Show;//открываем форму
Form1.listbox1.Items.add(uText);//добовляем текст
end;
end;
по идее нужно проверить евляется ли ссылкой,затем нужно вытащить ссылку без тега.

Последний раз редактировалось -=Virus=-; 09.09.2010 в 21:30.
-=Virus=- вне форума Ответить с цитированием
Старый 09.09.2010, 21:31   #4
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Цитата:
Сообщение от Mifody Посмотреть сообщение
я правильно понимаю:
исходник: [_url]http://ya.ru[_/url]
результат: http://ya.ru
т.е. убрать то, что в квадратных скобках? и сам исходник находтися в массиве текста, или нет?
Если да, то несколько вариантов:
1. регулярные выражения
2. замена (это если только исзодник на входе)
3. поиск вхождений и выдирание из строки нужного (Pos, PosX, Copy)
Если не сложно помоги с кодом а то уже голова пухнет.
-=Virus=- вне форума Ответить с цитированием
Старый 09.09.2010, 21:42   #5
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Код:
function CCopy(S, C1, C2: string): string;
begin
  if C1 <> '' then
    Delete(S, 1, Pos(C1, S) + Length(C1) - 1);
  if C2 <> '' then
    Delete(S, Pos(C2, S), Length(S));
  Result := S;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(CCopy('[_url]http://ya.ru[_/url]', '[_url]', '[_/url]'));
end;
W0LF вне форума Ответить с цитированием
Старый 09.09.2010, 22:43   #6
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

А как теперь проверить была ли она ссылкой?
-=Virus=- вне форума Ответить с цитированием
Старый 10.09.2010, 23:08   #7
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Код:
  s := '[_url]http://ya.ru[_/url]';
  if pos('http://',s)<>0 then
    ShowMessage('Это ссылка');
kangreon вне форума Ответить с цитированием
Старый 15.09.2010, 19:02   #8
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Я уже сделал так:

function CCopy(S, C1, C2: string): string;
begin
if C1 <> '' then
Delete(S, 1, Pos(C1, S) + Length(C1) - 1);
if C2 <> '' then
Delete(S, Pos(C2, S), Length(S));
Result := S;
end;


if uText= '[_url]'+CCopy(uText, '[_url]', '[_/url]')+'[_/url]' then
В итоге сравнивает текст обычный если же он не ссылка то нечего не происходит

Последний раз редактировалось -=Virus=-; 15.09.2010 в 19:08.
-=Virus=- вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вытащить ответы... NoHeart Общие вопросы Delphi 3 29.06.2010 03:26
Вытащить куки из Firefox Namolem Помощь студентам 0 15.06.2010 17:12
Вытащить ссылку... AquaKlaster Работа с сетью в Delphi 0 15.08.2009 12:27
Вытащить обновления из сборок Elm0 Свободное общение 12 12.11.2008 11:08
как вытащить форму Барби Помощь студентам 5 01.10.2008 09:02