rotina para salvar aquivos

29/04/2016

0

boa tarde galera !

preciso de uma rotina que leia a extensão do aquivo, selecionado e crie uma pasta com este nome para melhorar a organização de um sistema de bkp. segue o que tentei fazer porem só cai na no "else"

function TForm1.SalvarArq: string;
var
salvardtbase, salvarXML, Arq: string;
begin
salvardtbase := 'BaseDados' +'_'+ FormatDateTime('dd-mm-yyyy hh;mm', Now);
salvarXML := 'XML' +'_'+ FormatDateTime('dd-mm-yyyy hh;mm', Now);
Arq := ExtractFileExt('');

if Arq = '.FDB' then
begin
result := salvardtbase
end else
result := salvarXML;

end;

chamando assim

if not DirectoryExists(SalvarArq) then
ForceDirectories(SalvarArq);
Peterson

Peterson

Responder

Posts

29/04/2016

Mateus Ribeiro

Bom dia!

O problema é que você não está determinando a extensão do dito cujo:
Arq := ExtractFileExt('');


A variável ARQ está sempre SEM VALOR, por isso cai no else...
Responder

29/04/2016

Natanael Ferreira

Altere sua função recebendo o arquivo como parâmetro:

function TForm1.SalvarArq(Arquivo: string): string;
var
  salvardtbase, salvarXML, Arq: string;
begin
  salvardtbase := 'BaseDados' + '_' + FormatDateTime('dd-mm-yyyy hh;mm', Now);
  salvarXML := 'XML' + '_' + FormatDateTime('dd-mm-yyyy hh;mm', Now);

  Arq := ExtractFileExt(Arquivo);

  if UpperCase(Arq) = '.FDB' then
    result := salvardtbase
  else
    result := salvarXML;
end;


Acrescente um OpenDialog e chame a função assim:

var
  Arquivo, TipoPasta, CaminhoCompleto: string;
begin
  if OpenDialog1.Execute then
  begin
    Arquivo := OpenDialog1.FileName;
    TipoPasta := SalvarArq(Arquivo);
    CaminhoCompleto := ExtractFilePath(Arquivo) + TipoPasta;

    if not DirectoryExists(CaminhoCompleto) then
      ForceDirectories(CaminhoCompleto);
  end;
end;
Responder

02/05/2016

Peterson

ola essa foi a forma que consegui, obrigado pelo help, afinal foi tiquim de um e tiquin de outro.

function TForm1.SalvarArq(Origem, Destino: string): string;
var
      Arq, Copia : string;
begin
      Arq     := ExtractFileExt(Origem);
      Copia   := copy(Arq,pos('.',Arq)+1,length(Arq));      // para não copiar o ".", SOMENTE EXTENSAO DO ARQUIVO
      Result  := Destino + edtNomeClie.Text +'\'+ Copia  +'_'+ FormatDateTime('dd-mm-yyyy hh;mm', Now)+ '\';

      if not DirectoryExists(Result) then
      ForceDirectories(Result);
 end;

// CHAMANDO A FUNÇÃO 

Caminho := SalvarArq(edtLocaldoArquivo.Text, edtSalvarArquivo.Text);

//Onclick

Memobkp.Lines.Add('Backup salvo em ' + '- ' + caminho + edtNomedoArquivo.Text);

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar