![]() |
Unit ConvertCheck
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ab und zu ergibt sich mal die Frage, wie Strings auf Integerwerte überprüfen, Zeichen in Strings ersetzen oder Werte umwandeln. Für die von mir am meisten benötigten Funktionen hab' ich mir 'ne Unit geschrieben. Funktionen : // function IsInteger(S: String): Boolean; // prüft einen String auf Vorhandensein eines Integer-Wertes // function IsCurrency(S: String): Boolean; // prüft einen String auf Vorhandensein eines Currency-Wertes // function IsExtended(S: String): Boolean; // prüft einen String auf Vorhandensein eines Extended-Wertes // function IsNumeric(S: String): Boolean; // prüft einen String auf Vorhandensein der Ziifern 0...9 // function IsColor6(S: String):Boolean; // prüft einen String auf Vorhandensein eines Color-Wertes ($000000 .. $FFFFFF) // function IsColor8(S: String):Boolean; // prüft einen String auf Vorhandensein eines Color-Wertes ($00000000 .. $FFFFFFFF) // function IsString(S: String; A: String): Boolean; // prüft einen String(S) auf die Verwendung der Zeichen im String(A) // gibt True zurück, wenn der String(S) nur aus den Zeichen im String(A) besteht // function IsNotString(S: String; A: String): Boolean; // prüft einen String(S) auf die Verwendung der Zeichen im String(A) // gibt True zurück, wenn der String(S) ein / oder mehrere Zeichen aus String(A) enthält // function IsIdent(S: String; A: String): Integer; // vergleicht String(S) und String(A) // gibt die Anzahl unterschiedlicher Chars zurück // function CheckInvalidChars(const FilePath: String): String; // prüft [FilePath] auf nicht verwendbare Chars und ersetzt diese // Prüfung für Pfad : [RePath], Ersetzt mit [ReP] // Prüfung für File : [ReFile], Ersetzt mit [ReF] // Rückgabewert ist der bearbeitete String // function IntToHexString(n : Integer; num : Integer) : String; // konvertiert einen Integerwert in einen Hex-Wert // num gibt die Länge des Strings an (Führende Nullen) // mit num = 0 wird die Länge automatisch gesetzt // function HexToInt(n : String): Integer; // konvertiert einen Hex(-String) zu Ineger // der Hex-Wert kann mit oder ohne führendes '$'-Zeichen eingegeben werden // function RGBToColor(R, G, B : Byte): TColor; // konvertiert einen RGB-Wert in TColor; // procedure ColorToRGB(Const C : TColor; var R, G, B: Byte); // konvertiert einen TColor-Wert in R-G-B-Werte // function IntToBin(n : Integer): String; // konvertiert einen Integer-Wert in einen Binär-Wert // function BinToInt(b : String): Integer; // konvertiert einen Binär-Wert in einen Integer-Wert |
Re: Unit ConvertCheck
function IsColor8(S: String):Boolean;
* Result:=(C=0) and (D<=$FFFFFFFF); D<=$FFFFFFFF liefert immer True, da es derzeit den gesamten Wertebereich von Cardinal abdeckt ... OK im (noch nicht existierenden) 64-Bit-Delphi würde diese Prüfung das gewünschte Ergebnis liefern, aber da könnte man statt Cardinal auch LongWord verwenden und die Überlaufprüfung aktivieren, dann klappts überall :angel: function CheckInvalidChars(const FilePath: String): String; gibt es einen Grund, warum !, §, $, %, & und # verboten sind? nja egal. für's Aufteilen Dateiname/Pfad, könnte man eventuell auf die vorhandenen Funktionen zugreifen ExtractFileName und ExtractFileDir ... muß man aber nicht function RGBToColor(R, G, B : Byte): TColor; * Result := B Shl 16 or G Shl 8 or R; das hier klappt nicht ganz, denn da die Parameter/Variablen nur Bytes sind, würde bei SHL alles aus deren Wertebereich rausgeschoben und wäre weg.
Delphi-Quellcode:
function IntToBin(n : Integer): String;
Result := Integer(B) Shl 16 or Integer(G) Shl 8 or R;
gut, nicht ganz optimal, da jedes Zeichen einzeln an das Ergebnis angehängt und somit ständig alles hin- und herkopiert wird, aber es funktioniert immerhin. und die .dcu mußt du nicht unbedingt mit anhängen. - ich vermute mal die ist von deinem D7, also könnte diese maximal nur mit einem D7 nutzen (sind compilerabhängig) - und dann ist die .pas ja da, welche ma nutzen kann :) |
Re: Unit ConvertCheck
Hallo,
@ himitsu : zu CheckInvalidChars, ich wollte irgendwann mal diese Zeichen nicht haben, gab irgendein Kompatibilitätsproblem, lässt sich ja anpassen zu RGB to Color : wird überarbeitet |
Re: Unit ConvertCheck
In den alten/kurzen 8.3-Dateinamen (DOS) machen sie schon ein paar Problemchen.
Für einen einfachen Test, ob der Dateiname ungültige Zeichen enthält ist deine Funktion ja geeignet und endgültig läßt sich eh nicht alles so prüfen, da es die Gültigkeiten ja von sooooovielen Faktoren abhängt :freak: Nja, falls es dich interessiert, gibt es auch schon etwas dazu in der CodeLib- z.B.: ![]() ![]() Ansonsten :thumb: |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Open-Source" nach "Neuen Beitrag zur Code-Library hinzufügen" verschoben.
Wir haben soeben beschlossen, dass das eher in die Code-Library gehört als nach Open-Source. |
Re: Unit ConvertCheck
jo, danke, werd's mir mal anschauen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:42 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