Sorting/Rename files - подскажите!? - Сфера развлечений, разговоры о любви и сексе, отдых развлечения
Сфера развлечений на нашем сайте

Sorting/Rename files - подскажите!?

Sorting/Rename files - подскажите!?

Интернет казино     Онлайн игры     Купить DVD     Другие сайты

- Сабж звучит довольно глупо, но я в тупике. Есть много папок в каждой больше тысячи файлов, с именами вида 1.jpg, 2.jpg, 3.jpg, 100.jpg,....... 1000.jpg. Проблема заключается в том что винда их видит по порядку номерации(так как нужно), а вот тот же Арлес или ACDsee видит в следующем порядке 1.jpg, 10.jpg, 100.jpg, 101.jpg,...... 109.jpg, 11.jpg, 110.jpg и т.д. Т.е. без нулей впереди правельная последовательность теряется. Если пробовать переименовывать виндой то она ренеймит видом x(1).jpg, x(2).jpg, x(3).jpg, ..... что собственно ничего не меняет, другие же проги к примеру AutoRen изначально сортируют для себя как тот же Арлес, соответственно переименовать в правильном порядке не выходит Вот собственно и вопрос - подскажите прогу или как это всё переименовать!??

- В Windows Commander попробуй. Выдели файлы которые хочешь переименовать и CTRL-T.

- Дело в том что в WC, TC, FARe и т.п. сортировка идёт так же, т.е. 1, 10, 100... так что переименовать(добавить вперед "000") в правильной последовательности не представляется возможным. Нужна какаето софтина чтобы отобразила последовательность как винда (1, 2, 3, ... 100), и после чтобы она могла переименовать с видом 001, 002, 003 ... Не ужели никто не сталкивался с подобной проблемой!?? Подскажите, буду благодарен!

- А ты сделай в несколько приемов, в том же autoren скажем. Вот держи алгоритм: 1. По маске ?.* добавляешь слева 000 2. По маске ??.* добавляешь слева 00 3. По маске ???.* добавляешь слева же 0 4. Ну и все собственно.. Дальше переименовываешь уже как тебе надо.. Годится способ?

- imho такую софтину минут за 10 можно на чем угодно набацать...

- Kodek. Спасиб, хоть и геморный не много способ но сгодится, что-то я стормозил и сам до него не додумался, а ударился в поиск какой ни-ть софтины. Cyberxxx. То что на том же пхп можно за 10 мин. написать это и ежу понятно, вот только мне нужно было локально.

- Так я и говорю про локально. Берешь любой транлятор, что под рукой окажется и кодишь. В чем проблема-то? Лично я всегда для подобных дел пишу маленькие утилитки.

- ну так напиши и выложи, авось не одному человеку пригодится.. можешь продать за 10 баксов - я куплю. Думаю, топикстартер тоже купит и еще некоторые, которые с такой хуней мучаются..

- Нажми кнопку sort -> name а потом переименовывай

- Серьезно? Тебе 10wmz не жалко?

- случаи разные бывают порой люди готовы выложить деньги за всякую хуйню, которая им нужна в какой-то определенный момент времени, и не думают о последствиях. к слову о написать - я лучше ее сам выложу фор фри. кому надо будет - скачают. адрес дам в этот же топик. теперь главное - написать

- Вот, собственно, моя софтина: http://www.maturedesign.com/junk/REN000.exe В командной строке ей нужно передать путь к подкаталогу с файлами, например, так: REN000.exe C:/MyLovelyBabes/set001/ После этого, все файлы в подкаталоге C:/MyLovelyBabes/set001/ будут переименованы (имена будут дополнены нулями до 8 символов), т.е. 1.jpg превратиться в 00000001.jpg, 453.jpg превратиться в 00000453.jpg и т.д. P.S. Номер wmz дать?

- Ну вот.. даже спасибо никто не сказал...

- Спасибо! а на каком языке писал? можешь исходник выложить?

- Да без проблем Наслаждайся: Code: uses Dos, Strings; type PStringList = ^TStringList; TStringList = record next: PStringList; prev: PStringList; Text: String; end; TStringObj = object private Path: String; head: PStringList; StringList: PStringList; public procedure Init; procedure InsertStr(Text: String); procedure ParseDir; procedure RenameFiles; end; function AddZeros(s: String): String; begin if Length(s) < 12 then result := Dup_CI('0', 12 - Length(s)) + s else result := s; end; procedure TStringObj.Init; begin StringList := nil; end; procedure TStringObj.InsertStr(Text: String); var elem: PStringList; begin New(elem); if StringList = nil then head := elem else StringList^.next := elem; elem^.next := nil; elem^.prev := StringList; StringList := elem; StringList^.Text := Text; end; procedure TStringObj.RenameFiles; var elem: PStringList; f: File; begin elem := head; while elem <> nil do begin Assign(f, Path + elem^.Text); Rename(f, Path + AddZeros(elem^.Text)); elem := elem^.next; end; end; procedure TStringObj.ParseDir; var DirSearchRec: SearchRec; begin FindFirst(Path + '*.*', AnyFile, DirSearchRec); while DosError = 0 do begin if (DirSearchRec.Name <> '.') and (DirSearchRec.Name <> '..') and ((DirSearchRec.Attr and Directory) = 0) then begin InsertStr(DirSearchRec.Name); end; FindNext(DirSearchRec); end; end; var Files: TStringObj; begin Files.Init; if ParamCount = 1 then begin if (ParamStr(1) <> '\') then Files.Path := ParamStr(1) + '\' else Files.Path := ParamStr(1); Files.ParseDir; Files.RenameFiles; end else begin Writeln; Writeln('REN000 by MatureDesign.com'); Writeln(' Usage: REN000 <path>'); Writeln; end; end.

Платный хостинг     Создание и раскрутка сайтов     Увеличение члена