Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-09-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Problemas con el ZIP Y EL UNZIP para backups

Saludos amigos, lo que sucede es que tengo este codigo, y no me funciona, antes si, no se que le movio mi amigo y no me comprimie el backup de mi bd...utilizo el unzip.exe y zip.exe, este es el codigo que tengo:

Ojo: la ubicación de mi aplicacion es la siguiente:

C:\Archivos de programa\Giros

dentro de Giros esta la carpeta de Backup fotosclientes y Backupbd, se que antes me generaba el mismo error y se que es por un espacio, pero no recuerdo en que parte va.

Boton de Comprimir:

Código Delphi [-]
procedure TfrmBackup.ComprimirClick(Sender: TObject);
begin
FileRun1.Directory:=ExtractFilePath(Application.ExeName);
FileRun1.FileName:='zip.exe';
FileRun1.Parameters:=ExtractFilePath(Application.ExeName)+
 'Backupbd\'+Edit1.Text+'.zip '+ExtractFilePath(Application.ExeName)+'bd\*.*';
FileRun1.Execute;
end;

Boton descomprimir

Código Delphi [-]
procedure TfrmBackup.DescomprimirClick(Sender: TObject);
begin
opdAbrir.InitialDir := ExtractFilePath(Application.ExeName)+'Backupbd';
if (opdAbrir.Execute)then
begin
FileRun1.Directory := ExtractFilePath(Application.ExeName);
FileRun1.FileName := 'unzip.exe';
FileRun1.Parameters := opdAbrir.FileName+' -d C:\';
FileRun1.Execute;

si alguien sabe el error por favor espero colaboración.----Gracias por su tiempo prestado.

Última edición por dec fecha: 23-09-2008 a las 06:06:03.
Responder Con Cita
  #2  
Antiguo 23-09-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No te doy una respuesta, pero, yo de ti echaría un vistazo a los componentes TurboPower Abbrevia, puesto que te permiten comprimir y descomprimir archivos (también en formato Zip) de una forma bastante sencilla y sin depender de ningún programa externo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 23-09-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No podemos asegurar mucho sin saber qué es y qué hace FileRun1, pero por lo que dices del espacio, es posible que el problema esté en FileRun1.Parameters. Fíjate que el valor que le pasas es:

Código:
C:\Archivos de programa\Giros\Backupbd\noseque.zip C:\Archivos de programa\Giros\bd\*.*
Si esto es algo que se traduce en la llamada a un ejecutable externo, tal como zip.exe, y sus parámetros, nota que los espacios que existen en Archivos de programa, provocan que los parámetros sean
  • C:\Archivos
  • de
  • programa\Giros\Backupbd\noseque.zip
  • C:\Archivos
  • de
  • programa\Giros\bd\*.*

en lugar de los dos que esperarías:
  • C:\Archivos de programa\Giros\Backupbd\noseque.zip
  • C:\Archivos de programa\Giros\bd\*.*

Si tal es la situación entonces tendrías que encerrar cada parámetro entre comillas " para que la llamada al ejecutable quede así:

Código:
"C:\Archivos de programa\Giros\Backupbd\noseque.zip" "C:\Archivos de programa\Giros\bd\*.*"
// Saludos
Responder Con Cita
  #4  
Antiguo 23-09-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Hola dec, si se que existen componentes mas sencillos, pero el hecho es que ya me habia funcionado todo, y no se que sibalos le borro mi amigo o que le hizo y no me funciona, y es una aplicación comercial, y nos toca entregarla hoy a las 6:30 am, entiendes, asi que no se otro metodo ni utilizar componentes para hacer el backuo, asi que me toca rectificar y encontrar el error...Gracias
Responder Con Cita
  #5  
Antiguo 23-09-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Saludos Roman, no se que tan viable sea escribir el parametro entre ", ya que me generaria error.Gracias por tu respuesta.
Responder Con Cita
  #6  
Antiguo 23-09-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Es la forma en que funciona Windows, así que es bastante viable. Prueba a hacerlo manualmente y verás como las " no sólo son deseables sino imperativas.
Pero, como dije antes, depende de lo que haga exactamente FileRun1.

// Saludos
Responder Con Cita
  #7  
Antiguo 23-09-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Código Delphi [-]
FileRun1.Parameters :=
  '"' + ExtractFilePath(Application.ExeName) + 'Backupbd\' + Edit1.Text + '.zip" "' +
  ExtractFilePath(Application.ExeName) + 'bd\*.*"';

// Saludos
Responder Con Cita
  #8  
Antiguo 23-09-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Diosssssssssss esto me esta matandooo haaaa mi amigo es un destructor, no roman no me salio....mira como tengo el codigo:


Botón Comprimir

Código Delphi [-]
procedure TfrmBackup.ComprimirClick(Sender: TObject);
begin
FileRun1.Directory:=ExtractFilePath(Application.ExeName);
FileRun1.FileName:='zip.exe';
FileRun1.Parameters:='"' + ExtractFilePath(Application.ExeName) + 
 'Backupbd\' + Edit1.Text+'.zip" "' + ExtractFilePath(Application.ExeName) + 'bd\*.*"';
FileRun1.Execute;
end;


Botón descomprimir

