Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa' (https://www.delphipraxis.net/22865-string-mit-gleichen-zeichen-fuellen-z-b-s-%3Daaaaaaaa.html)

gmarts 25. Mai 2004 12:52


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

ims 25. Mai 2004 12:59

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

Pr0g 25. Mai 2004 13:00

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:
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;
Um eine Variable bspw. mit 5 "a" zu füllen, würde der Aufruf so aussehen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  s := '';
  s := FillString(s, 'a', 5);
end;
MfG Pr0g

Stevie 25. Mai 2004 13:01

Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
 
function DupeString(const AText: string; ACount: Integer): string; in der Unit StrUtils...

gmarts 25. Mai 2004 13:04

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.

ims 25. Mai 2004 13:05

Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
 
ob es allerdings mit DupeString() schneller geht...?


gruss, dave

gmarts 25. Mai 2004 13:06

Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
 
Muss ich wohl testen! :)

Wahrscheinlich benutzt DupeString() intern auch ne Schleife.

Stevie 25. Mai 2004 13:07

Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
 
Zitat:

Zitat von ims
ob es allerdings mit DupeString() schneller geht...?

Urteile selbst... :wink:
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;

Steve 25. Mai 2004 13:08

Re: String mit gleichen Zeichen füllen z.B. s:='aaaaaaaa'
 
Zitat:

Zitat von gmarts
Wahrscheinlich benutzt DupeString() intern auch ne Schleife.

Jap, so schaut's aus
zwar 'nur' Pointer-Gefummel, aber nevertheless ne Schleife :)


Gruß
Stephan

edit: Ups, zu langsam :stupid:

gmarts 25. Mai 2004 13:09

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 20:09 Uhr.
Seite 1 von 3  1 23      

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