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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2010, 14:22   #1
gamer123
Пользователь
 
Регистрация: 19.01.2008
Сообщений: 92
По умолчанию Обрезка строки

Здравствуйте. Нужно обрезать урлы типа http://site.ru/index.php?id=1 до http://site.ru/. Как это можно сделать?
gamer123 вне форума Ответить с цитированием
Старый 29.08.2010, 14:27   #2
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Можно пройтись в цикле до третьего "\" и запомнить какой это по счёту символ, а дальше воспользоваться функцией Copy
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 29.08.2010, 14:33   #3
gamer123
Пользователь
 
Регистрация: 19.01.2008
Сообщений: 92
По умолчанию

Цитата:
Сообщение от Marsel737 Посмотреть сообщение
Можно пройтись в цикле до третьего "\" и запомнить какой это по счёту символ, а дальше воспользоваться функцией Copy
for i:=0 to 3 do begin
ps:=pos('/',load);


сделал так, находит первый слеш и все
gamer123 вне форума Ответить с цитированием
Старый 29.08.2010, 15:43   #4
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
сделал так, находит первый слеш и все
Строка не меняется. Поэтому Pos будет находить только первый слеш.
Можно использовать такой вариант:
Код:
Procedure TForm1.Button1Click(Sender: TObject);
Var
I: Integer;
S: String;
begin
S:=Edit1.Text;
Delete(S,1,7);
For I:=0 To Length(S) Do
Begin
If Pos('/',S) <> 0 Then
Begin
Edit2.Text:='http://'+Copy(S,1,Pos('/',S));
End;
End;
End;
Но он не надёжный. Что бы было надёжно нужно сделать как писал Marsel737.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 29.08.2010, 16:07   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Но он не надёжный
а не надежен из-за того, что ссылка может начинаться с https://.
Код:
For I := 1 To Length(S) Do
Begin
 If S[I] = '/' Then Inc(N);
 If N = 3 Then J := I;
End;
Delete(S, J, Length(S) - J + 1);
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 30.08.2010, 08:22   #6
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
s:='http://site.ru/index.php?id=1';
 s1:=Copy(s,1,LastDelimiter('/',s)-1);

Последний раз редактировалось SERG1980; 30.08.2010 в 09:05.
SERG1980 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обрезка StringGrid artemavd Общие вопросы Delphi 6 28.07.2010 11:01
Обрезка фотографий doniyor Мультимедиа в Delphi 25 01.11.2009 13:15
обрезка фона родительского элемента Love_silense HTML и CSS 5 14.08.2009 13:01
Обрезка на принтере чеков epson Родион Общие вопросы Delphi 0 07.10.2008 18:53
Обрезка видео формата Mpeg Rembo Софт 9 27.04.2008 22:20