Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [ '(' erwartet, aber ';' gefunden ] nach CopyFile (https://www.delphipraxis.net/111096-%5B-erwartet-aber-%3B-gefunden-%5D-nach-copyfile.html)

Deltachaos 29. Mär 2008 13:56


[ '(' erwartet, aber ';' gefunden ] nach CopyFile
 
Delphi-Quellcode:
procedure upd;
begin
  begin                                   //  ||||| < für was steht das?
    CopyFile(PChar(Dat_orig), PChar(Dat_copy) ,false);
  end;                                   //   |||||
//    || < Hierzwischen Steht der Curser
  close;
//    ||
{    form1.zipmaster1.DLLDirectory:= ExtractFilePath(ParamStr(0));
    form1.zipmaster1.ExtrOptions:= form1.zipmaster1.ExtrOptions + [ExtrDirNames, ExtrOverwrite];
    form1.zipmaster1.ZipFilename:= 'C:\toll.zip';
    form1.zipmaster1.ExtrBaseDir:= 'C:\bak';
    form1.zipmaster1.Extract;}
end;
Delphi-Quellcode:
[Fehler] Unit1.pas(54): '(' erwartet, aber ';' gefunden
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Was will Delphi da von mir?
CopyFile hatt doch alle informationen die es Braucht.
und für was steht eigentlich das false bei CopyFile?

mkinzler 29. Mär 2008 14:01

Re: [ '(' erwartet, aber ';' gefunden ] nach CopyFile
 
Möglicherweise ist der Fehler schon vorher.
Der dritte Parameter heißt overwrite.

Deltachaos 29. Mär 2008 14:03

Re: [ '(' erwartet, aber ';' gefunden ] nach CopyFile
 
Zitat:

Zitat von mkinzler
Möglicherweise ist der Fehler schon vorher.
Der dritte Parameter heißt overwrite.

gut dan setzte ich den auf true

hier der komplette code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DFUnRar, ZipMstr, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP, Grids, StdCtrls, ShellApi;

type
  TForm1 = class(TForm)
    ZipMaster1: TZipMaster;
    IdHTTP1: TIdHTTP;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var dat_orig, dat_copy, exe_name, version: string;
    MsgDlg1: integer;

procedure namen;
begin
  dat_orig:= 'update.exe';
  dat_copy:= 'bak\update.exe';
  exe_name:= 'update';
  version:= '1.0.0';
end;

{procedure TForm1.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Integer);
begin
  form1.ProgressBar1.Max := AWorkCountMax;
  gesamt := AWorkCountMax;
  Label2.Caption := '0 von '+FloatToStrF(gesamt/1000000,ffFixed,10,2)+' MB geladen';
  FTime := GetTickCount;
  FBytes := 0;
end;}

procedure upd;
begin
  begin
    CopyFile(PChar(Dat_orig), PChar(Dat_copy) ,true);
  end;
  close;
{    form1.zipmaster1.DLLDirectory:= ExtractFilePath(ParamStr(0));
    form1.zipmaster1.ExtrOptions:= form1.zipmaster1.ExtrOptions + [ExtrDirNames, ExtrOverwrite];
    form1.zipmaster1.ZipFilename:= 'C:\toll.zip';
    form1.zipmaster1.ExtrBaseDir:= 'C:\bak';
    form1.zipmaster1.Extract;}
end;

procedure start;
begin
  MsgDlg1:= MessageDlg('Backup Anlegen ?', mtConfirmation, [mbYes, mbNo], 0);
  if MsgDlg1= mrYes
  then
  begin
    namen;
    if
    DirectoryExists('bak')
    then
      upd
    else
      mkdir('bak');
      upd;
  end
  else
  begin
    upd;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Start;
  ShellExecute(Application.Handle,'open',PChar(exe_name + '.exe'),PChar('/update ' + version),PChar(''),SC_DEFAULT);
end;





end.

Fussball-Robby 29. Mär 2008 14:04

Re: [ '(' erwartet, aber ';' gefunden ] nach CopyFile
 
Zitat:

Zitat von mkinzler
Möglicherweise ist der Fehler schon vorher.
Der dritte Parameter heißt overwrite.

Besagt der 3.Parameter nicht, dass abgebrochen wird, wenn die Datei existiert? (Also so ziemlich das Gegenteil von overwrite)

Mfg

mkinzler 29. Mär 2008 14:09

Re: [ '(' erwartet, aber ';' gefunden ] nach CopyFile
 
Dein Einrücken verwirrt mich
Delphi-Quellcode:
procedure start;
begin
  MsgDlg1:= MessageDlg('Backup Anlegen ?', mtConfirmation, [mbYes, mbNo], 0);
  if MsgDlg1= mrYes then
  begin
    namen;
    if not DirectoryExists('bak') then mkdir('bak');
    upd;
  end
  else
  begin
    upd;
  end;
end;

Fussball-Robby 29. Mär 2008 14:11

Re: [ '(' erwartet, aber ';' gefunden ] nach CopyFile
 
Es muss so heißen:
Delphi-Quellcode:
Form1.Close;
Oder du deklarierst die Prozedur im Private-Abschnitt von Form1.

Mfg

Matze 29. Mär 2008 14:11

Re: [ '(' erwartet, aber ';' gefunden ] nach CopyFile
 
Zitat:

Zitat von Fussball-Robby
Besagt der 3.Parameter nicht, dass abgebrochen wird, wenn die Datei existiert? (Also so ziemlich das Gegenteil von overwrite)

Richtig:

Code:
BOOL CopyFile(
  LPCTSTR lpExistingFileName,
  LPCTSTR lpNewFileName,
  BOOL bFailIfExists
);

mkinzler 29. Mär 2008 14:13

Re: [ '(' erwartet, aber ';' gefunden ] nach CopyFile
 
Tja, ein hoch auf das Hilfesystem von Delphi (Win32), brachte mir die Hilfefunktion für die .Net-Funktion

Deltachaos 29. Mär 2008 14:25

Re: [ '(' erwartet, aber ';' gefunden ] nach CopyFile
 
Zitat:

Zitat von Matze
Zitat:

Zitat von Fussball-Robby
Besagt der 3.Parameter nicht, dass abgebrochen wird, wenn die Datei existiert? (Also so ziemlich das Gegenteil von overwrite)

Richtig:

Code:
BOOL CopyFile(
  LPCTSTR lpExistingFileName,
  LPCTSTR lpNewFileName,
  BOOL bFailIfExists
);

dann lasse ich es auf false.
mit dem form1.close hatte ich es probirt da satartet das programm zwar aber es schliest sich net.

Fussball-Robby 29. Mär 2008 14:29

Re: [ '(' erwartet, aber ';' gefunden ] nach CopyFile
 
Zitat:

Zitat von Deltachaos
mit dem form1.close hatte ich es probirt da satartet das programm zwar aber es schliest sich net.

Dann wird diese Codestelle wahrscheinlich garnicht ausgeführt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz