| Autor |
Beitrag |
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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
      
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: 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...  Äh, irgendwie blöd beschrieben, besser mal Code:
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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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
      
Beiträge: 1112
|
Verfasst: 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
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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)
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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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
      
Beiträge: 1112
|
Verfasst: 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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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
      
Beiträge: 1112
|
Verfasst: 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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: So 10.10.04 09:52
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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
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
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: 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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: So 10.10.04 11:20
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 Christian S.: Delphi-Tags hinzugefügt.
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: So 10.10.04 11:50
so ich glaube ich habs:
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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: So 10.10.04 12:03
so, ich habe die funktion noch etwas verbessert:
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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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:
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);
if str1 = str2 then begin dir:=F.Strings[i];
dir:=Copy(dir,pos(str2,dir),Length(f.strings[i]));
if ListBox1.items.IndexOf(str1) = -1 then ListBox1.Items.add(dir); break; end;
end; end; |
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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...."
|
|