Datei per Befehl von A nach B kopieren??

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Napster
Beiträge: 36
Registriert: Di 24. Okt 2006, 13:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hemsbach
Kontaktdaten:

Datei per Befehl von A nach B kopieren??

Beitrag von Napster »

Hey mal ne frage, also ich würde gerne mit einem selbstgeschriebenen Programm eine Datei, beispielsweiße ein Word-Dokument von meiner Partition G:/ nach C:/ verschieben. Bloß wie mach ich das??

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »


Napster
Beiträge: 36
Registriert: Di 24. Okt 2006, 13:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hemsbach
Kontaktdaten:

Beitrag von Napster »

ok, habs mal angeguckt?? wo sehe ich wo das hinkopiert wird?? wo sehe ich was kopiert wird?

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

const SrcFilename: String; > gibt die Datei an, die kopiert werden soll
const DestFilename: String > gibt Ziel an

also ungefähr so: copyfile(c:\datei.txt, d:\datei.txt);

Napster
Beiträge: 36
Registriert: Di 24. Okt 2006, 13:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hemsbach
Kontaktdaten:

Beitrag von Napster »

Bild

Napster
Beiträge: 36
Registriert: Di 24. Okt 2006, 13:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hemsbach
Kontaktdaten:

Beitrag von Napster »

also ich weiß das was falsch ist aber was??

Code: Alles auswählen

function CopyFile(c:\test.txt, d:\test.txt)(
 
  const srctest.txt: String;
 
  const desttest.txt: String
 
):Boolean;
 
  function CopyFile(c:\test.txt, d:\test.txt)(
 
  const srctest.txt: String;
 
  const desttest.txt: String
 
):Boolean;

iaby
Beiträge: 24
Registriert: Mi 25. Okt 2006, 19:48

Beitrag von iaby »

bei den parametern die ' nicht vergessen! also ich mein das zeichen über dem #
:)

CopyFile('C:\von.txt', 'C:\nach.txt');

Napster
Beiträge: 36
Registriert: Di 24. Okt 2006, 13:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hemsbach
Kontaktdaten:

Beitrag von Napster »

Sry geht immer noch nicht. Kann mir jemand BITTE BITTE mal den kompletten Quelletext geben. meine Datei heißt Datei1. Bitte.

PS:Kann man es auch so anstellen, dass wenn man auf einen Button klick Dateien wohin kopiert werden??

iaby
Beiträge: 24
Registriert: Mi 25. Okt 2006, 19:48

Beitrag von iaby »

was geht nicht? kommt ne fehlermeldung beim compilieren oder tut sich einfach nix oder was passiert?

nimm dir mal einen button auf die form, klicke dann doppelt drauf und füge einfach nur das hier ein:

Code: Alles auswählen

CopyFile('C:\Datei1', 'D:\Datei1');


/Edit: ich glaub ich weiß jetzt was du falsch gemacht hast! Aber so sollte es gehen, zur not noch bei den uses ganz oben im Quellcode "FileUtil" dazuschreiben. Natürlich ohne "

Napster
Beiträge: 36
Registriert: Di 24. Okt 2006, 13:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hemsbach
Kontaktdaten:

Beitrag von Napster »

Er zeigt zwar keinen Fehler aber wenn ich auf Button1 klicke, kopiert er nichts. Hier ist der Quellecode.



Code: Alles auswählen

unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
begin
   CopyFile('C:\Datei1', 'D:\Datei1');
end;
 
initialization
  {$I unit1.lrs}
 
end.





ich habs dann noch ein bissel anders gemacht


Code: Alles auswählen

unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
 
function CopyFile('C:\Datei1', 'D:\Datei1');(
 
  const SrcFilename: String;
 
  const DestFilename: String
 
):Boolean;
 
function CopyFile(
 
  const SrcFilename: String;
 
  const DestFilename: String;
 
  PreserveTime: Boolean
 
):Boolean;
 
implementation
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
begin
   CopyFile('C:\Datei1', 'D:\Datei1');
end;
 
initialization
  {$I unit1.lrs}
 
end.




aber das geht auch nicht. Fehlermeldung:

Code: Alles auswählen

unit1.pas(27,19)Error: Bezeichner erwartet aber 'C:\Datei1' gefunden

paradox
Beiträge: 34
Registriert: Fr 15. Sep 2006, 14:33

Beitrag von paradox »

Have fun

Code: Alles auswählen

unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
resourcestring
  SFileNotCopy = 'Datei konnte nicht kopiert werden: %s';
 
{ TForm1 }
 
{$IFnDEF LINUX}
function SystemMsgToStr(ErrorID: Integer): string;
var
  PCh: PChar;
  S: String;
begin
  PCh := StrAlloc($FFFF);
  try
    if FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,nil,ErrorID,0,PCh,$FFFF,nil) <> 0 then
      Result := PCh
    else
      Result := InttoStr(ErrorID)
  finally
    StrDispose(PCh);
  end;
end;
{$ENDIF}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  if not CopyFile('C:\Datei1', 'D:\Datei1') then
  {$IFnDEF LINUX}
    raise Exception.CreateFmt(SFileNotCopy, [SystemMsgToStr(GetLastError)]);
  {$ELSE}
    raise Exception.CreateFmt(SFileNotCopy, [IntToStr(GetLastError)]);
  {$ENDIF}
end;
 
initialization
  {$I unit1.lrs}
 
end.

Napster
Beiträge: 36
Registriert: Di 24. Okt 2006, 13:58
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hemsbach
Kontaktdaten:

Beitrag von Napster »

Very cool thx. Endlich mal ne completter Quelletet. Aber auch danke an die anderen. ;)

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Napster hat geschrieben:Very cool thx. Endlich mal ne completter Quelletet. Aber auch danke an die anderen. ;)


Naja, aber verstehen tust du das jetzt wohl erst recht nicht, stimmt's? ;-)
Deine erste Lösung vom 7/11/2006, 14:13 hätte eigentlich funktionieren müssen.
Was Du da aber unter "ich habs dann noch ein bissel anders gemacht" schreibst is kompletter Käse ;-).

Schau doch mal in ein Pascal Buch!

paradox
Beiträge: 34
Registriert: Fr 15. Sep 2006, 14:33

Beitrag von paradox »

Ich empfehle „Das große Buch zu Turbo Pascal 5.0 / 5.5“

http://www.hood.de/auction/21820243/dat ... -0-5-5.htm

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

theo hat geschrieben:Deine erste Lösung vom 7/11/2006, 14:13 hätte eigentlich funktionieren müssen.


aber man müste noch die FileUtil einfügen, hat ja iaby auch schon gesagt, also so:

uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons, FileUtil;

Antworten