Gravar no CD-RW
Estou tentando gravar no CD-ROM R/W usando o compactador WinRar e com o comando abaixo. Algumas vezes a gravação e bem sucedida mas a maiores das vezes não. Da a mensagem de CD cheio, e não está. Alguém saberia por que ? Estou usando Delphi-7 e Paradox.
ShellExecute(0,nil,´WinRar.exe´,´a -agDD-MMM-YY-HHMM E:\BKBDMACOM C:\BANCODADOS\*.*´,nil,sw_show);
ShellExecute(0,nil,´WinRar.exe´,´a -agDD-MMM-YY-HHMM E:\BKBDMACOM C:\BANCODADOS\*.*´,nil,sw_show);
Agonzaga
Curtidas 0
Respostas
Vinicius2k
17/02/2004
Colega,
Podem haver tabelas abertas durante a compactação... isso normalmente gera erro, mas também é possível que seja uma falha do inCD, DirectCD ou outro que vc esteja usando...
Dica: a rotina teria um desempenho melhor, e talvez livre de falhas se a compactação fosse efetuada no drive C e depois só o arquivo compactado pronto copiado para o CD...
T+
Podem haver tabelas abertas durante a compactação... isso normalmente gera erro, mas também é possível que seja uma falha do inCD, DirectCD ou outro que vc esteja usando...
Dica: a rotina teria um desempenho melhor, e talvez livre de falhas se a compactação fosse efetuada no drive C e depois só o arquivo compactado pronto copiado para o CD...
T+
GOSTEI 0
Agonzaga
17/02/2004
Vinicius2k.
Fecho todas as tabelas antes.
Fora do delphi o gravador esta funcinando Ok.
Já tentei compactar no C: e depois copiar para o CD utilizando o comando FileCopy ou CopyFile e não acontence nada, passa pelo comando e nada.
Fecho todas as tabelas antes.
Fora do delphi o gravador esta funcinando Ok.
Já tentei compactar no C: e depois copiar para o CD utilizando o comando FileCopy ou CopyFile e não acontence nada, passa pelo comando e nada.
GOSTEI 0
Gandalf.nho
17/02/2004
Já tentou usar um componente de compactação para isso em vez de um programa externo? Uma boa sugestão é o ZipMaster.
GOSTEI 0
Vinicius2k
17/02/2004
Já tentei compactar no C: e depois copiar para o CD utilizando o comando FileCopy ou CopyFile e não acontence nada, passa pelo comando e nada.
mas fazendo dessa forma você precisa aguardar a compactação terminar antes de fazer a cópia do arquivo, pq até então não existe arquivo ainda...
vc precisa criar um processo e aguardar que ele termine, para copiar... veja um exemplo de como criar um processo :
procedure TForm1.Button1Click(Sender: TObject); var StartupInfo: Tstartupinfo; ProcessInfo: TprocessInformation; begin FillChar(StartupInfo,sizeof(TStartupInfo),0); StartupInfo.cb:=sizeof(TStartupInfo); if CreateProcess(nil,pchar(´c:\windows\calc.exe´), nil, nil,false, normal_priority_class, nil,pchar(´c:\windows´), StartupInfo,ProcessInfo) then WaitForSingleObject(ProcessInfo.hprocess,infinite); winexec(pchar(´c:\windows\notepad.exe´),SW_SHOWNORMAL); end;
no exemplo acima a calculadora é chamada e a apliação aguarda até que ela seja fechada para continuar a execução da rotina, no exemplo, chamar o bloco de notas...
espero ter ajudado...
GOSTEI 0
Alexandremarcondes
17/02/2004
Estou tentando gravar no CD-ROM R/W usando o compactador WinRar e com o comando abaixo. Algumas vezes a gravação e bem sucedida mas a maiores das vezes não. Da a mensagem de CD cheio, e não está. Alguém saberia por que ? Estou usando Delphi-7 e Paradox.
Porque você não tenta gravar o CD diretamente do Delphi? Com o Nero instalado na máquina e usando o projeto que está na minha assinatura você tem mais controle sobre a gravação. No projeto temos exemplos de códigos de gravação de CDs de áudio, Vídeo CD, imagens de CD e estou trabalhando agora para lançar esta semana ou na do carnaval os exemplos para CD de dados ISO e UDF (que é o que o InCD usa).
GOSTEI 0