Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизПереименование по маске Найти похожие ветки
← →
leonon © (2004-05-11 18:32) [0]Добрый день! Задача следующая - есть имя файла (например test.txt), есть маска файла (например r???.*), как красиво получить результирующее имя файла (rest.txt)? Может есть какая-то функция?
← →
WebErr © (2004-05-11 18:36) [1]Есть такой компонент TFileListBox, почитайте help по нему.
Вам понравиться - это и есть ваше "красиво".
← →
Mim1 © (2004-05-11 18:40) [2]Вот например
Procedure _Update(const ext:string);
Function AppExeName:string;
var
{$IF Defined(Linux)}
FileName: array[0..FILENAME_MAX] of Char;
{$IFEND}
{$IF Defined(MSWindows)}
FileName: array[0..MAX_PATH] of Char;
{$IFEND}
begin
SetString(Result, FileName,
GetModuleFileName(MainInstance, FileName, SizeOf(FileName)));
end;
var
sr: TSearchRec;
i : integer;
filearray:array of string;
fn:string;
begin
SetLength(filearray,0);
if FindFirst(ExtractFilePath(AppExeName)+"*"+ext, faAnyFile, sr) = 0 then
begin
repeat
i := length(filearray);
SetLength(filearray,i+1);
filearray[i] := sr.Name;
until FindNext(sr) <> 0;
FindClose(sr);
end;
for i:= low(filearray) to high(filearray) do
begin
fn := ChangeFileExt(filearray[i],"");
if FileExists(fn) then
begin
if FileExists(fn+".old") then
DeleteFile(fn+".old");
RenameFile(fn,fn+".old");
end;
RenameFile(filearray[i],fn);
end;
end;
Удалите все лишнее.
← →
leonon © (2004-05-11 18:41) [3]Укажите пожалуйста где именно (это метод, свойство) ?
← →
WebErr © (2004-05-11 18:43) [4]TFileListBox свойства Mask, FileName
← →
leonon © (2004-05-11 18:43) [5]Мне нужно без физического создания, переименования и удаления...
← →
Mim1 © (2004-05-11 18:44) [6][3] leonon © (11.05.04 18:41)
Не слушайте вы его, использовать для таких целей визуальный компонент верх глупости.
← →
leonon © (2004-05-11 18:45) [7]Дико извиняюсь, но как Mask, FileName их использовать? Это я уже знаю. Мне нужно переименовать по маске, а не выбирать...
← →
leonon © (2004-05-11 18:47) [8]:))) Согласен, тем более этот компонент не пригоден.
← →
leonon © (2004-05-12 09:11) [9]Так что, больше идей нет? :((
← →
panov © (2004-05-12 09:54) [10]>leonon © (12.05.04 09:11) [9]
Ответ есть в Mim1 © (11.05.04 18:40) [2]
Это функции FindFirst/FindNext/FindClose
← →
Fay © (2004-05-12 10:06) [11]2panov © (12.05.04 09:54) [10]
А чё не FormatDateTime/GetLastError?
← →
panov © (2004-05-12 10:08) [12]>leonon © (11.05.04 18:32)
>Fay © (12.05.04 10:06) [11]
Тогда непонятен вопрос автора.
Если надо работать со строкой, то при чем здесь имена файлов?
← →
panov © (2004-05-12 10:10) [13]Тогда вопрос автору - что делать вот с такой строкой:
test.23.04.2004.doc
и маской r???.*
← →
Fay © (2004-05-12 10:15) [14]2panov © (12.05.04 10:10) [13]
raise Exception.Create("Таких файлов не бывает!");
← →
panov © (2004-05-12 10:16) [15]>Fay © (12.05.04 10:15) [14]
Так ведь могут быть!-) Давно прошло время для 8+3...
← →
leonon © (2004-05-12 10:20) [16]Время то прошло, да вот надо бы... Мне нужно знать реальное имя файла без переименования физически, просто применить маску
← →
leonon © (2004-05-12 10:25) [17]Банальное переименование файла, беру Far, создаю файл test.23.04.2004.doc, копирую по F5 по маске r???.* и получаю
rest.23.04.2004.doc
← →
panov © (2004-05-12 10:46) [18]>leonon © (12.05.04 10:25) [17]
Вот-вот... "...создаю файл test.23.04.2004.doc, копирую по F5..."
Т.е. работаешь с именем существующего на диске файла.
Для такого варианта ответ есть.
А вот для обработки произвольной строки нужно писать соответствующую функцию, например:
← →
panov © (2004-05-12 10:52) [19]http://delphibase.endimus.ru/?action=viewfunc&topic=filenames&id=10522
← →
leonon © (2004-05-12 11:18) [20]Идею понял, большое спасибо :))
← →
Mim1 © (2004-05-12 11:20) [21]
> [19] panov © (12.05.04 10:52)
> http://delphibase.endimus.ru/?action=viewfunc&topic=filenames&id=10522
Не знаю как в других версиях но в delphi7 есть MatchesMask.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.033 c