AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Einige nützliche Dateifunktionen

Ein Thema von Mattin · begonnen am 25. Nov 2003 · letzter Beitrag vom 26. Nov 2003
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

Re: Einige nützliche Dateifunktionen

  Alt 25. Nov 2003, 16:19
Es tut mir leid, aber ich falle auch mal über diese Codes her.

Mal abgesehn davon, das es schon fertige Funktionen in Delphi gibt, sind diese Codes auch noch extrem ineffizient.

Oder ist noch keinem aufgefallen, das verschiedene Befehle sinnloserweise abgearbeitet werden?

Gegen UeberpruefeSlash kann mal nicht sagen, das ist schon nicht schlecht gemacht.
Wobei das so schon etwas besser währe:
Delphi-Quellcode:
Function UeberpruefeSlash(Const Pfad: String): String;
  Begin
    If (Length(Pfad) > 0) AND (Pfad[Length(Pfad)] <> '\') Then
      Result := Pfad + '\'
    Else
      Result := Pfad;
  End;
sonst aber nicht schlecht.


Nehmen wir uns aber mal GetFileName vor:
Delphi-Quellcode:
Function GetFileName(Const FileName: String): String;
  Var I, S: Integer;

  Begin
    S := 0;
    For I := Length(FileName) downto 1 do
      IF S = 0 Then Begin
        If FileName[I] = '\Then S := I;
        Result := Copy(FileName, S + 1, Length(FileName) - S + 1);
      End;
  End;
Bei FileName = "C:\Test\Dat.ei" kommt dann sowas raus:
(hab mal versucht die Zeilen in ihrer Abarbeitungsreihenfolge aufzuschreiben)
Delphi-Quellcode:
For I := ... (* I = 14 *)
IF 0{S} = 0 Then Begin
  If 'i'{FileName[I]} = '\Then ...
  Result := 'C:\Test\Dat.ei'{Copy(FileName, 0 + 1, 14 - 0 + 1)};
End;
For I := ... (* I = 13 *)
IF 0{S} = 0 Then Begin
  If 'e'{FileName[I]} = '\Then ...
  Result := 'C:\Test\Dat.ei'{Copy(FileName, 0 + 1, 14 - 0 + 1)};
End;
For I := ... (* I = 12 *)
IF 0{S} = 0 Then Begin
  If '.'{FileName[I]} = '\Then ...
  Result := 'C:\Test\Dat.ei'{Copy(FileName, 0 + 1, 14 - 0 + 1)};
End;
For I := ... (* I = 11 *)
IF 0{S} = 0 Then Begin
  If 't'{FileName[I]} = '\Then ...
  Result := 'C:\Test\Dat.ei'{Copy(FileName, 0 + 1, 14 - 0 + 1)};
End;
For I := ... (* I = 10 *)
IF 0{S} = 0 Then Begin
  If 'a'{FileName[I]} = '\Then ...
  Result := 'C:\Test\Dat.ei'{Copy(FileName, 0 + 1, 14 - 0 + 1)};
End;
For I := ... (* I = 9 *)
IF 0{S} = 0 Then Begin
  If 'D'{FileName[I]} = '\Then ...
  Result := 'C:\Test\Dat.ei'{Copy(FileName, 0 + 1, 14 - 0 + 1)};
End;
For I := ... (* I = 8 *)
IF 0{S} = 0 Then Begin
  If '\'{FileName[I]} = '\Then S := 8{I};
  Result := 'Dat.ei'{Copy(FileName, 8 + 1, 14 - 8 + 1)};
End;
For I := ... (* I = 7 *)
IF 0{S} = 8 Then ... (* FileName[7] = 't' *)
For I := ... (* I = 6 *)
IF 0{S} = 8 Then ... (* FileName[6] = 's' *)
For I := ... (* I = 5 *)
IF 0{S} = 8 Then ... (* FileName[5] = 'e' *)
For I := ... (* I = 4 *)
IF 0{S} = 8 Then ... (* FileName[4] = 'T' *)
For I := ... (* I = 3 *)
IF 0{S} = 8 Then ... (* FileName[3] = '\' *)
For I := ... (* I = 2 *)
IF 0{S} = 8 Then ... (* FileName[2] = ':' *)
For I := ... (* I = 1 *)
IF 0{S} = 8 Then ... (* FileName[1] = 'C' *)
  • Result wird ständing neu gesetzt.
  • selbst wenn das Ergebnis gefunden wurde, wird die Schleife noch bis zum Ende ausgeführt
    (bei langen Verzeichnissen, ist das schon ein ganzes Stückchen)
  • ...


http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif
Ein Therapeut entspricht 1024 Gigapeut.
  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 02:14 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 by Thomas Breitkreuz