Autor Beitrag
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 26.09.04 14:16 
Hallo,
wie kann ich aus folgender dateiliste das hauptverzeichnis finden
Zitat:

TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\00.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\01.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\02.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\03.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\04.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\05.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\06.mid');

TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test1\01.txt');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test1\02.txt');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test1\03.txt');

TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test2\01.txt');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test2\02.txt');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test2\03.txt');

TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\01.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\02.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\03.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\04.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\05.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\06.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\07.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\08.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\09.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\10.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\11.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\12.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\13.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\14.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\15.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\16.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\17.mid');
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\18.mid');


es kann auch vorkommen, das "daten" nicht das hauptverzeichnis ist sondern evlt. auch eins drunter. ich dachte zuerst immer das lezte verzeichnis, aber das kommt ja auch nicht hin, also wie kann ich das hauptverzeichnis raußsuchen ohne das ich vohrer weiß welches das ist ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 28.09.04 13:23 
Per ExtractFilePath kriegst du schonmal das File weg. Anschliessend musst du nur alle Dateien einmal durchgehen und schauen, ob der Path-String ein Teilstring des aktuellen Pfades ist... :nut: Äh, irgendwie blöd beschrieben, besser mal Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Function HauptPfad(FileList:TStrings):String;
var i:integer;
begin
  Result:=ExtractFilePath(FileList[i]);
  for i:=1 to FileList.Count-1 do
    if Pos(ExtractFilePath(FileList[i]),HauptPfad)=1 then
      Result:=ExtractFilePath(FileList[i]);
end;


Cu,
Udontknow
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Sa 02.10.04 19:39 
fast, nur: was ist wenn es mehre hauptverzeichnise gibt wie in meinem beispiel du hast z.b. so eine verzeichnis strucktur:
Zitat:

d:\eigene\daten\test1
d:\eigene\daten\test2
d:\eienge\daten\delphi\test1
d:\eienge\daten\delphi\test2

das ist z.b. meine verzeichnisliste
bei den ersten beiden ist ja daten das "hauptverzeichnis" und bei den lezten beiden "delphi"

_________________
MFG
Michael Springwald, "kann kein englisch...."
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Sa 02.10.04 19:44 
Das ist logisch nicht schlüssig, da die von dir benannten Hauptverzeichnisse sich durch kein Kriterium von ihren darüberliegenden Verzechnissen unterscheiden. Wieso z.B. sollte nicht "daten" das Hauptverzeichnis für alle Einträge sein?

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 04.10.04 11:40 
Du suchst also das Verzeichnis, in dem man alle aufgelisteten Dateien finden kann. Gewissermassen den "längsten gemeinsamen Verzeichnisnamen" oder so. Also den Teil der Dateinamen, der am Anfang von allen Dateinamen steht. Probiers doch so (ist evtl. nicht das schnellste)
ausblenden Quelltext
1:
2:
3:
4:
- Nimm vom ersten Eintrag den teilstring vom Anfang bis zum ersten "\"
- Überprüfe, ob alle Dateinamen in der Liste mit diesem Teilstring anfangen
   - Wenn ja, mache weiter, und nehme den Teilstring bis zum nächsten "\"
   - Wenn nein, dann war das eine Verzeichnisebene zu tief, und das zuletzt gefundene war das Hauptverzeichnis

Kann man natürlich auch von hinten aufziehen. Oder hab ich dich falsch verstanden?

_________________
We are, we were and will not be.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Sa 09.10.04 23:38 
@.Chef
daten ist doch das hauptverzeichnis *G*

@Gausi
ich verstehe dich nicht

_________________
MFG
Michael Springwald, "kann kein englisch...."
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Sa 09.10.04 23:43 
Ich markiere den entscheidenden Teil mal fett:
mimi hat folgendes geschrieben:
fast, nur: was ist wenn es mehre hauptverzeichnise gibt wie in meinem beispiel du hast z.b. so eine verzeichnis strucktur:
Zitat:

d:\eigene\daten\test1
d:\eigene\daten\test2
d:\eienge\daten\delphi\test1
d:\eienge\daten\delphi\test2

das ist z.b. meine verzeichnisliste
bei den ersten beiden ist ja daten das "hauptverzeichnis" und bei den lezten beiden "delphi"


Oder doch so?
mimi hat folgendes geschrieben:
@.Chef
daten ist doch das hauptverzeichnis *G*


So, mimi, nun musst du dich entscheiden ... (Stell dir diese Herzblatt-Susi-Stimme dazu vor)

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 10.10.04 08:19 
ok, hast recht, aber wie machen das dann richtige packprogamme wie z.b. winACE ???

_________________
MFG
Michael Springwald, "kann kein englisch...."
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: So 10.10.04 08:53 
mimi hat folgendes geschrieben:
ok, hast recht, aber wie machen das dann richtige packprogamme wie z.b. winACE ???

