![]() |
Delphi-Version: 4
Zufallstrings (random strings)
Bitte den bestehenden Beitrag:
![]() um folgenden Code erweitern oder ersetzen. Neu hinzugekommen ist die Funktion RandomBytes. Bitte noch folgenden Hinweis mit in den Beitrag aufnehmen: Bei Delphi 2 & 3 muss die Direktive overload weggelassen werden und die gleichnamigen Funktionen umbenannt werden. Nach einem Hinweis von himitsu habe ich Zeigerarithmetik verwendet, um das Füllen der Strings zu Beschleunigen.
Delphi-Quellcode:
unit URandomString;
interface uses Classes; function RandomString(const len: Integer = 10; const CharSet: string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'): string;overload; function RandomString(const x:array of string): string;overload; function RandomString(s:TStrings):string;overload; function RandomDigitString(const len:Integer):string; function RandomBytes(const len: Integer):string; implementation uses Sysutils; {************************************************************************** * NAME: RandomString * DESC: Erzeugt einen zufälligen String * PARAMS: len: länge des erzeugten strings * CharSet: string der die zu verwendenden Zeichen enthält *************************************************************************} function RandomString(const len: Integer; const CharSet: string): string; var i: Integer; pResult : PChar; begin SetLength(Result,len); // Speicher im Result-String reservieren pResult := PChar(Result); for i := 1 to len do begin pResult^ := CharSet[1+Random(Length(CharSet))]; Inc(pResult); end; end; {************************************************************************** * NAME: RandomString * DESC: Es wird ein String aus dem offenen String-Array x zufällig * ausgewählt und zurückgegeben *************************************************************************} function RandomString(const x:array of string): string;overload; begin Result := x[Random(Length(x))]; end; {************************************************************************** * NAME: RandomString * DESC: Es wird ein String aus der StringListe s zufällig * ausgewählt und zurückgegeben *************************************************************************} function RandomString(s: TStrings): string; begin Assert(Assigned(s)); if s.Count = 0 then Result := '' else Result := Trim(s.Strings[Random(s.Count)]); end; function RandomDigitString(const len:Integer):string; begin Result := RandomString(len, '0123456789'); end; {************************************************************************** * NAME: RandomBytes * DESC: Es wird ein String geliefert, der zufällige Zeichen von #0 bis #255 * enthält *************************************************************************} function RandomBytes(const len: Integer):string; const MAX_BYTE = 256; var i: Integer; pResult : PChar; begin SetLength(Result,len); // Speicher im Result-String reservieren pResult := PChar(Result); for i := 1 to len do begin pResult^ := Chr(Random(MAX_BYTE)); Inc(pResult); end; end; end. |
DP-Maintenance
Dieses Thema wurde von "Chakotay1308" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Object-Pascal / Delphi-Language" verschoben.
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:49 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