AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein faArchive, faSysFile is specific to a platform
Thema durchsuchen
Ansicht
Themen-Optionen

faArchive, faSysFile is specific to a platform

Ein Thema von Rollo62 · begonnen am 18. Feb 2016 · letzter Beitrag vom 19. Feb 2016
Antwort Antwort
Rollo62

Registriert seit: 15. Mär 2007
4.164 Beiträge
 
Delphi 12 Athens
 
#1

faArchive, faSysFile is specific to a platform

  Alt 18. Feb 2016, 16:25
Hallo zusammen,

die Fileattribute sind Platformspezifisch, so wie so gut.

Delphi-Quellcode:
  faInvalid = -1;
  faReadOnly = $00000001;
  faHidden = $00000002 platform; // only a convention on POSIX
  faSysFile = $00000004 platform; // on POSIX system files are not regular files and not directories
  faVolumeID = $00000008 platform deprecated; // not used in Win32
  faDirectory = $00000010;
  faArchive = $00000020 platform;
  faNormal = $00000080;
  faTemporary = $00000100 platform;
  faSymLink = $00000400 platform; // Available on POSIX and Vista and above
  faCompressed = $00000800 platform;
  faEncrypted = $00004000 platform;
  faVirtual = $00010000 platform;
  faAnyFile = $000001FF;
Aber wen kann die Kommentare ergänzen für die restlichen Attribute ?
Bedeutet Platform immer MsWindows ?

Ich würde das gerne beim Aufruf auskommentieren, damit die blöden Warnings weg sind,
bin mir aber nicht sicher ob das nicht doch zuviel des Guten bei OSX, Android oder iOS etc. ist.

So in der Art:
Delphi-Quellcode:
  faInvalid
  , faReadOnly
{$IF    DEFINED(OSX) or DEFINED(ANDROID)} // ist ANDROID Posix ???
  , faHidden // only a convention on POSIX
{$ENDIF DEFINED(OSX) or DEFINED(ANDROID)}
  , faSysFile // on POSIX system files are not regular files and not directories
{$IF    DEFINED(MSWINDOWS)}
  , faVolumeID // not used in Win32
{$ENDIF DEFINED(MSWINDOWS)}
  , faDirectory
{$IF    DEFINED(MSWINDOWS)}
  , faArchive
{$ENDIF DEFINED(MSWINDOWS)}
  , faNormal
  , faTemporary //???
  , faSymLink //???
  , faCompressed //???
  , faEncrypted //???
  , faVirtual //???
  , faAnyFile
Kennt sich vielleicht jemand damit aus und hat einen Tip wo man findet was "platform" wirklich bedeutet ?

Rollo
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: faArchive, faSysFile is specific to a platform

  Alt 18. Feb 2016, 17:41
http://stackoverflow.com/questions/3...-to-a-platform

Gibt es eventuell plattformunabhängige Funktionen, die du verwenden kannst?
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.164 Beiträge
 
Delphi 12 Athens
 
#3

AW: faArchive, faSysFile is specific to a platform

  Alt 18. Feb 2016, 19:52
Hallo bra,

ja dankesehr, Warnings ausschalten geht auch.

Ich hatte das schon gefunden aber so verstanden das es nur fürs ganze Unit geht.
Aber im StackOverflow sieht es so aus das man auch bestimmte Bereiche ausschalten kann.

Werds morgen mal ausprobieren.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#4

AW: faArchive, faSysFile is specific to a platform

  Alt 19. Feb 2016, 10:15
"blöd" ist halt, dass man bei platform nicht angeben kann, für was das gültig ist, damit die Warnung nur da kommt, wo nicht.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: faArchive, faSysFile is specific to a platform

  Alt 19. Feb 2016, 11:32
Blöd ist es überhaupt nicht.

Es gibt so einige Dinge, die man im Code veranstalten kann, die aber unter bestimmten Umständen ein seltsames oder anderes Verhalten an den Tag legen.
Delphi-Quellcode:
var
  aStr: AnsiString;
  uStr: UnicodeString;

aStr := uStr; // <- Warnung
Will ich diese Warnung wegbekommen, dann schreibt man
Delphi-Quellcode:
var
  aStr: AnsiString;
  uStr: UnicodeString;

aStr := AnsiString( uStr ); // <- keine Warnung
Jetzt sollte ich dem Compiler damit nicht gesagt haben
Zitat:
LMAA
sondern
Zitat:
Ich bin mir völlig bewusst, dass es zu einem Datenverlust kommen könnte, aber ich kann gewährleisten, dass es nicht dazu kommt (alle Zeichen sind auch mit ANSI darstellbar), bzw. der Datenverlust ist hier unerheblich und wird die Funktion des Programms nicht beeinflussen.
Mit den FileAttributes verhält sich das genauso - nur muss man hier eben an der entsprechenden Codestelle die Warnung ab- und direkt danach wieder einschalten. In der Regel wird man das dann so implementieren
Delphi-Quellcode:
{$IFDEF MSWINDOWS}
{$WARN SYMBOL_PLATFORM OFF}

// Jetzt die entsprechenden Attribute verwenden

{$WARN SYMBOL_PLATFORM ON}
{$ELSE}
  raise ENotImplementedException.Create( 'Das soll wer anders machen :o)' );
{$ENDIF}
Dadurch dokumentiert man, dass man sich mit der Plattform Windows auseinander gesetzt hat. Alle anderen Plattformen sind nicht berücksichtigt und müssten (wenn die dort verwendet werden sollen) nochmal genau geprüft werden.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (19. Feb 2016 um 11:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#6

AW: faArchive, faSysFile is specific to a platform

  Alt 19. Feb 2016, 12:11
Blöd ist es überhaupt nicht.
Doch.

Wenn ich nur z.B. (aktuell) für Windows programmiere, dann sind diese Meldungen vollkommen fehl am Platz, da sie "mein" System nicht betreffen.
"Warnungen" nun abzuschalten ist hier auch die falsche Lösung, denn dann bekomm ich da keine Meldungen mehr, wo sie mich betreffen.

faArchive = $00000020 platform pfWin32 or pfWin64; so könnte man aber nur geziehlt das deaktivieren können {$WARN SYMBOL_PLATFORM_WIN32 OFF} , was für sein System uninteressant ist.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (19. Feb 2016 um 12:14 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:46 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 by Thomas Breitkreuz