Форум: "Основная";
Текущий архив: 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.036 c