Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kopieren bzw verschieben von dateien (https://www.delphipraxis.net/133381-kopieren-bzw-verschieben-von-dateien.html)

TRUCKERmas 30. Apr 2009 21:15


Kopieren bzw verschieben von dateien
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke fürs lesen.
Also ich würde gerne einen Ordner mit Unbekanntem Namen ABER mit dem inhalt von der info.txt innendrinn in ein in einem Edit Feld gelegenem Pfad verschieben zurzeit ist mein code hier so:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, ExtDlgs;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    File1: TMenuItem;
    Saveas1: TMenuItem;
    Savedirectionfile1: TMenuItem;
    Help1: TMenuItem;
    Howtouse1: TMenuItem;
    About1: TMenuItem;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    SaveDialog1: TSaveDialog;
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    procedure About1Click(Sender: TObject);
    procedure Saveas1Click(Sender: TObject);
    procedure Savedirectionfile1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
 Steampath: TStringList;
 mysteampath: Textfile;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.About1Click(Sender: TObject);
begin
UNWICHTIG, RAUSGENOMMEN
end;

procedure TForm1.Saveas1Click(Sender: TObject);
begin
// Öffnen der txt Datei mit dem Pfad, damit man es nicht immer neu schreiben muss
try
 steampath.LoadFromFile('mysteampath.txt')
except
showmessage ('Error opening the file!')
end;
try
edit1.Text := steampath.text;
except
showmessage ('Error opening the file!')
end;




end;
procedure TForm1.Savedirectionfile1Click(Sender: TObject);
begin
// Speichern der TXT Datei
 try
 Steampath.text := Edit1.text;

 except
  showmessage ('Error saving the file!');


end;
 try
 steampath.SaveToFile('mysteampath.txt')

 except
  showmessage ('Error saving the file!');
  end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
 steampath := Tstringlist.create;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
// Hier ist mein Problem, denn * und edit1.Text sind 2 inkompatible Typen
 steampath.text := edit1.text;
 if fileexists ('*/info.txt') then
 movefile ('*', edit1.text)
end;

end.
Mein problem ist ganz unten im Quellcode.
Danke im voraus :) :bounce1:

Luckie 30. Apr 2009 22:29

Re: Kopieren bzw verschieben von dateien
 
Ich glaube nicht, dass FileExists mit Wildcards zurecht kommt. Du musts schon irgendwie sehen, dass du den vollständigen Pfad angibst.

TRUCKERmas 1. Mai 2009 07:00

Re: Kopieren bzw verschieben von dateien
 
Zitat:

Zitat von Luckie
Ich glaube nicht, dass FileExists mit Wildcards zurecht kommt. Du musts schon irgendwie sehen, dass du den vollständigen Pfad angibst.


Also dann bräuchte ich aber irgendwas was den Dateipfad der Exe einsieht.
Wie geht das denn?

mkinzler 1. Mai 2009 07:19

Re: Kopieren bzw verschieben von dateien
 
Die Exe inklusive Pfad steht in ParamStr(0) bzw Application.Exename
Mit ExtractFilePath() kannst du daraus den Pfad auslesen

TRUCKERmas 1. Mai 2009 07:42

Re: Kopieren bzw verschieben von dateien
 
Zitat:

Zitat von mkinzler
Die Exe inklusive Pfad steht in ParamStr(0) bzw Application.Exename
Mit ExtractFilePath() kannst du daraus den Pfad auslesen

zurzeit heist die exe noch project1.exe
also hab ichs mal versucht mit Extractfilepath('project1.exe'); aber da ging nix

außerdem habe ich das jetzt so umgeändert, das er nichtmehr sucht, sondern das man den Pfad angeben muss. Folgendes problem:
Delphi-Quellcode:
 steampath.text := edit1.text;
 if fileexists (edit2.text + '/info.txt') then
 movefile (edit2.text, edit1.text + '\addons')
[Error] Unit1.pas(98): Incompatible types: 'TCaption' and 'PAnsiChar'
[Error] Unit1.pas(98): Incompatible types: 'TCaption' and 'PAnsiChar'
zeile 98 ist die mit movefile
ich hab echt keine Ahnung was ich jetzt machen soll

mkinzler 1. Mai 2009 07:48

Re: Kopieren bzw verschieben von dateien
 
Du hast auch nicht gelesen was ich geschrieben habe

Delphi-Quellcode:
Pfad := ExtractFilePath( ParamStr(0));
MoveFile erwartete Pointer (PChar) auf die Strings.

Delphi-Quellcode:
s1 := edit2.text; s2 := edit1.text + '\addons';
movefile ( PChar( s1), PChar (s2));

TRUCKERmas 1. Mai 2009 11:03

Re: Kopieren bzw verschieben von dateien
 
Zitat:

Zitat von mkinzler
Du hast auch nicht gelesen was ich geschrieben habe

Delphi-Quellcode:
Pfad := ExtractFilePath( ParamStr(0));
MoveFile erwartete Pointer (PChar) auf die Strings.

Delphi-Quellcode:
s1 := edit2.text; s2 := edit1.text + '\addons';
movefile ( PChar( s1), PChar (s2));

Ich habs gelesen, bloß nicht verstanden

mkinzler 1. Mai 2009 11:06

Re: Kopieren bzw verschieben von dateien
 
Was genau verstehst du daran nicht?

TRUCKERmas 1. Mai 2009 11:20

Re: Kopieren bzw verschieben von dateien
 
Ich habe nicht verstanden wo der Pfad stehen soll und vorallem in welcher Art.
Hör zu ich bin neu bei Delphi, ich habe nicht soviel Erfahrung.

mkinzler 1. Mai 2009 11:36

Re: Kopieren bzw verschieben von dateien
 
ParamStr(0) enthält den Dateinamen inklusive Pfad!
Und mit ExtractFilePath() kannst du daraus den Pfad extrahieren!
Also wie geschrieben:

Delphi-Quellcode:
Path := ExtractFilePath( ParamStr(0));
liegt die Exe auf C:\Programme und Einstellungen\Mein Programm und heist Project1.exe

steht in ParamStr(0) C:\Programme und Einstellungen\Mein Programm\Project1.exe

und in Path dann nur der Pfad inklusive Backslash (C:\Programme und Einstellungen\Mein Programm\)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 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