AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Effizientes Arbeiten mit Bitmasken
Tutorial durchsuchen
Ansicht
Themen-Optionen

Effizientes Arbeiten mit Bitmasken

Ein Tutorial von DeddyH · begonnen am 2. Jul 2007 · letzter Beitrag vom 15. Sep 2007
 
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.125 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Effizientes Arbeiten mit Bitmasken

  Alt 3. Jul 2007, 14:06
Moin Deddy,

ich hätte da auch noch zwei kleine Ergänzungen
Zum einen struktureller Natur:
Da das Abfragen/Setzen/Löschen wohl den Regelfall darstellen, Negieren wohl nur sehr selten vorkommt (ich kann mich nicht erinnern das bei Flags je gebraucht zu haben), halte ich es für sinnvoll dies erst am Ende zu nennen.

Zum anderen:
Ich sehe oft, dass Flags mit + und - bearbeitet werden, was sehr leicht zu Fehlern führen kann.
Der Grund für mögliche Fehler ist recht einfach:
Wenn eine Konstante bereits mehrere Flags kombiniert (Beispiel: faAnyFile, wie es bei FindFirst benutzt wird) erhält man durch Addition/Subtraktion mit anderen Flags andere Werte als erwartet, wohingegen die Verwendung von or/and not sich hier neutral verhält.
Diese unerwarteten Werte können jetzt verschiedene Effekte erzeugen:
  • Der Funktionsaufruf schlägt komplett fehl (i.d.R. mit Fehler 87, falscher Parameter).
    Das wäre nicht weiter tragisch, man muss halt den Fehler finden.
  • Man fragt etwas ab, und erhält nicht das gewünschte Ergebnis.
    Je nachdem, inwieweit das Ergebnis das Programm steuert, wird auch dieses Fehler in erster Linie mal ärgerlich sein, ansonsten aber nicht weiter schlimm.
  • Der Funktionsaufruf macht etwas ganz anderes als man möchte. Es wird u.U. eine Datei neu erstellt, obwohl man sie nur öffnen wollte.
    Das nur mal als fiktives Beispiel, aber es zeigt, wohin es führen kann.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
 


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 16:56 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