Всем добрый день!
Наверное, нельзя было поднимать старую тему, но здесь есть кусок кода, который у меня не совсем правильно работает. А именно, некоторые файлы переименовываются по несколько раз....
Вот немного изменённый код:
Код:
var
searchResult : TSearchRec;
begin
if FindFirst('*.*i*', faAnyFile, searchResult) = 0 then
begin
repeat
RenameFile(SearchResult.name,shiftre(SearchResult.name));
until FindNext(searchResult) <> 0;
FindClose(searchResult);
end;
end;
shiftre - это функция, которая просто перемещает последние 4 символа в начало (TestEnRu.dic --> EnRuTest.dic). В ней ошибок вроде бы нет, но всё же вот она:
Код:
function shiftre(inp:string):string;
var
te:string ;
begin
if inp[Length(inp)-3]='.'
then
te:=midstr(inp,Length(inp)-7,4)+leftstr(inp,Length(inp)-8)+rightstr(inp,4)
else if inp[Length(inp)-4]='.'
then
te:=midstr(inp,Length(inp)-8,4)+leftstr(inp,Length(inp)-9)+rightstr(inp,5);
result:=te;
end;
Вторая проверка для файлов с 4-ёх символьным расширением.
По поводу того, что код какой-то левый - ничего страшного, меня всё устраивает. Я не программист, и даже не начинающий, просто когда-то в школе был паскаль, вот и подумал, что будет проще поковыряться в прошлом, чтоб переименовать ровно 128 файлов. Хотя, думаю, я бы уже в ручную всё переименовал, но уже даже интересно стало, что не так.
Надеюсь, такой пост никого не обременяет писать в ответ.
Да, и заранее спасибо!