Descompactar Arquivos em Delphi com o caminho em um edit + nome do arquivo
Descompactar Arquivos em Delphi com o caminho em um edit + nome do arquivo
Boa tarde.
Gostaria de tirar uma dúvida.
Tenho o seguinte comando que realiza a descompactação de um arquivo.
WinExec(PChar(''C:\Arquivos de programas\WinRAR\WinRAR.exe a C:\Teste.rar C:\Teste.txt''),SW_Normal);
Gostaria de passar o caminho por edit e fazer com que ele assumisse o caminho por edit, já tentei isso
WinExec(PChar(Caminho_WinRar + ''a'' + Arq1Descompactar + NomeArq1Descompatado),SW_Normal);
mas não funciona.
Alguma dica?
Boa tarde.
Gostaria de tirar uma dúvida.
Tenho o seguinte comando que realiza a descompactação de um arquivo.
WinExec(PChar(''C:\Arquivos de programas\WinRAR\WinRAR.exe a C:\Teste.rar C:\Teste.txt''),SW_Normal);
Gostaria de passar o caminho por edit e fazer com que ele assumisse o caminho por edit, já tentei isso
WinExec(PChar(Caminho_WinRar + ''a'' + Arq1Descompactar + NomeArq1Descompatado),SW_Normal);
mas não funciona.
Alguma dica?
Fábio Sela
Curtidas 0
Respostas
Alisson Santos
24/10/2012
Amigo voce ao invés de colocar todo código mostrando o caminho como vês, dentro do parênteses so colocar o nome do edil.
Assim quando ele for salvar ele verifica o caminho do edil.
Assim quando ele for salvar ele verifica o caminho do edil.
GOSTEI 0
Jurandi Frade
24/10/2012
1o: se Caminho_Winrar é uma variavel string, certifique-se de ter atribuido a ela o conteúdo de seu edit.
2o: verifique se os espaços necessários entre cada variavel estão sendo assinalados. No código abaixo isso não está acontecendo. Por exemplo ''a'' deveria ser '' a '' e entre o arquivo origem e arquivo destino tbm deve existir um espaço na instrução.
Resumindo o que está abaixo
WinExec(PChar(Caminho_WinRar + ''a'' + Arq1Descompactar + NomeArq1Descompatado),SW_Normal);
deveria ser
WinExec(PChar(Caminho_WinRar + '' a '' + Arq1Descompactar + '' '' + NomeArq1Descompatado),SW_Normal);
Sds,
2o: verifique se os espaços necessários entre cada variavel estão sendo assinalados. No código abaixo isso não está acontecendo. Por exemplo ''a'' deveria ser '' a '' e entre o arquivo origem e arquivo destino tbm deve existir um espaço na instrução.
Resumindo o que está abaixo
WinExec(PChar(Caminho_WinRar + ''a'' + Arq1Descompactar + NomeArq1Descompatado),SW_Normal);
deveria ser
WinExec(PChar(Caminho_WinRar + '' a '' + Arq1Descompactar + '' '' + NomeArq1Descompatado),SW_Normal);
Sds,
GOSTEI 0
Claudia Nogueira
24/10/2012
Primeiro você tem que declarar uma variável do tipo pChar. Depois atribuir o valor e depois passar essa variável no WinExec.
Se for Delphi 7 ou inferior a variável é do tipo pChar, se for superior o tipo é pAnsiChar.
Se for Delphi 7 ou inferior a variável é do tipo pChar, se for superior o tipo é pAnsiChar.
Var sComando : pChar; begin sComando := pChar(EdtCaminhoWinRar.Text + ' a ' + EdtArquivoRar.Text + ' ' + EdtTxt.Text); WinExec(sComando,SW_Normal);; end;
GOSTEI 0
Fábio Sela
24/10/2012
Bom dia.
Aparece uma mensagem de Erro:
Operacao Desconhecida ""
Ai no Winrar aparece a mensagem
! C:\Tasy\Versao2\expwheb.rar: Não foi possível abrir Versão
! O sistema não pode encontrar o arquivo especificado.
! C:\Tasy\Versao2\expwheb.rar: Não foi possível abrir 2.2.1173.rar
! O sistema não pode encontrar o arquivo especificado.
! C:\Tasy\Versao2\expwheb.rar: Não foi possível abrir C:\Tasy\Versao2\expwheb.dmp
! O sistema não pode encontrar o arquivo especificado.
Aparece uma mensagem de Erro:
Operacao Desconhecida ""
Ai no Winrar aparece a mensagem
! C:\Tasy\Versao2\expwheb.rar: Não foi possível abrir Versão
! O sistema não pode encontrar o arquivo especificado.
! C:\Tasy\Versao2\expwheb.rar: Não foi possível abrir 2.2.1173.rar
! O sistema não pode encontrar o arquivo especificado.
! C:\Tasy\Versao2\expwheb.rar: Não foi possível abrir C:\Tasy\Versao2\expwheb.dmp
! O sistema não pode encontrar o arquivo especificado.
GOSTEI 0
Claudia Nogueira
24/10/2012
Eu só tinha copiado e colado seu código e explicado a questão da variável, mas tem um erro de digitação mesmo.
Pra descompactar é x no lugar do a:
E o EdtTxt.Text é pra ter o caminho onde será descompactado o arquivo.
Pra descompactar é x no lugar do a:
Var sComando : pChar; begin sComando := pChar(EdtCaminhoWinRar.Text + ' X ' + EdtArquivoRar.Text + ' ' + EdtTxt.Text); WinExec(sComando,SW_Normal);; end;
E o EdtTxt.Text é pra ter o caminho onde será descompactado o arquivo.
Bom dia.
Aparece uma mensagem de Erro:
Operacao Desconhecida ""
Ai no Winrar aparece a mensagem
! C:\Tasy\Versao2\expwheb.rar: Não foi possível abrir Versão
! O sistema não pode encontrar o arquivo especificado.
! C:\Tasy\Versao2\expwheb.rar: Não foi possível abrir 2.2.1173.rar
! O sistema não pode encontrar o arquivo especificado.
! C:\Tasy\Versao2\expwheb.rar: Não foi possível abrir C:\Tasy\Versao2\expwheb.dmp
! O sistema não pode encontrar o arquivo especificado.
Aparece uma mensagem de Erro:
Operacao Desconhecida ""
Ai no Winrar aparece a mensagem
! C:\Tasy\Versao2\expwheb.rar: Não foi possível abrir Versão
! O sistema não pode encontrar o arquivo especificado.
! C:\Tasy\Versao2\expwheb.rar: Não foi possível abrir 2.2.1173.rar
! O sistema não pode encontrar o arquivo especificado.
! C:\Tasy\Versao2\expwheb.rar: Não foi possível abrir C:\Tasy\Versao2\expwheb.dmp
! O sistema não pode encontrar o arquivo especificado.
GOSTEI 0
Fábio Sela
24/10/2012
Mesmo erro.
GOSTEI 0
Claudia Nogueira
24/10/2012
Qual o conteúdo dos txts? Antes de responder dessa última vez eu testei. Compactei um arquivo e depois testei com esse código e descompactou corretamente.
Mesmo erro.
GOSTEI 0
Fábio Sela
24/10/2012
o problema é que não é txt, é um arquivo dump (extensão de uso em banco de dados).
nome.dmp
nome.dmp
GOSTEI 0
Claudia Nogueira
24/10/2012
Você não precisa passar o nome e a extensão do arquivo que será descompactado, mas sim somente a pasta que será descompactado. Exemplo:
Var sComando : pChar; begin sComando := pChar(EdtCaminhoWinRar.Text + ' X ' + EdtArquivoRar.Text + ' C:\'); WinExec(sComando,SW_Normal);; end;
o problema é que não é txt, é um arquivo dump (extensão de uso em banco de dados).
nome.dmp
nome.dmp
GOSTEI 0
Francisco Costa
24/10/2012
Fiz o teste e assim não funciona e nem aparece erro:
Var
sComando : pAnsiChar;
begin
sComando := pAnsiChar(EdtCaminhoWinRar.Text + ' X ' + EdtArquivoRar.Text + EdtTxt.Text);
WinExec(sComando,SW_Normal);
end;
Mas assim funciona:
WinExec(pAnsiChar('C:\Arquivos de programas\WinRAR\WinRAR.exe e C:\ProCode.rar C:\'),SW_Normal)
o que eu fiz de errado?
Var
sComando : pAnsiChar;
begin
sComando := pAnsiChar(EdtCaminhoWinRar.Text + ' X ' + EdtArquivoRar.Text + EdtTxt.Text);
WinExec(sComando,SW_Normal);
end;
Mas assim funciona:
WinExec(pAnsiChar('C:\Arquivos de programas\WinRAR\WinRAR.exe e C:\ProCode.rar C:\'),SW_Normal)
o que eu fiz de errado?
GOSTEI 0
Fábio Sela
24/10/2012
Testei aqui e também não consegui achar o erro.
GOSTEI 0