Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Eine Zeile - Flag setzen wenn true/false? (https://www.delphipraxis.net/196642-eine-zeile-flag-setzen-wenn-true-false.html)

MicMic 6. Jun 2018 06:18

Delphi-Version: 5

Eine Zeile - Flag setzen wenn true/false?
 
Hallo,
es ist schwer zu suchen, wie das gehen würde. Irgendwo hatte ich es aber mal gesehen.
Vielelicht kennt sich hier jemand aus.

Ich habe z.B. 2 Variablen.
a=true, b=false oder a=1, b=0

Ich möchte dann z.B. fahidden (für a) und oder fasysfile (für b) setzen oder nicht setzen.

attr := faanyfile and not fahidden and not fasysfile;

Irgendwie geht das alles in einer Zeile (ohne IFs), wenn ich mich recht erinnere.
Nur wie?


Michael

DeddyH 6. Jun 2018 06:27

AW: Eine Zeile - Flag setzen wenn true/false?
 
Meinst Du so etwas? Effizientes Arbeiten mit Bitmasken

MicMic 6. Jun 2018 07:22

AW: Eine Zeile - Flag setzen wenn true/false?
 
Der Link ist jedenfalls brauchbar. Dankeschön.
Ich glaube, ich habe einen Einzeiler gesucht, den ich von PHP her kenne.
Dadurch konnte ich Google bemühen und habe "IfThen" entdeckt.

Die Angabe (2 Variablen) war falsch von mir. Ich brauche nur eine (Beispiel hs=true oder false) und habe dies nun für meine Zwecke umgesetzt.

FileAttrs := IfThen(hs,faAnyFile and not faHidden and not faSysFile,faAnyFile);

Michael

jaenicke 6. Jun 2018 07:27

AW: Eine Zeile - Flag setzen wenn true/false?
 
Wobei ich es für lesbarer halte nicht so viel in eine Zeile zu quetschen...

Ja, ich habe früher auch mal den Konditionaloperator bzw. in Delphi IfThen verwendet, bin aber dann schnell davon abgekommen als ich ernsthaft mit dem Quelltext gearbeitet habe und den auch später noch einmal gelesen und geändert habe.

p80286 6. Jun 2018 08:19

AW: Eine Zeile - Flag setzen wenn true/false?
 
Naja mit ein paar Klammern wäre es wohl lesbarer, und man wüßte sofort wofür es gut ist.


Gruß
K-H

freimatz 6. Jun 2018 12:38

AW: Eine Zeile - Flag setzen wenn true/false?
 
Vielleicht hat er den Auftrag obfuscaed code zu schreiben - dann passt das.
Oder er will sich den Arbeitsplatz sichern. :evil:

MicMic 6. Jun 2018 19:22

AW: Eine Zeile - Flag setzen wenn true/false?
 
Zitat:

Zitat von freimatz (Beitrag 1404038)
Vielleicht hat er den Auftrag obfuscaed code zu schreiben - dann passt das.
Oder er will sich den Arbeitsplatz sichern. :evil:

Ich verkaufe geheime Algorithmen für Millionen.
Ich brauch kein Arbeitsplatz
*lach*

Mir war nur eine Stelle in meinem Code etwas zu lang bzw. unübersichtlich.
Mit diesem Einzeiler schaut der Teil schöner aus :)

Frauen schminken sich, Männer machen den Code schöner :)

Michael


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 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