Código Delphi [-]
procedure TfrmBackup.DescomprimirClick(Sender: TObject);
begin
opdAbrir.InitialDir := ExtractFilePath(Application.ExeName)+'Backupbd';
if (opdAbrir.Execute)then
begin
FileRun1.Directory := ExtractFilePath(Application.ExeName);
FileRun1.FileName := 'unzip.exe';
FileRun1.Parameters := opdAbrir.FileName+' -d C:\';
FileRun1.Execute;

end;
end;


y aun no asi me sale, pero en cuanto al FileRun1, esta perfecto por que no lo movieron para nada, se que es codigo, y es la parte de comprimir...por que no me comprime ahora...haaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Responder Con Cita
  #9  
Antiguo 23-09-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

De todas formas, ¿no te retorna "FileRun" ningún error ni nada? Es que en otro momento, si llega a "fallar" por otro motivo... no sé, se me hace raro. Deberías poder obtener algún tipo de error o excepción, ¿no?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 23-09-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
No dec, nada no me envia ningun mensaje de error ni de excepción.....y lo peor de todo es que me funcionaba....Haaaaa que piedraa brother...ya casi es la 1 y aqui arreglando esto pa llevarlo a las 6:30 am....de hoy...juasss...
Responder Con Cita
  #11  
Antiguo 23-09-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Se me hace complicado ayudarte... creo que debe ser algo "tonto", pero, que, se nos pasa por alto. Pero tú estás a los mandos, por decirlo de algún modo. ¿Comprobaste que no hay procesos de los programas "zip" y "unzip" corriendo? Es posible que eso impida un buen funcionamiento de los mismos. En cualquier caso, insisto con los TurboPower Abbrevia: creo que ya habráis terminado (hay ejemplos de uso muy sencillos) y creo también que son una solución más elegante. Pero es mi opinión.

PD. Por si te sirve de algo aquí son las 7:53 de la mañana. Tienes suerte de estar allí.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #12  
Antiguo 23-09-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Casualmente tengo aquí un zip.exe y he hecho esta prueba:

Código Delphi [-]
uses ShellApi;

function DQuotedString(S: String): String;
begin
  Result := '"' + S + '"';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Parameters: String;

begin
  Parameters :=
    DQuotedString('c:\Documents and Settings\roman\Mis documentos\noseque.zip') +
    ' ' +
    DQuotedString('C:\Documents and Settings\roman\Mis documentos\Trabajo\cdsview\*.*');

  ShowMessage(Parameters);
  ShellExecute(Handle, 'open', 'zip.exe', PChar(Parameters), nil, SW_SHOW);
end;

que funciona bien. Es decir, lo mismo que te digo con las comillas dobles pero más ordenado y usando ShellExecute.

Puedes intentar cambiando FileRun por ShellExecute. Antes puedes probar poner entre comillas dobles tambien a FileRun1.Directory, pues también tiene espacios.

¿De dónde sale FileRun? ¿Es un componente hecho por ustedes?

// Saludos
Responder Con Cita
  #13  
Antiguo 23-09-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 17
BuRtOn Va por buen camino
Es un action list, ---> Standard Action clases ---> File ----> TFileRun, es de delphi y no es ningun componente...
Responder Con Cita
  #14  
Antiguo 23-09-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡¡Ya sé qué es FileRun!! Es una acción. He hecho esta prueba

Código Delphi [-]
FileRun1.Directory := Application.ExeName;
FileRun1.FileName := 'zip.exe';
FileRun1.Parameters :=
  DQuotedString('c:\Documents and Settings\roman\Mis documentos\noseque.zip') +
  ' ' +
  DQuotedString('C:\Documents and Settings\roman\Mis documentos\Trabajo\cdsview\*.*');
FileRun1.Execute;

y funciona bien.

// Saludos
Responder Con Cita
  #15  
Antiguo 23-09-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
a ver si no recuerdo mal, teniendo windows XP instalado:

- con particiones FAT, necesita entrecomillar los parámetros
- con particiones NTFS, no es necesario entrecomillar los parámetros

No puedo asegurarlo al 100 %, porque no tengo FAT por aquí. Para curarte en salud, entrecomilla (comillas dobles) los parámetros y siempre funcionará.

... a estas horas ya habrá entregado el programa, pero los "service packs" están para algo .


Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #16  
Antiguo 23-09-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No lo creo Lepe. Parámetros son parámetros, y se separan con espacios. FAT o NTFS, es imposible que un programa distinga que si le mandas C:\Archivos de programa\hola en la línea de comandos, en realidad te refieres a un sólo parámetro y no a tres.

Y bueno, de hecho ayer mismo estuve probando esto, tanto en FileRun como en ShellExecute (con NTFS) y no funciona si se omiten las comillas dobles. Y, de hecho, examiné el código de FileRun y vi que usa ShellExecute. Claro que esto último ya no lo comenté porque nuestro amigo se desapareció.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Varios backups molinero1 Varios 5 10-05-2007 11:57:57
como se usa el TJ...backup para hacer backups en Delphi? molinero1 Varios 4 16-04-2007 18:42:21
Automatizar BACKUPS y RESTORES AMINOA2R Firebird e Interbase 12 20-10-2005 16:11:16
backups de tablas Marcos Conexión con bases de datos 0 17-02-2005 18:00:02
Problema de Backups Clantt Conexión con bases de datos 3 20-07-2004 00:32:42


La franja horaria es GMT +2. Ahora son las 19:42:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi