![]() |
AW: Wie gibt man einen Substring aus?
Allerdings fangen Strings beim String-Helper immer bei 0 an!
Das gilt nicht nur für
Delphi-Quellcode:
, sondern auch für
Substring
Delphi-Quellcode:
oder
TStringHelper.IndexOf
Delphi-Quellcode:
.
TStringHelper.Insert
|
AW: Wie gibt man einen Substring aus?
Zitat:
Delphi-Quellcode:
Ich finde das sehr gut, endlich klare, eindeutige Verhältnisse :thumb:
TStringHelper.Chars[0]
Benutze ich nur noch bei neuen Units. |
AW: Wie gibt man einen Substring aus?
Zitat:
und für die normalen Strings muß (String/UnicodeString/AnsiString) muß man aufpassen für welches System kompiliert wird. In den NextGenCompilern (iOS/Android) ist $ZEROBASEDSTRINGS standardmäßig aktiv. (kann aber in eigenen Units notfalls deaktiviert werden, aber NIEMALs komplett aus, da sonst die RTL abraucht, weil die Entwickler da blind von ausgehen es ist aus) Über den Typ bekommt ihr via
Delphi-Quellcode:
den aktuellen Startpunkt,
Low(string)
bzw.
Delphi-Quellcode:
und
Low(StringVariable)
Delphi-Quellcode:
anstatt
High(StringVariable)
Delphi-Quellcode:
1..Length(StringVariable)
oder mit
Delphi-Quellcode:
über die Chars eines Strings enumerieren.
for C in S do
Und im Nextgen fehlen auch der ShortString und AnsiString/UTF8String/... (die gibt es, für da wo die Entwickler zu faul waren es zu ändern, aber der Typ ist nicht öffentlich) und man muß dort überall z.B. mit ByteArrays und TEncoding arbeiten. (oder sich den Typ fast hackermäßig rausholen) |
AW: Wie gibt man einen Substring aus?
Zitat:
Delphi-Quellcode:
readonly ist...
Chars[]
|
AW: Wie gibt man einen Substring aus?
Jetzt explodiert die Diskussion hier mal wieder und hat absolut nichts mehr mit der ursprünglichen Frage zu tun
Wie gibt man einen Substring aus?. Der TE möchte genau das wissen. Detailwissen interessiert hier vermutlich niemanden, der auf diese Frage eine Antwort sucht. |
AW: Wie gibt man einen Substring aus?
Selbst bauen?
Falls man ReportHelper ableiten könnte, was aber nur bei den ClassHelpern geht.
Delphi-Quellcode:
So geht es, aber dir fehlen dann alle Standard-HelperFunktionen. :freak:
type
TMyStringHelper = record helper(TStringHelper) for string private procedure SetChars(Index: Integer; Value: Char); public property Chars[Index: Integer] write SetChars; end; function TMyStringHelper.SetChars(Index: Integer; Value: Char); begin Self[Index + Low(string)] := Value; end;
Delphi-Quellcode:
type
TMyStringHelper = record helper for string private function GetChars(Index: Integer): Char; procedure SetChars(Index: Integer; Value: Char); public property Chars[Index: Integer]: Char read GetChars write SetChars; end; function TMyStringHelper.GetChars(Index: Integer): Char; begin Result := Self[Index + Low(string)]; end; procedure TMyStringHelper.SetChars(Index: Integer; Value: Char); begin Self[Index + Low(string)] := Value; end; |
AW: Wie gibt man einen Substring aus?
@kagi3624
wie wäre es mit dem Klassiker:
Delphi-Quellcode:
Die Function LeftStr() ist Bestandteil der Unit StrUtils (D6, D7).
procedure TForm1.Test;
var e, s: string; begin s:='123456'; e:=LeftStr(s,2); Memo1.Lines.Add(e); end; Im Aktuellem Delphi: System.StrUtils |
AW: Wie gibt man einen Substring aus?
Tja, dem OP wird wohl echt nur der Klassiker bleiben, wenn er D6 benutzt.
Denn Stringhelper usw. gab's da noch nicht... |
AW: Wie gibt man einen Substring aus?
Zitat:
|
AW: Wie gibt man einen Substring aus?
Zitat:
![]() Vermutlich funktioniert das Vererben aber nicht bei String :cry:, aber einen Versuch wäre es Wert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 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