Wie machen die was? Worauf willst du überhaupt hinaus? Platzsparendes Speichern einer Verzeichnisstruktur ist was völlig anderes als nur das Hauptverzeichnis zu finden.

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 10.10.04 08:58 
ja weiß ich auch. ich möchte nur ein hauptverzeichnis rausfinden aus einer verzeichnis liste die freiwählbar ist und die auch mehre hauptverzeichnise erhalten kann

_________________
MFG
Michael Springwald, "kann kein englisch...."
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: So 10.10.04 09:52 
Kapier ich nicht ^^
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 10.10.04 10:20 
Das mit den mehreren Hauptverzeichnissen kapier ich auch nicht. Aber ich kann nochmal meine Idee erläutern.
Nehmen wir an, du hast folgende Verzeichnisliste
ausblenden Quelltext
1:
2:
3:
4:
d:\eienge\daten\delphi\test1
d:\eienge\daten\delphi\test2 
d:\eigene\daten\test1
d:\eigene\daten\test2

Jetzt schauen wir uns zunächst das oberste verzeichnis an. "d:\". Ist dieses der Beginn jedes Dateinamen? ja. Also schauen wir uns den ersten Dateinamen weiter an. "d:\eienge\". Auch dies ist der Beginn jedes Dateinamen, wir können also noch weiter gehen. "d:\eienge\daten\". Alles klar, weiter. "d:\eienge\daten\delphi\". Die ersten beiden fangen so an, aber die letzten drei nicht. Also war das vorhergehende, nämlich "d:\eienge\daten\" das Hauptverzeichnis.

_________________
We are, we were and will not be.
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: So 10.10.04 10:47 
Wie machen das Packprogramme:
Man packt normalerweise einen Ordner, mitsamt seinen Unterordnern. Wähle ich jetzt in Winzip den Ordner "d:\eigene\daten\" aus und sage "packen", dann weiß Winzip, daß "d:\eigene\daten\" mein Hauptverzeichnis ist. Würde ich jetzt einen Packer nachprogrammieren, würde ich alle Dateien aus diesem Ordner suchen und "d:\eigene\daten\" abschneiden, was ich erhalte sind relative Pfade zu dem Zielort, zu dem ich auch später wieder entpacken würde. Aus
Zitat:
d:\eigene\daten\test1
d:\eigene\daten\test2
d:\eienge\daten\delphi\test1
d:\eienge\daten\delphi\test2
würde
Zitat:
test1
test2
delphi\test1
delphi\test2
, ich habe nur den Pfad abgeschnitten, den der User mir gesagt hat, den ich packen soll, also brauche ich mich gar nicht um das "Finden" eines gemeinsamen Verzeichnisses kümmern, ich mach' einfach das, was man von mir will.
Jetzt, wo ich die relativen Pfade habe, habe ich zwei Möglichkeiten: Entweder ich speichere den relativen Pfad zu jeder Datei (einfach, größerer Platzbedarf), oder ich lege mein Archivformat so an, daß in diesem ein Baum mit allen Verzeichnissen und Unterverzeichnissen liegt (komplexer, dafür platzsparender).

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 10.10.04 11:20 
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\00.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\01.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\02.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\03.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\04.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\05.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\06.mid'); 

TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test1\01.txt'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test1\02.txt'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test1\03.txt'); 

TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test2\01.txt'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test2\02.txt'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test2\03.txt'); 

TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\01.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\02.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\03.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\04.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\05.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\06.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\07.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\08.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\09.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\10.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\11.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\12.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\13.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\14.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\15.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\16.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\17.mid'); 
TA.AI.FileListe.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\18.mid');


ich habe so eine verzeichnis liste(kann z.b. auch vorkommen das sie nicht sotiert ist) aber ich glaube man müste einfach "nur" schauen (beim packen) ob verzeichnis gleich sind bzw. irgendwo unterscheiden sie sich ja immer und bis dahin ich werde das mal ausprobieren(gleich)



Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt.

