AGB  ·  Datenschutz  ·  Impressum  







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

TFile, TDirectory vs. alte Funktionen

Ein Thema von bernau · begonnen am 12. Aug 2015 · letzter Beitrag vom 2. Sep 2015
Antwort Antwort
Seite 1 von 2  1 2      
Der schöne Günther

Registriert seit: 6. Mär 2013
6.212 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: TFile, TDirectory vs. alte Funktionen

  Alt 13. Aug 2015, 12:35
Wir sollten uns echt langsam mal zusammentun und Quellcode sammeln

http://www.delphipraxis.net/182276-d...-projekte.html

Ich habe auch mittlerweile eine Menge an Klassen die bestimmt auch andere mal brauchen könnten. Wir sollten wirklich mal ein bisschen Gehirmsturm für eine halbwegs einheitliche Strukturierung und Philosophie (z.B. Teeren und Federn bei "with", ...) und eine gemeinsame Library aufbauen.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.312 Beiträge
 
Delphi 12 Athens
 
#2

AW: TFile, TDirectory vs. alte Funktionen

  Alt 13. Aug 2015, 14:19
@rd3: Nenn mich altmodisch, aber bei einer Klassenfunktion, die sich FileInfo nennt, erwarte ich nicht die eigene Klasse instanziert zurück, sondern etwas was mir Informationen zu einer bestimmten Datei liefert.

Übrigens: with ist bäh

Bin echt überrascht, was Ihr so alles mit Dateifunktionen macht. In der Regel prüfe ich mit TFile.exists, ob eine Datei vorhanden ist. Meist wird dann eine andere Klasse (Z.b.TStringlist oder TMeinWuppdiObjekt )verwendet und dort gibt es die Funktion LoadFromFile. Muss also den Dateinamen sowiso übergeben. Mir fällt auf die schnelle nicht wirklich etwas ein, bei dem ich mehr als drei Funktionen von TFile hintereinander aufrufen würde.

Einzig die Implementation von TIniFile finde ich unglücklich, weil es als record deklariert ist. Eine Custom-Erweiterung mit eigenen Funktionen ist somit nicht wirklich praktikabel. Eine Klasse wäre da besser gewesen.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: TFile, TDirectory vs. alte Funktionen

  Alt 14. Aug 2015, 06:20
'with' ist nicht bä, sondern nur unpraktisch.

Nur um es noch einmal festzuhalten: TFile.Exists hat nichts, aber auch gar nichts mit OOP zu tun. TFile ist eine statische Klasse und das ist nichts anderes als eine Unit.

Der von alda skizzierte Ansatz wäre wirklich sehr angenehm, zumal ich dann auch auf der Ebene ordentliche (bzw. überhaupt) Unittests schreiben kann. Ansonsten ist das Mocken von 'TFile.Exists' auch nicht so einfach.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: TFile, TDirectory vs. alte Funktionen

  Alt 14. Aug 2015, 07:02
'with' ist nicht bä, sondern nur unpraktisch.
Ist doch völlig wurscht, ob man jetzt "bä" oder "böse" oder "besser nicht verwenden" sagt. Fakt ist, daß die Verwendung von with gewisse Risiken birgt, die zu schwer auffindbaren Fehlern führen können und deshalb tunlichst vermieden werden sollte.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#5

AW: TFile, TDirectory vs. alte Funktionen

  Alt 2. Sep 2015, 17:56
Fakt ist, daß die Verwendung von with gewisse Risiken birgt, die zu schwer auffindbaren Fehlern führen können und deshalb tunlichst vermieden werden sollte.
Fakt ist, daß Programmieren gewisse Risiken birgt, die zu schwer auffindbaren Fehlern führen können und deshalb tunlichst vermieden werden sollte.
Uli Gerhardt

Geändert von uligerhardt ( 2. Sep 2015 um 17:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.312 Beiträge
 
Delphi 12 Athens
 
#6

AW: TFile, TDirectory vs. alte Funktionen

  Alt 14. Aug 2015, 07:57
Nur um es noch einmal festzuhalten: TFile.Exists hat nichts, aber auch gar nichts mit OOP zu tun. TFile ist eine statische Klasse und das ist nichts anderes als eine Unit.
Ich habe nicht geschrieben, daß die jetzige Version OOP ist, sondern daß ich diese Schreibweise als sehr angenehm empfinde.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
alda

Registriert seit: 24. Mär 2014
Ort: Karlsruhe
93 Beiträge
 
Delphi XE6 Architect
 
#7

AW: TFile, TDirectory vs. alte Funktionen

  Alt 14. Aug 2015, 09:26
Der von alda skizzierte Ansatz wäre wirklich sehr angenehm, zumal ich dann auch auf der Ebene ordentliche (bzw. überhaupt) Unittests schreiben kann. Ansonsten ist das Mocken von 'TFile.Exists' auch nicht so einfach.
Genau, und die einzige Möglichkeit die Du für solche "prozeduralen" Ansätze hast, ist die komplette Unit im Testprojekt zu überschreiben. Das geht dann aber halt auch nur ein einziges Mal innerhalb dieses Testprojektes
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
637 Beiträge
 
Delphi XE6 Enterprise
 
#8

AW: TFile, TDirectory vs. alte Funktionen

  Alt 2. Sep 2015, 14:26
Übrigens: with ist bäh
So, wie es Delphi aktuell macht, ja. Aber ein "with" wie in
Delphi-Quellcode:
with X = TMySpecialType.Create(12, 'hallo', Self) do
  ShowMessage(X.AsString);
fände ich persönlich ne Super-Idee.


(ist aus Modula-3)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.052 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

AW: TFile, TDirectory vs. alte Funktionen

  Alt 2. Sep 2015, 15:27
Übrigens: with ist bäh
So, wie es Delphi aktuell macht, ja. Aber ein "with" wie in
Delphi-Quellcode:
with X = TMySpecialType.Create(12, 'hallo', Self) do
  ShowMessage(X.AsString);
fände ich persönlich ne Super-Idee.


(ist aus Modula-3)
Leider passt das nicht so ganz in Delphi wegen einigen Konzepten:

1. In Delphi müssen Variablen vordefiniert werden, es spart mir also nichtmal sonderlich viel Tiparbeit
2. In Delphi gibt es keinen kleineren Scope als eine Routine. Solch ein with sollte aber einen bilden, siehe using.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: TFile, TDirectory vs. alte Funktionen

  Alt 2. Sep 2015, 15:51
Dann müsste man halt mit compiler magic arbeiten.

Delphi-Quellcode:
with x = aClass.aSubClass.AnotherOne do
  x.Attribut := <IrgendWas>;
->

 aClass.aSubClass.AnotherOne.Attribut := <IrgendWas>; Oder noch besser den Scope verfeinern.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:38 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-2025 by Thomas Breitkreuz