Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите, как вырезать часть строки до слеша?


Сергей ©   (2008-05-19 15:34:00) 

Есть путь к файлу (c:\vcli\kript_file\Uncript\MLS2008.05.19\), нужно вырезать часть строки до второго слеша справа чтобы получилось c:\vcli\kript_file\Uncript. Пути будут меняться. Если не сложно напишите код или ссылку. Спасибо.


Сергей   (2008-05-19 17:13:00) [1]

Спасибо всем, за помощь.


Werewolf-Prankster   (2008-05-19 15:53:00) [2]

Виноват, это как раз слева.
Попробуем еще раз )
var i,sl,tmp:integer; ulr1,url2:string //sl - счетчик слешей, url1,url2, где 1-й начальное значение пути, 2-й результат
sl:=0;
url1:=(путь);
for i:=length(url1 down to 1 do
begin
if url1[i]='/' then
 sl:=sl+1
if sl=2 then
 tmp:=i;
end; //узнаем номер символа в котором находится слеш
for i:=1 to tmp do
url2[i]:=url1[i];//обрезаем урл


Alarm   (2008-05-19 15:46:00) [3]

Сначала необходимо определиться со сторонами (право и лево). Из примера совсем не следует, что это "часть строки до второго слеша справа ".
А по существу поможет:
Copy(..., Pos(...), ...);


Werewolf-Prankster   (2008-05-19 15:43:00) [4]

var i,sl:integer; ulr1,url2:string //sl - счетчик слешей, url1,url2, где 1-й начальное значение пути, 2-й результат
sl:=0;
url1:=(путь);
for i:=1 to length(url1) do
 if sl<3 then
  begin
   url2[i]:=url1[i];
   if url1[i]:='/' then
    sl:=sl+1;
  end;

Теперь в переменной url2 у тебя находится нужный адресс.


Virgo_Style   (2008-05-19 15:41:00) [5]

ExtractFileDir( ExcludeTrailingBackslash( ...  ) );

Это если "я его слепила из того, что было". Оптимально в плане скорости написания, а не быстродействия :-) Иначе - считать слеши справа налево, найдя второй - обрезать все, что правее.


Наверх

Титульная страница Поиск, карта сайта Написать письмо