Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Verzeichnis anlegen +1 ? (https://www.delphipraxis.net/123755-verzeichnis-anlegen-1-a.html)

DXO 7. Nov 2008 19:15


Verzeichnis anlegen +1 ?
 
Nabend @all
Also bin grad dabei mir ein kleines Backup tool zu schnitzen
leider hab ich schon 2 Jahre nix mehr unter Delphi gemacht :oops:
Prog ist fertig aber es fehlt nur noch eine Routine

Delphi-Quellcode:
if not DirectoryExists(S+'\'+DateToStr(Date)) then MkDir(DateToStr(Date))
else ????
Jetzt brauchte ich aber eine Routine die mir ein Verzeichnis +1 anlegt wennn das aktuelle datum schon vorhanden ist
und immer soweiter wenn +1 Vorhanden dann +2

Bitte um Hilfe & Danke schonmal im vorraus

[edit=SirThornberry]Titel geändert - Hilfe braucht hier so ziemlich jeder :-) Mfg, SirThornberry[/edit]

mkinzler 7. Nov 2008 19:17

Re: Hilfe Verzeichnis anlegen +1 ?
 
Dann soll das datum vom Folgetag erzeugt werden? Wäre irgendwie komisch :gruebel:

DXO 7. Nov 2008 19:20

Re: Hilfe Verzeichnis anlegen +1 ?
 
Nein es soll entweder nur eine 1 Hinten oder vorn drangehangen werden
möglich ist auch 01-Datum <- (wenn vorhanden) 02-Datum

Edit: hmm Da wirft sich dann auch gleich die zweite Frage auf wie ich Rausbekommen welches Verzeichnis dann angelegt wurt :gruebel:

mkinzler 7. Nov 2008 19:38

Re: Hilfe Verzeichnis anlegen +1 ?
 
Versuch mal
Delphi-Quellcode:
function DirectoryCreate( Path: string): boolean;
var
    p, w, e: Integer;
    s: string;
begin
    if not DirectoryExists( Path) then
    begin
        MkDir(Path);
        result := True;
    end
    else
    begin
        p := Pos(  Path, '-');
        s := Copy( Path, p+1, Length( Path) - p);
        Val(s , w, e);
        if p > 0 then Path := Copy(Path, 1, p-1);
        Result := DirectoryCreate( Path +'-'+IntToStr(w));
    end;
end;

DXO 7. Nov 2008 19:44

Re: Hilfe Verzeichnis anlegen +1 ?
 
Versucht aber nix :cry:
muss das so aufgefufen werden ?

vllt liegts ja an meinem aufruf
Delphi-Quellcode:
 if not DirectoryExists(S+'\'+DateToStr(Date))
        then DirectoryCreate(S+'\'+DateToStr(Date)) ;

mkinzler 7. Nov 2008 19:53

Re: Hilfe Verzeichnis anlegen +1 ?
 
Kleine Korrektur:
Delphi-Quellcode:
function DirectoryCreate( Path: string): boolean;
var
    p, w, e: Integer;
    s: string;
begin
    w := 0;
    if not DirectoryExists( Path) then
    begin
        MkDir(Path);
        result := True;
    end
    else
    begin
        p := Pos(  '-', Path);
        if p > 0 then
        begin
            s := Copy( Path, p+1, Length( Path) - p);
            w := StrToIntDef(s , 0)+1;
            Path := Copy(Path, 1, p-1);
        end;
        Result := DirectoryCreate( Path +'-'+IntToStr(w));
    end;
end;
Aufruf
Delphi-Quellcode:
DirectoryCreate( DateToStr( date));

DXO 7. Nov 2008 19:59

Re: Hilfe Verzeichnis anlegen +1 ?
 
:bouncing4: :bounce1: :bouncing4:
Besten Dank ... Sollte wohl mal wieder öfter mit Delphi basteln

mkinzler 7. Nov 2008 20:01

Re: Hilfe Verzeichnis anlegen +1 ?
 
Zitat:

hmm Da wirft sich dann auch gleich die zweite Frage auf wie ich Rausbekommen welches Verzeichnis dann angelegt wurt
Paramter Path als var deklarieren

DP-Maintenance 7. Nov 2008 20:02

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Klatsch und Tratsch" nach "Object-Pascal / Delphi-Language" verschoben.

DXO 7. Nov 2008 20:05

Re: Hilfe Verzeichnis anlegen +1 ?
 
Zitat:

Zitat von mkinzler
Zitat:

hmm Da wirft sich dann auch gleich die zweite Frage auf wie ich Rausbekommen welches Verzeichnis dann angelegt wurt
Paramter Path als var deklarieren

:oops: ???

mkinzler 7. Nov 2008 20:08

Re: Verzeichnis anlegen +1 ?
 
Delphi-Quellcode:
function DirectoryCreate( var Path: string): boolean;
Dann enthält die Variable nach dem Aufruf den erzeugten Pfad

DXO 7. Nov 2008 20:14

Re: Verzeichnis anlegen +1 ?
 
Sorry aber Kapier ich nicht :wall:

mkinzler 7. Nov 2008 20:20

Re: Verzeichnis anlegen +1 ?
 
Die erste Version war Call-By-Value, es wurde also ein Wert an die Funktion übergeben, schreibt man ein var vor den Parameter, deklariert man ihn als Call-By-Reference, es wird also die Variable an sich nicht ihr wert übergeben.

Delphi-Quellcode:
var
   Pfad: string;
   erfolg: boolean;
...
  pfad := DateToStr( date));
  erfolg := DirectoryCreate( Pfad);
Die Variable Pfad im rufenden Programm ist nun identisch mit der Variable Path in der Funktion. Alle Änderungen an ihr betrifft also auch Pfad.

DXO 7. Nov 2008 20:44

Re: Verzeichnis anlegen +1 ?
 
So oder wie ?
Delphi-Quellcode:
function AskPath( var Path: string): boolean;
var
   Pfad: string;
   begin
   pfad := DateToStr( date);
   result:= DirectoryCreate( Pfad);
end;
Aber dann funktioniert der aufruf nicht

Delphi-Quellcode:
Label3.Caption:=InttoStr(AskPath( DateToStr( date);
Label3 soll erstmal als Anzeige dienen da ich keine lust hab ständig dateien hin un her zu moven


... kann nicht als Var Parameter weitergegeben werden

mkinzler 7. Nov 2008 20:52

Re: Verzeichnis anlegen +1 ?
 
Einfach so
Delphi-Quellcode:
   pfad := DateToStr( date);
   result:= DirectoryCreate( Pfad);
   label3.Caption := Pfad;

DXO 7. Nov 2008 21:09

Re: Verzeichnis anlegen +1 ?
 
hmm nö geht nicht er zeigt dann im Label nur das Aktuelle Datum an aber nicht den zulezt erstellen Ordner

mkinzler 7. Nov 2008 21:14

Re: Verzeichnis anlegen +1 ?
 
Du hast aber das var bei DirectoryCreate ergänzt?

DXO 7. Nov 2008 21:22

Re: Verzeichnis anlegen +1 ?
 
Ja jetzt garnicht gesehen ... so nächstes Prob
Delphi-Quellcode:
...
result:= (DirectoryCreate( Pfad)); // inkompatible Typen: 'String' und 'Boolean'
...

mkinzler 7. Nov 2008 21:25

Re: Verzeichnis anlegen +1 ?
 
Result ist ja vom typ Boolean. Der geänderte Pfad steht in Pfad!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz