Показать сообщение отдельно
  #12  
Старый 21.09.2009, 19:18
varied varied вне форума
Прохожий
 
Регистрация: 21.09.2009
Сообщения: 1
Репутация: 10
Радость

Всем добрый день!

Наверное, нельзя было поднимать старую тему, но здесь есть кусок кода, который у меня не совсем правильно работает. А именно, некоторые файлы переименовываются по несколько раз....

Вот немного изменённый код:

Код:
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 файлов. Хотя, думаю, я бы уже в ручную всё переименовал, но уже даже интересно стало, что не так.

Надеюсь, такой пост никого не обременяет писать в ответ.

Да, и заранее спасибо!
Ответить с цитированием