Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Переименование по маске   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.045 c
1-1083844792
Akni
2004-05-06 15:59
2004.05.23
Использование Delphi-DLL в VB


14-1083562041
Думкин
2004-05-03 09:27
2004.05.23
С днем рождения! 2 мая


6-1081075395
Mazer
2004-04-04 14:43
2004.05.23
IdHTTP - выделенное соединение...


3-1083325256
lockheed_man
2004-04-30 15:40
2004.05.23
Не все результаты SQL -запроса выводятся в гриде


8-1079092066
m2003
2004-03-12 14:47
2004.05.23
Работа с MP3