Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ordner selbständig erstellen lassen (https://www.delphipraxis.net/105810-ordner-selbstaendig-erstellen-lassen.html)

MCOP2001DE 30. Dez 2007 17:43


Ordner selbständig erstellen lassen
 
Hallo

Ich habe folgendes Problem.
Ich möchte das beim Anlagen eines neuen Kunden in einer Datenbank gleizeitig ein Ordner mit dem Namen des Kunden Angelegt wird.
Der Pfad wo der neue Ordner angelegt wird kann nicht fest angegeben werden denn der soll veränderbar sein.
das ich mit MKDIR den Ordner erstellen kann habe ich bereits rausgefunden wenn ich jetzt aber das Programm Compiliere bekomme ich die Meldung das String und Pansichar nicht kompatible sind.

hier mal der Code:
Delphi-Quellcode:
// Neuen Kundenordner anlegen
    if Neu = 'Ja' then
     begin
       ini := TInifile.Create(ExtractFilePath(ParamStr(0))+'Sys.ini');
       try
          Root      := ini.ReadString('KBPfad', 'Dir', Root);
       finally
          ini.Free;
       end;
       SetCurrentDirectory(Root);
       MKDir (Mainframe.Dateneingabe.DB_Kunden_Name.Text);
       Neu := 'Nein';
     end;
weiß jemand ne Lösung? :coder2:

Mirko

DeddyH 30. Dez 2007 17:46

Re: Ordner selbständig erstellen lassen
 
Mach mal aus SetCurrentDirectory SetCurrentDir.

MCOP2001DE 30. Dez 2007 17:53

Re: Ordner selbständig erstellen lassen
 
Hallo DeddyH

Danke für die schnell Antwort.
Das war der Fehler jetzt klappt es

Danke
:thumb:

Mirko

Christian Seehase 30. Dez 2007 18:16

Re: Ordner selbständig erstellen lassen
 
Moin Mirko,

ich finde das etwas optimistisch programmiert ;-)

Falls jemand die Sys.ini von Hand geändert hat, kannst Du Dir so Probleme einhandeln.

Ich würd's eher so machen:

Delphi-Quellcode:
       ini := TInifile.Create(ExtractFilePath(ParamStr(0))+'Sys.ini');
       try
          // Erst einmal sicherstellen, dass der eingelesene Wert auf \ endet
          Root      := IncludeTrailingPathDelimiter(ini.ReadString('KBPfad', 'Dir', Root));
       finally
          ini.Free;
       end;

       // Schlägt ForceDirectories fehl, stimmt was mit dem Pfad nicht
       // z.B., weil die Ini-Datei manipuliert wurde, oder Rechte fehlen
       if ForceDirectories(Root+Mainframe.Dateneingabe.DB_Kunden_Name.Text) then begin
         Neu := 'Nein';
       end else begin
         // Fehler verarbeiten
       end;


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