AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Unbekannter Teilstring in mehrern Strings
Thema durchsuchen
Ansicht
Themen-Optionen

Unbekannter Teilstring in mehrern Strings

Ein Thema von NickelM · begonnen am 1. Mai 2010 · letzter Beitrag vom 3. Mai 2010
Antwort Antwort
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#1

Unbekannter Teilstring in mehrern Strings

  Alt 1. Mai 2010, 23:11
Hallo zusammen,

Ich hab mal ne ganz dumme Frage. Es geht um folgendes:

Ich will in mehren Pfadstrings wie :

Code:
C:\Eigene Dateien\test.mp3
C:\Eigene Dateien\test2.mp3
C:\Eigene Dateien\meine musik\test.mp3
Den gemeinsamen Pfad String herausfinden. In dem Beispiel wäre es C:\Eigene Dateien\

Ich wollte jetzt mal fragen gibt es eine fertige Funktion dafür oder muss ich die mri selbstbauen.
Da ich jetzt nicht vermute das es die gibt, wie wäre da die eleganteste Lösung.
Mir würde einfallen mit einer for- Schleife jeden Char und jeden String druchzugehen (Strings sind in einer TStrinList)
und jeden Buchstaben druchzugehen und zu vergleichen. Da es aber schon knapp 200 Einträge sind würde das denk ich mir ziemlich lange dauern.

Gibst da nicht eine bessere Lösung?
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

Re: Unbekannter Teilstring in mehrern Strings

  Alt 1. Mai 2010, 23:15
Nimm dir den kürzesten String und Geh von Backslash zu Backslash und guck ob der Teilstring vom Start bis zum aktuellen Backslash in den anderen Strings enthalten ist
Lars
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Unbekannter Teilstring in mehrern Strings

  Alt 1. Mai 2010, 23:20
Okay danke hört sich schonmal gut an..werde ich mal ausprobieren danke.
Melde mich ob es geklappt hat und schnell geht.
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Unbekannter Teilstring in mehrern Strings

  Alt 2. Mai 2010, 00:02
Nicht unbedingt das Schellste, aber es läuft zuverlässig:
Delphi-Quellcode:
var
  SL: TStringList;
  S, S2: String;
  B: Boolean;
  i: Integer;
begin
  // input: SL
  // output: S
  S := SL[0] + '\';
  repeat
    S2 := S;
    S := ExtractFilePath(ExtractFileDir(S));
    if S = S2 then
    begin
      S := '';
      Break;
    end;
    B := True;
    for i := 1 to SL.Count - 1 do
    begin
      if Pos(S, SL[i]) = 0 then
      begin
        B := False;
        Break;
      end;
    end;
  until B;
  ShowMessage(S);
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

Re: Unbekannter Teilstring in mehrern Strings

  Alt 2. Mai 2010, 09:26
Zitat von himitsu:
Nicht unbedingt das Schellste, aber es läuft zuverlässig:
Solange SL nicht leer ist
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: Unbekannter Teilstring in mehrern Strings

  Alt 2. Mai 2010, 09:49
Zitat von DeddyH:
Zitat von himitsu:
Nicht unbedingt das Schellste, aber es läuft zuverlässig:
Solange SL nicht leer ist
Zuverlässig im Sinne von das Ergebnis liefert den richtigen Pfad ...
von vorhandener Fehlerprüfung/-behandlung hab ich nichts gesagt.


Aber wenn es sein muß,dann entweder diese Zeile
S := SL[0] + '\'; hierdurch ersetzen
Delphi-Quellcode:
if SL.Count = 0 then S := ''
else S := SL[0] + '\';
oder alles überspringen
Delphi-Quellcode:
if SL.Count > 0 then
begin
  S := SL[0] + '\';
  repeat
    ...
  until B;
end
else
  S := '';
ShowMessage(S);
Erst den kürzesten Pfad suchen hab ich absichtlich weggelassen,
denn entweder ist der erste Pfad schon der Kürzeste oder er wird solange gekürzt, bis es paßt.
$2B or not $2B
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Unbekannter Teilstring in mehrern Strings

  Alt 3. Mai 2010, 04:53
So ich habe eine Lösung gefunden. Danke trotzdem für den Code. Man weis ja nicht wann man ihn mal braucht
Da das kleine Porgramm nur für mich ist, hab ich mir anders geholfen. Einen klick mehr zumachen ist ja net so umständlich

Die Einträge sind in einer ListBox. Ich hab das jetzt so gemacht, das ich die Zeile makiere, die ich haben will (also dan Pfad)
er liest mir dan aus der Zeile den Pfad raus und wenn ich einen "Unterordner" haben will kann ich mit einem Button den PFad um eine Ornder zurück machen.
Das ändern läuft dann so ab, dass er in der ListBox alle Einträge durchsucht und dann ob der String vom Anfang bis zu der Größe des zuveränderten übereinstimmt.
Dies mach ich mit Copy.

Hoffe ist verständlich im groben.

Wenn wer sowas braucht kann mich ja pmen

Danke trotzdem nochmal an alle, für die Hilfe.
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 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