_________________
MFG
Michael Springwald, "kann kein englisch...."
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 10.10.04 11:46 
Ähm, ich sehe dein Prblem nicht ganz (wenn es überhaupt noch besteht).
Gausi hat einen erstklassigen Lösungsansatz geliefert, der genau dein beschriebenes Problem behandelt.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 10.10.04 11:50 
so ich glaube ich habs:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
for i:=0 to f.count-1 do begin
    for t:=NumToken(f.strings[i],'\'downto 1 do begin
      str1:=GetToken(f.strings[i],'\',t-1);

      if i+1 <= f.count-1 then
        m:=+1
      else
        m:=0;

      str2:=GetToken(f.strings[i+m],'\',t-1);

      if str1 = str2 then begin
        if ListBox1.items.IndexOf(str1) = -1 then
        ListBox1.Items.add(str1);
        break;
      end;
    end;
  end;

_________________
MFG
Michael Springwald, "kann kein englisch...."
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 10.10.04 12:03 
so, ich habe die funktion noch etwas verbessert:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
 for i:=0 to f.count-1 do begin
    for t:=NumToken(f.strings[i],'\'downto 1 do begin
      str1:=GetToken(f.strings[i],'\',t-1);

      if i+1 <= f.count-1 then
        m:=+1
      else
        m:=0;

      str2:=GetToken(f.strings[i+m],'\',t-1);

      if str1 = str2 then begin
        lc:=0;

        dir:=F.Strings[i];
        for l:=pos(str1,dir) to StrLen(PChar(dir)) do begin
          if dir[l] = '\' then begin
            lc:=l;
            break;
          end;
        end;
        dir:=Copy(dir,lc,Length(f.strings[i]));
        if ListBox1.items.IndexOf(str1) = -1 then ListBox1.Items.add(dir);
        break;
      end;

    end;
  end;


nun pasiert genau das was ich wollte, evtl. kann man das noch optimieren, was meint ihr ???

_________________
MFG
Michael Springwald, "kann kein englisch...."
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 10.10.04 12:08 
@Elite
das problem war einfach das ich nicht wuste wie ich aus einer langen verzeichnise liste das hauptverzeichnis finde, aber das habe ich jetzt *G*

_________________
MFG
Michael Springwald, "kann kein englisch...."
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 07.11.04 11:40 
es geht leider immer noch nicht so recht, als ich letzten diese funtkion einsetzten wollte sind mir noch einige fehler aufgefallen z.b. solche:
ich habe z.b. so eine datei liste:
Zitat:

f.Add('D:\Daten\eigene\delphi\Archiver\daten\test1\01.txt');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test1\02.txt');
f.Add('D:\Daten\eigene\delphi\Archiver\test1\03.txt');

f.Add('D:\Daten\eigene\delphi\Archiver\daten\00.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\01.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\02.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\03.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\04.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\05.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\06.mid');

f.Add('D:\Daten\eigene\delphi\Archiver\daten\test2\01.txt');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test2\02.txt');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test2\03.txt');

f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\01.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\02.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\03.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\04.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\05.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\06.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\07.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\08.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\09.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\10.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\11.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\12.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\13.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\14.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\15.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\16.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\17.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\18.mid');


meine funktion würde daraus folgendes machen:
Zitat:

f.Add('D:\Daten\eigene\delphi\Archiver\daten\test1\01.txt');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test1\02.txt');
f.Add('D:\Daten\eigene\delphi\Archiver\test1\03.txt');

f.Add('D:\Daten\eigene\delphi\Archiver\daten\00.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\01.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\02.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\03.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\04.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\05.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\06.mid');

f.Add('D:\Daten\eigene\delphi\Archiver\daten\test2\01.txt');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test2\02.txt');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test2\03.txt');

f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\01.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\02.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\03.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\04.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\05.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\06.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\07.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\08.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\09.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\10.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\11.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\12.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\13.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\14.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\15.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\16.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\17.mid');
f.Add('D:\Daten\eigene\delphi\Archiver\daten\test3\18.mid');


meine funktion war folgende:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
  for i:=0 to f.count-1 do begin
    str1:='';
    str2:='';
    dir:='';
    for t:=NumToken(f.strings[i],'\'downto 1 do begin
      str1:=GetToken(f.strings[i],'\',t-1);

      if i+1 < f.count-1 then
        m:=+1
      else
        m:=0;

      if NumToken(f.strings[i+m],'\') <= NumToken(f.strings[i],'\'then
        m1:=NumToken(f.strings[i+m],'\')-1
      else
        m1:=NumToken(f.strings[i],'\')-1;

      str2:=GetToken(f.strings[i+m],'\',m1);

    ///  ShowMessage(str1 + #13 + str2 + #13 + f.strings[i]);
      if str1 = str2 then begin
        dir:=F.Strings[i];

        dir:=Copy(dir,pos(str2,dir),Length(f.strings[i]));
//        ShowMessage(Dir + #13 + str1);

        if ListBox1.items.IndexOf(str1) = -1 then ListBox1.Items.add(dir);
        break;
     end;

    end;
  end;

_________________
MFG
Michael Springwald, "kann kein englisch...."
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: So 07.11.04 11:42 
nachtrag(ich konnte meinen beitrag nicht mehr bearbeiten nach dem ich ihn gesendet hatt, keine anaung warum)
meine funktion würde daraus folgendes machen:
Zitat:

test1\01.txt
test1\02.txt
daten\00.mid
daten\01.mid
daten\02.mid
daten\03.mid
daten\04.mid
daten\05.mid
daten\06.mid
test2\01.txt
test2\02.txt
test3\01.mid
test3\02.mid
test3\03.mid
test3\04.mid
test3\05.mid
test3\06.mid
test3\07.mid
test3\08.mid
test3\09.mid
test3\10.mid
test3\11.mid
test3\12.mid
test3\13.mid
test3\14.mid
test3\15.mid
test3\16.mid
test3\17.mid
test3\18.mid

_________________
MFG
Michael Springwald, "kann kein englisch...."