Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sichern von Daten (https://www.delphipraxis.net/739-sichern-von-daten.html)

m-werk 1. Sep 2002 17:25

hi, ich habs noch nicht ganz

Ich zeige den Pfad im label mit folgendem Code an:

Code:
Label2.Caption := a;
Ich lese ja aus der Registry den Pfad aus.
Und wenn ich jetzt den Code:
Code:
Label3.Caption:=ExtractFilename(ParamStr(0))
dazugebe, dann sehe ich im Label 3 nur die Datei, bei dem
Ordner, wo sich gerade mein Programm befindet.

Weiters soll die Datei mit der Ext. *.mdb angezeigt werden.

Luckie 1. Sep 2002 17:32

Witzbold, das mit ParamStr(0) war nur zu demonstrations Zwecken gedacht. Hattest du nicht gesagt, du hättest Pfad und Datei in der Registry?

m-werk 1. Sep 2002 17:34

Ich hab nur den Pfad in der Registry. Die Datei nicht.

Den Path lese ich ja schon im Label2 aus. Jetzt fehlt nur noch die datei in Label 3 dazu.

Daniel B 1. Sep 2002 17:37

Ich denke, er möchte im Label3 Kundenverwaltung.mbd drin haben. Er holt sich den Pfad aus der Reg, kann aber die Datei aus dem Ordner ncith rausfischen.

Probiers mal damit:

if (FileExists(ChangeFileExt(ParamStr(0), '.mbd'))) then Label3.Caption := 'Die Datei Kundenverwaltung.mbd, ist in dem Ordner sowieso...';

Grüsse, Daniel :hi:

Luckie 1. Sep 2002 17:39

Ja wenn du den Pfad hast, dann hast du doch auch die Datei. Oder heißt die immer anders? Dann mußt du in dem Order, dessen Pfad du hast, mit FindFirst und FindNext suchen. Wenn dort nur eine Datei steht, dann reicht eventuell schon FindFirst.

m-werk 1. Sep 2002 17:49

Es könnten mehrere Dateien in diesem Ordner sein, aber die Datei, die im Label 3 erscheinen soll, soll immer folgende sein 'Kundendaten.mdb'

Wie geht das mit dem FindFirst

Luckie 1. Sep 2002 17:53

Dann such immer mit FindFirst nach *.mdb oder wenn du dir absolut sicher sein kannst , dann mach doch:
Code:
Label3.Caption := 'Kundendaten.mdb';

m-werk 1. Sep 2002 18:01

Hi, ich hab das jetzt so gemacht. Nun, wenn ich jetzt genau diese Datei sichern möchte kommt die Meldung:
Datei 'Kundendaten.mdb' konnte nicht geöffnet werden.

So sieht mein Button beim Sichern aus
Code:
procedure TForm1.Button2Click(Sender: TObject);
var
  NewFileName: string;
  Msg: string;
  NewFile: TFileStream;
  OldFile: TFileStream;
begin
  NewFileName := ExtractFilePath(Label1.Caption + '\') + ExtractFileName(Label3.Caption);
  Msg := Format('Copy %s to %s?', [Label2.Caption + Label3.Caption, NewFileName]);
  if MessageDlg(Msg, mtConfirmation, mbOKCancel, 0) = mrOK then
  begin
    OldFile := TFileStream.Create(Label3.Caption, fmOpenRead or fmShareDenyWrite);
    try
      NewFile := TFileStream.Create(NewFileName, fmCreate or fmShareDenyRead);
      try
        NewFile.CopyFrom(OldFile, OldFile.Size);
      finally
        FreeAndNil(NewFile);
      end;
    finally
      FreeAndNil(OldFile);
    end;
  end;
end;
Und so sieht der Code aus, wo ich den Ordner und das Laufwerk auswähle, aufdem ich die Datei sichern möchte:

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  Dir: string;
begin
  Dir := 'C:\Windows';
  if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then
    Label1.Caption := Dir;
end;
Was mach ich da noch falsch?

m-werk 1. Sep 2002 18:04

ICH HABS JETZT. Es funktioniert.

Ich hab was vergessen.
Es muß so aussehen:
Code:
...
begin
    OldFile := TFileStream.Create(Label2.Caption + Label3.Caption, fmOpenRead or fmShareDenyWrite);
    try
....
Ich hab vergessen (Label2.Caption +
einzufügen.

DANKE FÜR EURE HILFE

Luckie 1. Sep 2002 19:26

Na siehst du, es hilft schon, wenn man nur mal darüber spricht. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 Uhr.
Seite 2 von 2     12   

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