AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Delphi Programm soll dateien kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Programm soll dateien kopieren

Ein Thema von Roland Herberg · begonnen am 29. Sep 2002 · letzter Beitrag vom 19. Mär 2008
Antwort Antwort
Seite 2 von 3     12 3      
R.Meyrat

Registriert seit: 6. Okt 2002
22 Beiträge
 
Delphi 2005 Personal
 
#11
  Alt 8. Okt 2002, 13:10
Hallo Zusammen
Habe da noch einetn Tip für Win2k Besitzer:
Schaut Euch doch mal das ResourceKit an, da müsste as Proggi RoboCopy dabei sein.
ist "nur* knapp 100KB gross und ist zum Kopieren von vielen Daten geeignet. Kann auch Verzeichnisse etc spiegel usw.

Ist erheblich schneller als die Win-Api etc.

Bauche das Prog um aus einem Delphi Programm ca 4000 Dateien synchron zu halten. Starte "einfach" ein neuer Prozess ...


Habe mal den passenden Code unten für solche dies interessiert.


Gruss Roger

Code:
try
    Screen.Cursor := crHourglass;
    Result := False;
    StatusBar.Panels[1].Text := 'lokales Verzeichnis :' + slocalPath +
      ' wird mit :' + sRemotePath + ' abgeglichen .....';
    if pnlMarker.Color = clBtnface then
      pnlmarker.Color := clRed;
    Application.ProcessMessages;
    sPara := sRemotePath + ' ' + slocalPath + ' ';
      { Source und Destination Verzeichnisse}
    sTemp := saMask[0]; { Filter für Einrichtpläne}
    sTemp := StringReplace(sTemp, ';', ' ', [rfReplaceAll]);
    sPara := SPara + sTemp + ' ';
    sTemp := saMask[1]; { Filter für NC - Programme}
    sTemp := StringReplace(sTemp, ';', ' ', [rfReplaceAll]);
    sPara := sPara + sTemp + ' ';
    sPara := sPara + '/S '; { Inklusive SubDirectorys}
    if LBoxEX_DIR.Items.Count > 0 then begin
      sPara := sPara + '/XD '; { Exclude Directorys}
      for iCounter := 0 to LBoxEX_DIR.Items.Count - 1 do begin
        if trim(LBoxEX_DIR.Items[iCounter]) <> '' then
          sPara := sPara + LBoxEX_DIR.Items[iCounter] + ' ';
      end;
    end;
    sPara := sPara + '/MIR '; {Befehl zum Mirroring}
    sPara := sPara + '/R:10 '; { 10 Versuche die Datei zu kopieren}
    spara := sPara + '/W:10 '; { jeweils 10Sek warten zwischen Versuchen}
    sPara := Spara + '/LOG:' + lbledtLogFile.Text; {und LogDatei erstellen}
    FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
    StartupInfo.cb := Sizeof(TStartupInfo);
    StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
    StartupInfo.wShowWindow := SW_HIDE;
    if CreateProcess(nil, { Anwendungsname}
      PChar(ExtractFilePath(Application.ExeName) + '\Robocopy.Exe ' + sPara),
    { Parameter}
      nil, { Security}
      nil, { Security}
      False,
      NORMAL_PRIORITY_CLASS, { Priorität}
      nil, { Environment}
      PChar(ExtractFilePath(Application.ExeName)), { Verzeichnis}
      StartupInfo,
      ProcessInfo) then begin
      WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
      CloseHandle(ProcessInfo.hProcess);
    end
    else
      ShowMessage('Fehler beim starten des Kopiervorganges!');
    TimerTimer(self);
    Result := True;
    Screen.Cursor := crDefault;
  except
    Result := False;
    MessageDLG('FEHLER beim Aufruf von Robocopy !' + #10 + #13 +
      ' Funktion : madeLocalCopy()', mtError, [mbOK], 0);
  end;
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#12
  Alt 8. Okt 2002, 14:01
Moin Roger,

wobei noch anzumerken wäre, dass man bei der Option /MIR sehr darauf aufpassen muss Quelle und Ziel nicht zu vertauschen.
Im Extremfall hat man sonst statt einer Sicherung einen 100%igen Datenverlust.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
masters001

Registriert seit: 23. Dez 2002
78 Beiträge
 
#13
  Alt 23. Dez 2002, 18:50
Hallo!
Ich möchte diesen Befehl auch gerne in meinem Programm nutzen haber aber noch folgendes Problem:

CopyFile( Pfad ,'C:\save.dat',false);

In dem String Pfad ist der Pfad zu der Datei gespeichert die ich kopieren möchte!
Aber beim kompilieren kommt eine Fehlermeldung:
Incompatible type String and PChar!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#14
  Alt 23. Dez 2002, 19:00
Moin Masters,

erst einmal herzlich willkommen.

CopyFile( PChar(Pfad) ,'C:\save.dat',false); so sollte es gehen. Ich nehme mal an Pfad ist eine Variable vom Typ string.
Da als erster Parameter ein PChar (also eigentlich ein Pointer auf einen nullterminierten String) erwartet wird, muss man dem Compiler noch mitteilen, dass er den String als PChar verarbeiten soll.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
masters001

Registriert seit: 23. Dez 2002
78 Beiträge
 
#15
  Alt 23. Dez 2002, 19:24
Vielen dank für die schnelle hilfe
  Mit Zitat antworten Zitat
Benutzerbild von napstar
napstar

Registriert seit: 22. Mär 2007
Ort: München
133 Beiträge
 
Delphi 2007 Architect
 
#16

Re: Delphi Programm soll dateien kopieren

  Alt 19. Mär 2008, 13:11
hi ich hab ein problem..
der compiler findet hier ein fehler.. ich weiß aber garnicht was ich machen soll ^^..
CopyFile(PChar(ExtractFilePath(ParamStr(0) + 'Programm.exe')),(ExtractFilePath(ParamStr(0) + 'Programm.bkp')),false); das is die fehlermeldung:
[Pascal Fehler] Unit1.pas(219): E2010 Inkompatible Typen: 'string' und 'PAnsiChar'

hoffe jemand kann mir helfen
ich danke euch jetzt schonmal für eure hilfe ^^..
  Mit Zitat antworten Zitat
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#17

Re: Delphi Programm soll dateien kopieren

  Alt 19. Mär 2008, 13:50
CopyFile(PChar(ExtractFilePath(ParamStr(0) + 'Programm.exe')),PChar(ExtractFilePath(ParamStr(0) + 'Programm.bkp')),false); Du hast das 2. PChar vergessen
Jonas
  Mit Zitat antworten Zitat
Benutzerbild von napstar
napstar

Registriert seit: 22. Mär 2007
Ort: München
133 Beiträge
 
Delphi 2007 Architect
 
#18

Re: Delphi Programm soll dateien kopieren

  Alt 19. Mär 2008, 13:53
hab ich doch???
oder kommt da noch ein pchar ^^
  Mit Zitat antworten Zitat
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#19

Re: Delphi Programm soll dateien kopieren

  Alt 19. Mär 2008, 13:54
Ja, da kommen 2 hin (Ursprungsdatei, Ziel).
Jonas
  Mit Zitat antworten Zitat
Benutzerbild von napstar
napstar

Registriert seit: 22. Mär 2007
Ort: München
133 Beiträge
 
Delphi 2007 Architect
 
#20

Re: Delphi Programm soll dateien kopieren

  Alt 19. Mär 2008, 14:25
ich hab doch schon 2 drinstehen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr.
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