TFile, TDirectory vs. alte Funktionen
Ich habe es nun endlich geschafft. Bin von Delphi 2007 auf XE8 umgestiegen. Man schaut dann natürlich nach neuen Klassen, Datenstrukturen etc.
Beim Stöbern durch das Emba-Wiki habe ich folgende Typen gefunden TFile, TPath, TDirectory. Darunter sind etliche nützliche Klassenmethoden vorhanden. Vieles gibt es natürlich schon in der RTL. Z.B. ersetzt Tfile.exists die Funktion fileexists. Ich finde die neue Schreibweise sehr angenehm. So muss ich nur "TFile." eingeben und die Codevervollständigung gibt mir alle Funktionen, die ich mit Dateien machen kann. Seit wann gibt es diese Typen? Ich denke ich werde die neue Schreibweise übernehmen. Wie findet Ihr diese Schreibweise? |
AW: TFile, TDirectory vs. alte Funktionen
Natürlich nur das. Ist ja nicht nur eine andere (ordentliche) "Schreibweise", sondern viel Neues: Dinge wie TDirectory.GetFiles(..) machen das Leben doch gleich unheimlich viel angenehmer 8-)
|
AW: TFile, TDirectory vs. alte Funktionen
Zitat:
|
AW: TFile, TDirectory vs. alte Funktionen
Viele von diesen Strukturen sind von .net inspiriert (was es ja nicht schlecht macht)Wenn man sich die .net Struturen allerdings so anschaut, dann fragt man sich, wann das denn kommt, oder ob man das besser selber implementiert.
|
AW: TFile, TDirectory vs. alte Funktionen
Zitat:
|
AW: TFile, TDirectory vs. alte Funktionen
Zitat:
|
AW: TFile, TDirectory vs. alte Funktionen
Zitat:
|
AW: TFile, TDirectory vs. alte Funktionen
Zitat:
Warum ist "Interfaced" = "richtig"? Warum sollte ich erst etwas instanzieren müssen, wenn es auch so geht. Aber ich lerne gerne. Gib mal ein Beispiel, wie ein einfaches
Delphi-Quellcode:
bei dir aussieht.
TFile.exists(aFilePath)
|
AW: TFile, TDirectory vs. alte Funktionen
Es geht hier nicht um das einfache
Delphi-Quellcode:
. Diese Methoden sind im Übrigen in .net analog umgesetzt (mit einer statischen Klasse).
TFile.Exists
Aber man hat dort eben nicht aufgehört und auch noch so nette Dinge wie DirectoryInfo, DriveInfo, FileInfo dort implementiert, die das Leben einfacher machen. |
AW: TFile, TDirectory vs. alte Funktionen
Zitat:
Der Zugriff auf ein Dateisystem ist eigentlich dafür prädestiniert mit Abstraktionen/Schnittstellen zu arbeiten. So hat man dann nicht innerhalb seiner TFile.Exists(path) Methode seine 300 Zeilen Code (übertrieben) mit 40 IFDEFs (auch übetrieben :-)), sondern eine einheitliche, vollständige und korrekt benannte API für den Entwickler und dahinter die verschiedenen Implementierungen für OSX, Android, Windows, eben abhängig von der Plattform. Außerdem hast Du mit so statischen vorgehensweisen wie "TFile.Do*(Pfad)" auch immer das Problem, dass Du durch dein Programm hinweg einen String mit Dir rumschleppst, den Du (wenn Du nicht gerade alleine arbeitest) zur Sicherheit vor jeder Verarbeitung überprüfst/auseinander nimmst -> ExtractFileExt, ExtractFilePath, ExtractFileName etc pp. Einfacher wäre auch hier eine IFile Schnittstelle die eine Datei repräsentiert und auf der ich ein IFile.Exists, IFile.FileExt, IFile.Location etc aufrufen kann - nie wieder unnötige String/Pfad Verarbeitungen. Und wenn ich 1000-5000€ für die IDE/Sprache bezahle, dann erwarte ich auch dass ich für mein Geld was geboten bekomme - das ist zumindest meine Meinung ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 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