Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Prüfen ob es sich um ein Bild handelt
schlumsch - Di 15.12.09 22:02
Titel: Prüfen ob es sich um ein Bild handelt
Hallo,
ich möchte die Files aus einem Dir prüfen ob es sich um ein Bild handelt und dann damit "etwas" machen. Nun kann ich mir mit extractfileext die Endung holen und daraufhin entscheiden ... soweit klar... aber da gibt es doch sicher auch eine andere Lösung oder?
Meine Idee ist die folgende:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Function isPicture(filename:String):boolean; begin try formdirectoryselect.image1.Picture.LoadFromFile(filename); result := true; except result := false; end; end; |
Alledings habe ich da das Problem, dass mein Programm leider dennoch unterbrochen wird und "abstürzt". Habe ich da was beim Exceptionhandling falsch gemacht?
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
Xentar - Di 15.12.09 23:14
Starte das Programm mal ohne Delphi..
Narses - Di 15.12.09 23:30
Moin!
schlumsch hat folgendes geschrieben : |
aber da gibt es doch sicher auch eine andere Lösung oder?
Meine Idee ist die folgende: |
Du willst nicht wirklich die Datei laden, um zu prüfen, ob das ein Bild ist, oder?! :shock: Das dürfte
der Performance-Killer schlechthin sein. :!:
Sicher ist die Methode die Dateierweiterung zu analysieren nicht 100%ig, aber auf jeden Fall um krasse Längen schneller! :nixweiss:
cu
Narses
schlumsch - Mi 16.12.09 00:07
Hmm echt? Und ich war schon stolz auf meine Idee mit dem Image *g* :)
elundril - Mi 16.12.09 02:41
Haben nicht so ziemlich alle Grafikformate einen Header den man auslesen könnte? Der wäre dann ja denk ich nicht so groß und man könnte ihn ja auch bequem auslesen.
lg elundril
jaenicke - Mi 16.12.09 02:56
schlumsch hat folgendes geschrieben : |
Hmm echt? Und ich war schon stolz auf meine Idee mit dem Image *g* :) |
Nur dass da auch nur an Hand der Dateierweiterung geprüft wird um welches Format es sich handelt. Und wenn diese zu keinem passt oder das Bild nicht entsprechend der Erweiterung geladen werden konnte, gibt es eine Exception.
Insofern kannst du auf diese Weise niemals ein Bild in einer falschen Erweiterung erkennen. Du kannst so maximal feststellen, wenn eine Datei mit einer bekannten Bild-Dateierweiterung nicht entsprechend geladen wird...
Und da Delphi nur sehr wenige Formate kennt, wirst du also nur sehr wenige der Bildformate so erkennen können. Von den genannten Performanceproblemen einmal ganz abgesehen, das wurde ja schon gesagt.
schlumsch - Mi 16.12.09 11:03
Hmkay dann entscheide ich einfach aufgrund der Dateiendung... gibt zwar ne größere if-scghleife aber was solls. Dank euch jedenfalls, lg
Tastaro - Mi 16.12.09 11:10
schlumsch hat folgendes geschrieben : |
Hmkay dann entscheide ich einfach aufgrund der Dateiendung... gibt zwar ne größere if-scghleife aber was solls. Dank euch jedenfalls, lg |
Es gibt keine If-Schleifen!!!!111einseinself
Das sind If-Anweisungen.
Beste Grüße
schlumsch - Mi 16.12.09 11:34
schön das du dich darüber aufregen kannst
elundril - Mi 16.12.09 11:47
find ich auch. und wenn du als Programmierer/Informatiker ernst genommen werden willst, solltest du solche Details beachten. Man kommt bei Kollegen sonst nicht soooo seriös rüber wie man vielleicht hofft/will.
lg elundril
schlumsch - Mi 16.12.09 12:13
Ja passt schon... in der eifer des Gefechtes hab ich das so fix hingekliert, mir ist schon klar das es sich bei if um keine schleife handelt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!