Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать цикл чтоб переименовать группу, файлов формата jpg 
:(
    Опции темы
Serhik_z
  Дата 9.4.2005, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 108
Регистрация: 4.12.2004

Репутация: нет
Всего: нет



Как сделать цикл чтоб переименовать группу файлов формата jpg
с разным названием файлов (01_55.jpg) (fan.jpg)
находящиеся в одной папке (picture)
в 001.jpg 002.jpg ... и т.д.
smile
PM MAIL   Вверх
сфе
Дата 9.4.2005, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 23.3.2005

Репутация: нет
Всего: нет



Код
Procedure ScanDir(Dir:string); 
var SearchRec:TSearchRec; F:File;
begin 
 if Dir<>'' then if Dir[length(Dir)]<>'\' then Dir:=Dir+'\';  
  if FindFirst(Dir+'*.*', faAnyFile, SearchRec)=0 then  
  repeat  
  if (SearchRec.name='.') or (SearchRec.name='..') then continue;  
  if (SearchRec.Attr and faDirectory)<>0 then  
  ScanDir(Dir+SearchRec.name) //we found Directory: "Dir+SearchRec.name"  
else  
  AssignFile(F,SearchRec.name);Reneme(F,'NewName') 
  until FindNext(SearchRec)<>0;  
 
 FindClose(SearchRec);  
  
end;


Это сообщение отредактировал(а) Alex - 9.4.2005, 09:27
PM MAIL   Вверх
Serhik_z
Дата 9.4.2005, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 108
Регистрация: 4.12.2004

Репутация: нет
Всего: нет



При компиляции выдается ошибка на Reneme (F,'NewName')
Подскажите, что сделать.

Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
  Procedure ScanDir(Dir:string);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.ScanDir(Dir: string);
var SearchRec:TSearchRec; F:File;
begin 
if Dir<>'' then if Dir[length(Dir)]<>'\' then Dir:=Dir+'\';
if FindFirst(Dir+'*.*', faAnyFile, SearchRec)=0 then 
repeat
if (SearchRec.name='.') or (SearchRec.name='..') then continue; 
if (SearchRec.Attr and faDirectory)<>0 then 
ScanDir(Dir+SearchRec.name) //we found Directory: "Dir+SearchRec.name" 
else 
AssignFile(F,SearchRec.name);
Reneme (F,'NewName')  // Ошибка
until FindNext(SearchRec)<>0;
FindClose(SearchRec);
end;

end.


smile
PM MAIL   Вверх
Poseidon
Дата 9.4.2005, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(Serhik_z @ 9.4.2005, 09:00)
Подскажите, что сделать.
RenAme

сфе допустил описку. А еще не забудь передать значение в Dir (в твоем коде этого нет) - каталог, где файлы. И еще. Если у тебя в этом каталоге еще и подкаталоги, в каторых ты не хочешь ничего переименовывать, то код нужно будет изменить.

Блин, еще кое что нашел. Приведенный код переименует все файлы. Если нужно только JPeg, то пиши
Код
if FindFirst(Dir+'*.jpg', faAnyFile, SearchRec)=0 then 
Вроде все.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Serhik_z
Дата 10.4.2005, 03:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 108
Регистрация: 4.12.2004

Репутация: нет
Всего: нет



Poseidon
Описку увидел
Код

//RenameFile - Renеme
  Rename(F,'NewName') until FindNext(SearchRec)<>0;

Подскажи как передать значение в Dir
Если можно пример.
smile
PM MAIL   Вверх
FRAGNATIC
Дата 10.4.2005, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



Цитата
Подскажи как передать значение в Dir
Если можно пример.
вызывай эту процедура например по нажатию кнопки так
Код

ScanDir('сюда вводи дир');


Это сообщение отредактировал(а) Girder - 10.4.2005, 17:48
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0715 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.