Einzelnen Beitrag anzeigen

DevilsCamp
(Gast)

n/a Beiträge
 
#9

Re: letzen Ordnernamen eines Pfades ermitteln

  Alt 28. Okt 2005, 09:21
Siehe Kommentare im Code:

Delphi-Quellcode:
function gibletztenOrdner(komplett: String): String; // es muss der ganze Pfad mit Dateiname übergeben werden
var //
    Teilstring: String;
    p1: integer;
    p2: integer;
    c: integer;
    i: integer;
    Ergebnis: String;
begin
{
  'c:\test\Gruppe1\Datei.txt'
                  p_2-letzter Backslash
          p_1-vorletzter Backslash
          |---c---|
}


  for i := 0 to length(komplett) - 1 do begin
    p1 := pos('\',komplett); // liefert vorletzten Backslash


// Da du immer den gesamten String überprüfst, wirst du immer den ERSTEN Backslah finden (DevilsCamp)
// Kleiner Tip: Gehe die Schleife von Length(komplett) bis 1 runter und Prüfe, ob komplett[i]='\'. Sicher dann die Position des zweiten '\'



//hier fehlt noch was...

  end;



  p2 := pos('\' + extractfilename(komplett),komplett); // liefert letzten Backslash

// Das liefert tatsächlich die Position des letzten Backslashs (DevilsCamp)

  c := p2 - P1;

  Ergebnis := copy(komplett,p1,c);
// Hier würde das vorletzte \ mit im Ergebnis stehen. Wenn dies aber mit im Ergebnis sein soll, dann ist es richtig (DevilsCamp)
  result := Ergebnis;
end;
So wie der Code geschrieben wurde, bekommst du immer den String, der zwischen dem ersten und dem letzten Backslash steht (inkl. dem ersten Backslash)
  Mit Zitat antworten Zitat