AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unit ConvertCheck

Ein Thema von markus5766h · begonnen am 9. Jun 2009 · letzter Beitrag vom 11. Jun 2009
Antwort Antwort
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#1

Unit ConvertCheck

  Alt 9. Jun 2009, 17:14
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
Angehängte Dateien
Dateityp: pas convertcheck_150.pas (8,1 KB, 27x aufgerufen)
Markus H.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Unit ConvertCheck

  Alt 11. Jun 2009, 09:09
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

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.
Result := Integer(B) Shl 16 or Integer(G) Shl 8 or R; function IntToBin(n : Integer): String;
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
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#3

Re: Unit ConvertCheck

  Alt 11. Jun 2009, 17:12
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
Markus H.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Unit ConvertCheck

  Alt 11. Jun 2009, 18:39
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

Nja, falls es dich interessiert, gibt es auch schon etwas dazu in der CodeLib-
z.B.:
http://www.delphipraxis.net/internal...ect.php?t=4498
http://www.delphipraxis.net/internal...ct.php?t=17470


Ansonsten
$2B or not $2B
  Mit Zitat antworten Zitat
11. Jun 2009, 19:41
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.
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#6

Re: Unit ConvertCheck

  Alt 11. Jun 2009, 20:27
jo, danke, werd's mir mal anschauen.
Markus H.
  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 02:29 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