![]() |
Komisches String Verhalten?
Hallo,
ich habe folgendes Problem. Ich verstehe nicht wieso in der Rückgabe bzw. dem Result nicht immer 8 Zeichen bzw. Buchstaben stehen? Sehr oft 8, aber ab und zu gar keine oder nur 3 oder 4... hm... kapiere ich nicht. Ich habe eine Vermutung, dass das irgendwie dann aufkommt, wenn ein Buchstabe mehrmals nacheinander vorkommt, oder irre ich mich da? Bin für jede Aufklärung dankbar.
Delphi-Quellcode:
function GetPassword(vUpCaseLet: Integer): String;
var i : Integer; s1 : String; const u : String = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; begin // Großbuchstaben if vUpCaseLet = 1 then begin s1 := ''; for i := 1 to 8 do begin s1 := s1 + u[Random(Length(u) + 1)]; end; end; Result := s1; end; |
AW: Komisches String Verhalten?
Weil das +1 falsch geklammert ist?
Schalte mal in den Projektoptionen die Bereichsprüfung ein. Und nein, da sind immer 8 Zeichen drin (wenn vUpCaseLet=1), was dir der Debugger bestätigen wird, falls du den mal nutzen solltest. Aber nicht alle Zeichen werden von allem angezeigt (alles mit PChar dazwischen schneidet z.B. ab einer #0 den String ab) PS: das vUpCaseLet sieht mir aber arg nach einem "Boolean" aus. |
AW: Komisches String Verhalten?
Eine Warnung müsste der Compiler hier auch ausgeben:
Delphi-Quellcode:
sl
|
AW: Komisches String Verhalten?
Zitat:
Zitat:
Zitat:
Zitat:
|
AW: Komisches String Verhalten?
Zitat:
Zitat:
Delphi-Quellcode:
/
{$R}
Delphi-Quellcode:
) und die Überlaufprüfung (
{$RANGECHECKS}
Delphi-Quellcode:
/
{$Q}
Delphi-Quellcode:
) kennen.
{$OVERFLOWCHECKS}
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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