Главная страница
    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.044 c
14-1081674366
Тимур
2004-04-11 13:06
2004.05.02
Война и мир


3-1080727303
Goida
2004-03-31 14:01
2004.05.02
Проблемы с ADO...


4-1076189762
Midaw
2004-02-08 00:36
2004.05.02
Как нормально вставить фоновый рисунок в ListView ?


3-1081082712
SergP
2004-04-04 16:45
2004.05.02
integer --> datetime. Как это сделать в запросе?


1-1082103917
RH
2004-04-16 12:25
2004.05.02
Содержимое каталога





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский