Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.036 c
1-1083915258
zep
2004-05-07 11:34
2004.05.23
Создание компонентов в RunTime


4-1080803647
melnikov ivan
2004-04-01 11:14
2004.05.23
Как пользоваться функцией VirtualQueryEx()?


14-1083733782
Dmitriy O.
2004-05-05 09:09
2004.05.23
Старость нужно уважать ? Или наоборот ?


14-1083139177
stone
2004-04-28 11:59
2004.05.23
Письмо в КП :))


8-1078224072
Ssergy
2004-03-02 13:41
2004.05.23
2D в 3D





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