Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemilla, el compilador me dice Not enough actual parameters y no se porqué (https://www.clubdelphi.com/foros/showthread.php?t=87556)

pokexperto1 21-01-2015 23:37:28

Problemilla, el compilador me dice Not enough actual parameters y no se porqué
 
Hola, alguien me puede decir porqué me da error esta linea de codigo:
Código Delphi [-]
var
ruta: string;
...
CopyFile(PWideChar(Ruta), 'C:\Users\Gerard\AppData\Roaming\.softwarex\modification');

Muchas gracias de antemano.

pokexperto1 21-01-2015 23:57:06

Olvidadlo, ya esta solucionado.
 
Así es el codigo:
Código Delphi [-]
CopyFile(PChar(ruta), PChar('C:\Users\Gerard\AppData\Roaming\.software\modifications'), true);
lo que pasa ahora es que no me copia el archivo... ya he probado dandole privilegios administrativos y nada...

ecfisa 22-01-2015 00:00:14

Hola.

Como indica el error, te falta un parámetro, en este caso es el tercero de tipo boolean. False indica que la función debe fallar cuando el archivo existe y True lo sobreescribe.

Detalle de la función: CopyFile

Saludos :)


Edito: Despues de publicar, veo que ya lo has solucionado. Me alegro :)

pokexperto1 22-01-2015 00:09:38

vale, soy gilipollas
 
Yo tambien soy listo, he puesto una ruta que solo puede usar alguien que tenga un usuario que se llame gerard... si es que me pegaban de pequeño...
vale ya he cambiado eso, ahora es:
Código Delphi [-]
CopyFile(PChar(ruta), PChar('prueba.txt'), true);
y sigue sin funcionar... compila y todo pero no copia una m***** y si, el archivo existe y todo...

ociocabure 22-01-2015 02:43:51

y ruta que dice???????????
puede que ahi este el dilema.

nlsgarcia 22-01-2015 06:46:38

pokexperto1,

Cita:

...sigue sin funcionar...CopyFile...
:rolleyes:

