Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ordnerstruktur in Datenbank-Tabelle übertragen inkl. Verweis auf den "Parent" (https://www.delphipraxis.net/212593-ordnerstruktur-datenbank-tabelle-uebertragen-inkl-verweis-auf-den-parent.html)

erich.wanker 3. Mär 2023 10:06

Ordnerstruktur in Datenbank-Tabelle übertragen inkl. Verweis auf den "Parent"
 
Hallo,

hat jemand eine Idee wie ich eine Ordnerstruktur (oder ein gesamtes Laufwerk) in eine Datenbank-Tabelle einlesen kann
UND die 2 Feldwerte "parent_record_number" und "my_record_number" als Zuweisung erzeugen kann?

Ich würde gerne folgende Beispiels-Struktur einlesen:

c:\test
c:\test\unterordner
c:\test\eintrag1_txt
c:\test\unterordner\eintrag2_txt


in der Tabelle sollte nun stehen

Code:
"is_folder"   "name"         "my_record_number"   "parent_record_number"   "full_name"

1              test           100                  0                      c:\test
1              unterordner    101                  100                    c:\test\unterordner
0              eintrag1_txt   102                  100                    c:\test\eintrag1_txt
0              eintrag2_txt   103                  101                    c:\test\unterordner\eintrag2_txt

und wenn möglich - will ich dann NUR die Einträge (inkl. Subfolders) vom "c:\test\unterordner" aktualisieren

sowas wie: refresh_structure('c:\test\unterordner');



Hat jemand Ideen, Ansätze oder Hiweise wie ich sowas realisieren könnte?

Vielen Dank

Erich

erich.wanker 3. Mär 2023 12:32

AW: Ordnerstruktur in Datenbank-Tabelle übertragen inkl. Verweis auf den "Parent"
 
ok .. habs zusammengebracht ;-)


InsertDirectory('f:\erich\ordnertest',0,true);


Code:
 private
    { Private declarations }
    gl_in_dummy_integer:integer;
    lo_import_current:integer;
    new_inr            :Integer;

    function InsertDirectory(const Name: string; Ziel:Integer; insert:Boolean):Integer;
Delphi-Quellcode:
function TForm1.InsertDirectory(const Name: string; Ziel:Integer; insert:Boolean):Integer;
var
    F                  :TSearchRec;
    my_file_name       :String;

begin

    if FindFirst(Name + '\*', faAnyFile, F) = 0 then begin
        try
            repeat
                //if (F.Attr and faDirectory <> 0) then          //  - wenn ich NUR Directorys haben will
                //begin
                    if (F.Name <> '.') and (F.Name <> '..') then begin
                        if (NOT insert) then
                        begin
                            //Nur zählen für Abfrage
                            inc(gl_in_dummy_integer);
                        end else begin
                            //Ordner einfügen und INR abspeichern in gl_in_dummy_integer
                            inc(lo_import_current);
                            new_inr := new_inr+1;
                            //create_objects_pas.new_structure( new_inr, Ziel, F.Name, 1, new_inr);
                            memo1.Lines.Append(F.Name +'   '+inttostr(Ziel)+'   ' +inttostr(new_inr)+'   '+Name);

                            //Die INR des neuen Ordners zwischenspeichern damit wir die anderen Sachen da anhängen können!
                            gl_in_dummy_integer := new_inr;
                        end;
                        //showmessage('nr: '+inttostr(gl_in_dummy_integer)+' Ordner: '+Name + '\' + F.Name);
                        InsertDirectory(Name + '\' + F.Name, gl_in_dummy_integer, insert);
                    end;



                //end;
            until FindNext(F) <> 0;
            //RemoveDir(Name);
        finally
            FindClose(F);
        end;
    end;
    result := 0;
end;


Code:
Memo1
test 1    0    1    f:\erich\ordnertest
t1.txt   1    2    f:\erich\ordnertest\test 1
test 2    0    3    f:\erich\ordnertest
t2.txt   3    4    f:\erich\ordnertest\test 2
test 3    3    5    f:\erich\ordnertest\test 2
t3.txt   5    6    f:\erich\ordnertest\test 2\test 3


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