![]() |
String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Hallo!
Wie erstelle ich einen String mit n gleichen Zeichen ohne eine Schleife zu benutzen? z.B. n=5 und zeichen:='a' dann s:='aaaaa' Man kann ja Strings addieren, gibt es dann auch eine Funktion, die sie multipliziert? MfG GM |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
hi gmarts
hmm, hab keinen plan wie das ohne schleife gehen soll. was hindert dich denn daran, eine schleife zu benutzen?? mit einer for-schleife bräuchtest du 2 zeilen... gruss, dave |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Weiß nicht, ob Delphi dafür eine Funktion bietet, sonst kannst du es mit Rekursion lösen:
Delphi-Quellcode:
Um eine Variable bspw. mit 5 "a" zu füllen, würde der Aufruf so aussehen:
function FillString(s, zeichen: String; count: Integer): String;
begin s := s + zeichen; if Length(s) < count then s := FillString(s, zeichen, count); Result := s; end;
Delphi-Quellcode:
MfG Pr0g
procedure TForm1.Button1Click(Sender: TObject);
var s: String; begin s := ''; s := FillString(s, 'a', 5); end; |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
function DupeString(const AText: string; ACount: Integer): string; in der Unit StrUtils...
|
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Danke für die schnellen Antworten!
Danke Stevie!!!! Habe ich in der Delphi-Hilfe wohl übersehen. :thuimb: Wahrscheinlich bin ich nur zu pingelig. :) Eine Schleife/Rekursion erscheint mir zu langsam, besonders wenn n in den 6stelligen Bereich geht und ich diese Schleife während einer Berechnung mehrmals aufrufen muss. |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
ob es allerdings mit DupeString() schneller geht...?
gruss, dave |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Muss ich wohl testen! :)
Wahrscheinlich benutzt DupeString() intern auch ne Schleife. |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Zitat:
Delphi-Quellcode:
function DupeString(const AText: string; ACount: Integer): string;
var P: PChar; C: Integer; begin C := Length(AText); SetLength(Result, C * ACount); P := Pointer(Result); if P = nil then Exit; while ACount > 0 do begin Move(Pointer(AText)^, P^, C); Inc(P, C); Dec(ACount); end; end; |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Zitat:
zwar 'nur' Pointer-Gefummel, aber nevertheless ne Schleife :) Gruß Stephan edit: Ups, zu langsam :stupid: |
Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
Danke! Na dann ist ja alles geklärt :freak: !
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 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