![]() |
String umkehren
hi leuts
ich möchte einen String verkehrt rum wieder ausgeben. ist das überhaupt möglich??? |
Re: String umkehren
Da hatt' ich was für dich:
Delphi-Quellcode:
function StrRev (Str: String): String;
var Res: String; i: Cardinal; begin for i := length (Str) downto 1 do Res := Res + Str[i]; Result := Res; end; |
Re: String umkehren
Klar. Es gibnt da, glaube ich, eine String Funktion oder du machst es von Hand. Auf die einzelnen Zeichen eines Strings kannst du mit dem Index zugreifen:
Delphi-Quellcode:
s[1] ist dann das 'H'.
s := 'Hello';
Rest ist etwas Nachdenken deiner seits und das war es schon. |
Re: String umkehren
|
Re: String umkehren
@jfheins: deine function StrRev arbeitet sehr langsam, da mit (fast) jedem Zeichen im Speicher eine neue Reservierung vorgenommen werden muss.
Hier die schnelle Alternative aus der JCL:
Delphi-Quellcode:
function StrReverse(const S: AnsiString): AnsiString;
begin Result := S; StrReverseInplace(Result); end; procedure StrReverseInPlace(var S: AnsiString); var P1, P2: PChar; C: AnsiChar; begin UniqueString(S); P1 := PChar(S); P2 := P1 + SizeOf(AnsiChar) * (Length(S) - 1); while P1 < P2 do begin C := P1^; P1^ := P2^; P2^ := C; Inc(P1); Dec(P2); end; end; |
Re: String umkehren
Danke euch!
hab aber noch ne frage: kann ich eine Zeichenfolge z.b: '#$D' aus einem String: 'Hallo#$D' löschen??? |
Re: String umkehren
|
Re: String umkehren
Hallo.
Eine Frage: Gibt es zu dem JCL-Code eine noch schnellere Alternative (z.B. in Assembler)? Gruß blackdrake |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 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