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

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

Относительный путь.. [D7, WinXP]


Страницы:   1 2

SveT ©   (2006-04-05 14:28:00) 

Здравствуйте!

Имея
DIR1 = c:\folder1
DIR2 = c:\folder1\folder2

как получить относительный путь к папке
DIR3 = \folder2

Спасибо


Loginov Dmitry   (2006-04-05 22:17:00) [1]

Как вариант:

ExtractRelativePath('c:\folder1\',  'c:\folder1\folder2');


SveT   (2006-04-05 17:09:00) [2]

Спасибо всем откликнувшимся на помощь.
Результат положительный.

Удачи!


SveT   (2006-04-05 17:01:00) [3]

! секундочку

Проверю пути ...


Плохиш   (2006-04-05 16:58:00) [4]


> SveT ©   (05.04.06 16:45) [18]

Раз уж ветку в "Начинаюшим" перенесли, предлагаю выполнить следующий код:

procedure TForm1.FormCreate(Sender: TObject);
var
 DIR1, DIR2, DIR3: String;
begin
 DIR1 := 'c:\folder1';
 DIR2 := 'c:\folder1\folder2';
 DIR3 := copy(DIR2, Length(DIR1)+1, Length(DIR2) - Length(DIR1));
 ShowMessage(DIR3);
end;


Юрий Зотов   (2006-04-05 16:54:00) [5]

Упс! Обман зрения - принял двойной апостроф за кавычки. Барышня, целую ручки, примите мои извинения. :o)

По сабжу - чему равны значения TarPath и BasePath при выполнении этого кода?


Плохиш   (2006-04-05 16:53:00) [6]


> Юрий Зотов ©   (05.04.06 16:50) [21]

Выделение показало, что там по два апострофа стоят ;-)


Юрий Зотов   (2006-04-05 16:50:00) [7]

> SveT ©   (05.04.06 16:45) [18]

Барышня, не обманывайте. Это тоже не скомпилируется. Приводите ТОЧНЫЙ код.

А заодно подумайте, является ли вообще строка '+BasePath+' подстрокой строки '+TarPath+'.


Плохиш   (2006-04-05 16:47:00) [8]


> SveT ©   (05.04.06 16:45) [18]

Хм, не понял, зачем прибавлять пустые строки к переменным?
Хотя на результат это не влияет :-)


Плохиш   (2006-04-05 16:45:00) [9]


> SveT ©   (05.04.06 16:28) [16]

Хм, думал, что после [11], отвечать на [10] уже не нужно. Извиняюсь.
"+1" нужно добавить к первому Length(DIR1)из [1].


SveT   (2006-04-05 16:45:00) [10]

просто Internet на одном компьютере, а Delphi на другом ;-(

var
  TarPath,BasePath:string;

...

procedure TARH.BitBtn1Click (Sender: TObject);
var
   s:string;
   OtPath :String;
begin

OtPath := copy(''+TarPath+'', Length(''+BasePath+''),Length(''+TarPath+'')- Length(''+BasePath+'')+1);
s:= OtPath;
Edit_path.Text:=s;

end;


Юрий Зотов   (2006-04-05 16:34:00) [11]

> SveT ©   (05.04.06 16:28) [16]

Барышня, не обманывайте. Это даже не скомпилируется. Приводите ТОЧНЫЙ код.


SveT   (2006-04-05 16:28:00) [12]

OtPath := copy(''TarPath'', Length(''BasePath''),Length('TarPath')- Length(''BasePath'')+1);
s:= OtPath;
Edit_path.Text:=s;


SveT   (2006-04-05 16:19:00) [13]

Ok
Сейчас


Юрий Зотов   (2006-04-05 16:16:00) [14]

> SveT ©   (05.04.06 16:12) [12]

В таких случаях обычно показывают код и приводят значения переменных. А без них обычно отвечают: ошибка в 17-й строке.


Плохиш   (2006-04-05 16:14:00) [15]


> SveT ©   (05.04.06 16:12) [12]
> Сделала, снова не вижу результат - в строке результата пусто

Одно из двух или ошибка в 17й строке или оптимизатор выкинул переменную как неиспользуемую.


SveT   (2006-04-05 16:12:00) [16]

Сделала, снова не вижу результат - в строке результата пусто


Юрий Зотов   (2006-04-05 15:59:00) [17]

> SveT ©   (05.04.06 15:46) [7]

В [7] - да, изложено нормально. А в [0] - нет. Потому что относительный путь - это путь к ЦЕЛЕВОМУ калогу относительно какого-то БАЗОВОГО каталога. То есть, чтобы найти относительный путь, нужно задать не ОДИН,  а ДВА каталога - а в [0] задан только ЦЕЛЕВОЙ и о БАЗОВОМ не сказано ни слова. Поэтому в первоначальном виде задача решения не имеет. Нельзя найти что-то относительно неизвестно чего.

А в постановке [7] все просто - удалите из Dir2 начальную подстроку длиной, равной длине Dir1 плюс 1 (см. Delete).


SveT   (2006-04-05 15:58:00) [18]

не сочтите за труд, укажите куда "Просто "+1" добавить нужно"

Спасибо


Плохиш   (2006-04-05 15:51:00) [19]


> Ответ был в [1]

Просто "+1" добавить нужно


Плохиш   (2006-04-05 15:49:00) [20]


> SveT ©   (05.04.06 15:46) [7]

Ответ был в [1]


Страницы:   1 2

Наверх

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