AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XCOPY mit Delphi nachbauen

Ein Thema von Hansa · begonnen am 30. Jul 2005 · letzter Beitrag vom 3. Aug 2005
Antwort Antwort
Seite 4 von 4   « Erste     234   
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#31

Re: XCOPY mit Delphi nachbauen

  Alt 3. Aug 2005, 10:47
Zitat von Hansa:
Das wäre die Mabuse-Version. Der müßte dann eben nachlesen, wo was hin muß.
Nein, das ist nicht die MaBuSE Version !!!

Lies mein Post oben mal bis zum Ende.

Ich sagte das folgendes besser ist:
Quelle := ExtractFilePath(Application.ExeName)+'..\Daten\'; Ich würde es nicht so machen wie Du es mir in den Mund legst.
(Außerdem habe ich im Gegensatz zu Anderen keine Angst vor Win32 API Funktionen!)

So das musste mal gesagt werden.

[edit]
ps: Abgesehen davon würde ich in einem Pojekt keine Hardcodes verwenden, sondern z.B. den Fehlertext als ResourceString oder wenigstens als Konstante in einer "*const.pas" Unit definieren.
[/edit]
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#32

Re: XCOPY mit Delphi nachbauen

  Alt 3. Aug 2005, 11:02
Jaja, das habe ich falsch hingeschrieben. 8) Das wäre die Version für Mabuse. In der INSTALL.TXT steht allerdings auch nur folgendes drin :

"Kopieren Sie den kompletten Ordner DEMO von der CD in ein Verzeichnis Ihrer Wahl."

Wer das nicht packt, auf den verzichte ich lieber freiwillig.
Gruß
Hansa
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#33

Re: XCOPY mit Delphi nachbauen

  Alt 3. Aug 2005, 11:38
So hier nochmal mal meine Variante:

Delphi-Quellcode:
function GetAppDevice: String;
var i, p: Integer; s: String;
begin
  i := 0;
  p := 0;
  s := ParamStr(0);

  if s <> 'then
  begin
    repeat
      inc(i);

      if s[i] = '\then
      begin
        p := i;
        break;
      end;
    until s[i] = #0;
  end;

  if p = 0 then Result := 'else
  Result := Copy(s, 1, p);
end;
Zur Sicherheit könntest du am Ende DirectoryExists() aufrufen.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#34

Re: XCOPY mit Delphi nachbauen

  Alt 3. Aug 2005, 13:13
Zitat von bigg:
So hier nochmal mal meine Variante:
...
Zur Sicherheit könntest du am Ende DirectoryExists() aufrufen.
Du hast trotzdem noch folgende Probleme:
Zitat von MaBuSE:
...Aber Vorsicht es gibt Leute (wie mich ) die auf ein CD-ROM Laufwerk auch direkt über den UNC Namen zugreifen, in dem Fall gibt es keinen Laufwerksbuchstaben des CD-ROMs.
z.B.: \\SERVER\CDROM\setup.exe -> ExtractFileDrive(Application.ExeName) = ''
Oder dem CD-ROM ist kein Laufwerksbuchstabe zugewiesen, aber das CD-ROM wurde in ein Verzeichnis gemountet.
z.B. C:\CDROM\setup.exe -> ExtractFileDrive(Application.ExeName) = 'C:'
C: ist aber nicht das CD-ROM Laufwerk, sondern die Festplatte (obwohl ja auf das CD-ROM zugegriffen wurde)
Oder der Kunde hat den Inhalt der CD ganz einfach in ein Verzeichnis auf der Festplatte kopiert....
Was ist wenn er dann Laufwerk C zurückgibt, aber das CD-ROM Laufwerk gar keinen eigenen Buchstaben hat und C: die Festplatte ist. ... ?

Prüfen ob der Laufwerksbuchstabe ein CD-ROM Laufwerk ist (Devicetyp) macht auch keinen Sinn, da ein Laufwerk über Netz oder einfach mit Subst gemoutet sein kann.
Code:
subst R: C:\CDROM
Das Laufwerk R: hat in dem Beispiel den Typ eines Netzwerklaufwerks.
(Obwohl es ja das in das Verzeichnis c:\CDROM gemountete lokale CD-ROM Laufwerk ist)

Das DirectoryExists sagt ja nur aus, das es das Laufwerk gibt, nicht was dahintewr steckt.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 16:31 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