Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

Как извлечь имя файла?   Найти похожие ветки 

 
Well   (2004-04-16 10:02) [0]

Существует ли функция извлечения из полного имени файла имя файла без диска?
Тоесть из C:/DIR1/DIR2/file.ext получить   DIR1/DIR2/file.ext


 
Reindeer Moss Eater ©   (2004-04-16 10:03) [1]

Функция Pos функция Copy


 
Well   (2004-04-16 10:10) [2]

Нет это я незнаю. Мне нужна такая что бы сама все делала!
Тоесть imyabezdiska := udalitdisk(imyasdiskom)
Ну вы можете помочь?


 
Reindeer Moss Eater ©   (2004-04-16 10:13) [3]

Ну так и напиши такую функцию один раз и пользуйся всю жизнь.
А потом передай в наследство детям.


 
Well   (2004-04-16 10:15) [4]

Предыдущий пост не мой. Понимаю, чувство юмора есть у всех...
Я имел ввиду не операции со строками, а стандартные функции типа ExtractFileDir, ExtractFileName, ExtractFileDrive..


 
Reindeer Moss Eater ©   (2004-04-16 10:16) [5]

И что именно ты имел ввиду упоминая эти функции?
То, как переделать их реализацию и заставить возвращать то, что ты хочешь?


 
BlackTr   (2004-04-16 10:17) [6]

ExtractRelativePath("C:/DIR1/DIR2/file.ext","C:/DIR1/DIR2/file.ext")


 
Reindeer Moss Eater ©   (2004-04-16 10:25) [7]

Тогда уж
ExtractRelativePath(ExtractFileDrive(ParamStr(0)),ParamStr(0))


 
Well   (2004-04-16 10:37) [8]

Да, вот это самое и есть!
Спасибо!!!


 
Locker   (2004-04-16 10:43) [9]

type
 TPartType = (ptDisk, ptPath, ptName, ptExt);
 TPartSet = set of TPartType;

function ExtractPartial(a_PartSet: TPartSet; a_sFullName: string: string;
var
 iPos: integer;
begin
 iPos := Pos("\", a_sFullName);
 if (ptDisk in a_PartSet) then
   Result := Copy(a_sFullName, 1, iPos);
 Delete(a_sFullName, 1, iPos);
 iPos := Pos(ExtractFileName(a_sFullName), a_sFullName) - 1;
 if (ptPath in a_PartSet) then
   Result := Result + Copy(a_sFullName, 1, iPos);
 Delete(a_sFullName, 1, iPos);
 iPos := Pos(ExtractFileExt(a_sFullName), a_sFullName) - 1;
 if (ptName in a_PartSet) then
   Result := Result + Copy(a_sFullName, 1, iPos);
 Delete(a_sFullName, 1, iPos);
 if (ptExt in a_PartSet) then
   Result := Result + a_sFullName;
end;

Что-то на подобие этого? Прошу прощения, если где-то что-то не так: просто написал, не проверяя.


 
han_malign ©   (2004-04-16 10:50) [10]

>iPos := Pos("\", a_sFullName);
> if (ptDisk in a_PartSet) then
>   Result := Copy(a_sFullName, 1, iPos);

\\?\C:\...
\\server\shareName\...


 
Locker   (2004-04-16 11:15) [11]

2 han_malign
 В вопросе явно было указано "без диска"; никакого упоминания о сетевом окружении не было.
 Не нравится - перепишите...

Хотя, наверное, проще ткнуть кого-то носом в ошибку, чем добавить:
 iPos := Pos("\\", a_sFUllName);
 if (iPos = 1) then
 begin
   Delete(a_sFullName, 1, 2);
   iPos := Pos("\", a_sFullName);
   Result := "\\" + Copy(a_sFullName, iPos);
   Delete(a_sFullName, iPos);
   iPos := Pos(":", a_sFullName);
   if (iPos <> 0) then
   begin
     Result := Result + Copy(a_sFullName, iPos + 1);
     Delete(a_sFullName, iPos + 1);
   end;
 end
 else
 ...

P.S. Я сегодня злой... очень!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.038 c
6-1078844585
jcrush
2004-03-09 18:03
2004.05.02
IdSMTPServer отправка минуя сервер


3-1080814223
wer
2004-04-01 14:10
2004.05.02
поиск


14-1081411081
[lamer]Barmaglot
2004-04-08 11:58
2004.05.02
Мультихагрузочная система...


14-1081422644
Oksana
2004-04-08 15:10
2004.05.02
Люди, дайте совет


1-1081882612
Влад Сташневский
2004-04-13 22:56
2004.05.02
Как присвоить один StringList другому





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский