[Es gibt hier keine Compiler-Kategorie, daher bei
IDE]
1. Bei Erstellung einer FMX-App gibt mir der Compiler einen Warnhinweis für die Verwendung von "FileGettAttr" aus, die Verwendung sei plattformspezifisch.
Wenn man mal in System.Sysutils reinsieht, sieht man aber, dass per IFDEF nach Windows und MAC/Linus-Plattform unterschieden wird. Warum erhalte ich also diesen Hinweis?
2. Für
if s[i] in LongForbiddenChars then begin
erhalte ich die Warnung "[dcc32 Warnung] hs_tools_fmx.pas(600): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt.
Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der Unit 'SysUtils' in Betracht.
(OK, stimmt, könnte Probleme bei
Unicode-Pairs geben)
Bei
Charinset steht:
Hinweis:
Es wird empfohlen, dass - wenn möglich - die Klasse TCharacter (die Unicode-fähig ist) zur Überprüfung verwendet wird, ob ein Zeichen in eine bestimme Kategorie, wie z.B. Ziffern oder Buchstaben, fällt.
Bei
TCharacter steht:
Warnung:
TCharacter ist veraltet. Bitte verwenden Sie TCharHelper.
Nur wie verwende ich nun TCharHelper? Die Hilfe ist ziemlich mau
( würde gerne das hier mit TCharhelper realisieren:
Delphi-Quellcode:
function hs_GetValidFilename(const Filename: string): String;
var
i: Integer; s: String; ch: Char;
begin
S := FileName;
for i:=1 to length(s) do begin
if s[i] in LongForbiddenChars then begin
s[i] := '_';
end;
end;
Result:= s;
end;