Renomear Vários Arquivos Dentro de Uma Pasta

Delphi

17/10/2018

Boa noite!!!

Tenho um dbgrid aonde eu filtro algumas vendas por data, e no outro dbgrid eu listo umas imagens que estão dentro de uma pasta, o que eu preciso.Renomear essas imagens que estão dentro da pasta para o código da venda(V_ID), eu fiz, mas renomeia só a primeira imagens as outras não.Como posso resolver.

Imagem dos Dbgrids Para Melhor Entendimento
https://uploaddeimagens.com.br/imagens/renomear-jpg

Código do Botão Para Renomear
procedure TForm1.Button4Click(Sender: TObject);
var 
  I : Integer; 
  NomeOld, NomeNew, Ext : string;
begin
  ClientDataSet1.First;
  while not ClientDataSet1.Eof do
  begin
    NomeOld := ClientDataSet1.FieldByName(''IMAGEM'').AsString;//Lê o Antigo Nome
    Ext := ExtractFileExt(NomeOld); //Extrai a Extenção
    NomeNew := ExtractFilePath(NomeOld); //Extrai o local do arquivo
    NomeNew := NomeNew + ClientDataSet2.FieldByName(''V_ID'').AsString +  ''.jpg'';//Monta o Novo Nome
    RenameFile(NomeOld,NomeNew);
    ClientDataSet1.Next;
  end;

end;
Bruno Henrique

Bruno Henrique

Curtidas 1

Melhor post

Natanael Ferreira

Natanael Ferreira

18/10/2018

Creio que você precisa percorrer o ClientDataSet2 também além do ClientDataSet1 para montar o novo nome:

Teste:

procedure TForm1.Button4Click(Sender: TObject);
var
  I : Integer; 
  NomeOld, NomeNew, Ext : string;
begin
  ClientDataSet1.First;
  ClientDataSet2.First; // Acrescentei esta linha
  while not ClientDataSet1.Eof do
  begin
    NomeOld := ClientDataSet1.FieldByName(''IMAGEM'').AsString;//Lê o Antigo Nome
    Ext := ExtractFileExt(NomeOld); //Extrai a Extenção
    NomeNew := ExtractFilePath(NomeOld); //Extrai o local do arquivo
    NomeNew := NomeNew + ClientDataSet2.FieldByName(''V_ID'').AsString +  ''.jpg'';//Monta o Novo Nome
    RenameFile(NomeOld,NomeNew);
    ClientDataSet1.Next;
    ClientDataSet2.Next; // Acrescentei esta linha
  end;
 
end;
GOSTEI 1

Mais Respostas

Bruno Henrique

Bruno Henrique

17/10/2018

Sem solução ainda! Grato se alguém puder ajudar!
GOSTEI 0
Bruno Henrique

Bruno Henrique

17/10/2018

Natanael, Obrigado, Deu certo, era isso mesmo!!!
GOSTEI 0
POSTAR