Revisa este código:
Código Delphi [-]
 unit Unit1;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, FileCtrl;
 
 type
   TForm1 = class(TForm)
     Button1: TButton;
     procedure Button1Click(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end;
 
 var
   Form1: TForm1;
 
 implementation
 
 {$R *.dfm}
 
 procedure TForm1.Button1Click(Sender: TObject);
 var
    openDialog : TOpenDialog;
    chosenDirectory : String;
    FromFileName, ToFileName : String;
    MsgUser : String;
 
 begin
    openDialog := TOpenDialog.Create(self);
    openDialog.InitialDir := GetCurrentDir;
    openDialog.Options := [ofFileMustExist];
    openDialog.Filter := 'Archivo a Copiar|*.*';
    openDialog.FilterIndex := 1;
    if openDialog.Execute then
    begin
       if SelectDirectory('Seleccione un Directorio de Destino de Copia', 'C:\', chosenDirectory) then
       begin
          FromFileName := openDialog.FileName;
          ToFileName := chosenDirectory + ExtractFileName(openDialog.FileName);
          if Copyfile(PChar(FromFileName),PChar(ToFileName),True) then
             MsgUser := 'Archivo Copiado'
          else
             MsgUser := 'El Archivo No Fue Copiado, Existe en el Directorio Destino';
          MessageDlg(MsgUser,mtInformation,[mbOK],0);
       end
       else
       begin
          MsgUser := 'No se Selecciono Ningún Directorio de Destino';
          MessageDlg(MsgUser,mtInformation,[mbOK],0);
       end;
    end
    else
    begin
       MsgUser := 'No se Selecciono Ningún Archivo para Copiar';
       MessageDlg(MsgUser,mtInformation,[mbOK],0);
    end;
    openDialog.Free;
 end;
 
 end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, permite copiar un archivo de un directorio cualquiera a un directorio destino por medio de la función CopyFile.

Espero sea útil :)

Nelson.

pokexperto1 22-01-2015 22:12:32

Grax
 
Gracias pero me dice error en la linea 16: Undeclared identifier: 'SelectDirecory'

editado:Vale ya he solucionado eso pero sigue sin copiar nada...
Os dejo un link a un video para que lo veais...:https://www.youtube.com/watch?v=-CBXO8pws5g

Casimiro Notevi 22-01-2015 22:18:21

Cita:

Empezado por pokexperto1 (Mensaje 488025)
Gracias pero me dice error en la linea 16: Undeclared identifier: 'SelectDirecory'
editado:Vale ya he solucionado eso pero sigue sin copiar nada...

Pon tu código.

pokexperto1 22-01-2015 23:02:15

Cita:

Empezado por Casimiro Notevi (Mensaje 488026)
Pon tu código.

Código Delphi [-]
procedure TForm2.Button1Click(Sender: TObject);
 var  //codigo de nelson  (nlsgarcia) tal cual esta en el foro
    openDialog : TOpenDialog;
    chosenDirectory : String;
    FromFileName, ToFileName : String;
    MsgUser : String;

 begin
    openDialog := TOpenDialog.Create(self);
    openDialog.InitialDir := GetCurrentDir;
    openDialog.Options := [ofFileMustExist];
    openDialog.Filter := 'Archivo a Copiar|*.*';
    openDialog.FilterIndex := 1;
    if openDialog.Execute then
    begin
       if SelectDirectory('Seleccione un Directorio de Destino de Copia', 'C:\', chosenDirectory) then
       begin
          FromFileName := openDialog.FileName;
          ToFileName := chosenDirectory + ExtractFileName(openDialog.FileName);
          if Copyfile(PChar(FromFileName),PChar(ToFileName),True) then
             MsgUser := 'Archivo Copiado'
          else
             MsgUser := 'El Archivo No Fue Copiado, Existe en el Directorio Destino';
          MessageDlg(MsgUser,mtInformation,[mbOK],0);
       end
       else
       begin
          MsgUser := 'No se Selecciono Ningún Directorio de Destino';
          MessageDlg(MsgUser,mtInformation,[mbOK],0);
       end;
    end
    else
    begin
       MsgUser := 'No se Selecciono Ningún Archivo para Copiar';
       MessageDlg(MsgUser,mtInformation,[mbOK],0);
    end;
    openDialog.Free;
 end;

nlsgarcia 23-01-2015 01:08:58

pokexperto1,

Cita:

...sigue sin copiar nada...código de nelson (nlsgarcia) tal cual esta en el foro...
:rolleyes:

Revise el vídeo que colocastes en Youtube :D y veo que usas Delphi XE7.

Pregunto :

1- ¿Que versión de Windows utilizas?, ¿Es de 32 ó 64 bits?.

2- ¿Estas compilando en 32 ó 64 bits?

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, FileCtrl, System.UITypes;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   openDialog : TOpenDialog;
   chosenDirectory : String;
   FromFileName, ToFileName : String;
   MsgUser : string;

begin
   openDialog := TOpenDialog.Create(self);
   openDialog.InitialDir := GetCurrentDir;
   openDialog.Options := [ofFileMustExist];
   openDialog.Filter := 'Archivo a Copiar|*.*';
   openDialog.FilterIndex := 1;
   if openDialog.Execute then
   begin
      if SelectDirectory('Seleccione un Directorio de Destino de Copia', 'C:\', chosenDirectory) then
      begin
         FromFileName := openDialog.FileName;
         ToFileName := chosenDirectory + '\' + ExtractFileName(openDialog.FileName);
         if Copyfile(PChar(FromFileName),PChar(ToFileName),True) then
            MsgUser := 'Archivo Copiado'
         else
            MsgUser := 'El Archivo No Fue Copiado, Existe en el Directorio Destino';
         MessageDlg(MsgUser,mtInformation,[mbOK],0);
      end
      else
      begin
         MsgUser := 'No se Selecciono Ningún Directorio de Destino';
         MessageDlg(MsgUser,mtInformation,[mbOK],0);
      end;
   end
   else
   begin
      MsgUser := 'No se Selecciono Ningún Archivo para Copiar';
      MessageDlg(MsgUser,mtInformation,[mbOK],0);
   end;
   openDialog.Free;
end;

end.
El código anterior en Delphi XE7 sobre Windows 10 Technical Preview x32, permite copiar un archivo de un directorio cualquiera a un directorio destino por medio de la función CopyFile.

Nota : En el código del Msg #6, faltaba incluir el carácter '\' en el String ToFileName.

Espero sea útil :)

Nelson.

ociocabure 23-01-2015 19:21:59

por preguntar nomas el archivo no tendra atributos de oculto? por eso no lo ves. Trata de abrirlo desde otra parte del programa, para ver que pasa.


La franja horaria es GMT +2. Ahora son las 11:22:52.

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