Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String zu TStringDynArray hinzufügen? (https://www.delphipraxis.net/212368-string-zu-tstringdynarray-hinzufuegen.html)

PeterPanino 31. Jan 2023 14:26

Delphi-Version: 11 Alexandria

String zu TStringDynArray hinzufügen?
 
Ich erzeuge ein System.Types.TStringDynArray mit
Delphi-Quellcode:
System.IOUtils.TDirectory.GetFiles
.

Was ist die einfachste/schnellste Methode, um einen string zum TStringDynArray hinzuzufügen?

freimatz 31. Jan 2023 14:34

AW: String zu TStringDynArray hinzufügen?
 
ungetestet: strarray := strarray + ['bla'];

PeterPanino 31. Jan 2023 15:22

AW: String zu TStringDynArray hinzufügen?
 
Zitat:

Zitat von freimatz (Beitrag 1518096)
ungetestet: strarray := strarray + ['bla'];

Vielen Dank - funktioniert!

himitsu 31. Jan 2023 17:09

AW: String zu TStringDynArray hinzufügen?
 
Jupp, die neuen string-like Array-Operatoren wurden vor ein paar Delphi-Versionen als großes Feature beworben.

Und dann funktioniert natürlich auch Insert und Delete bei Arrays.




Leider noch etwas unintelligent.
Wäre nett, wenn es noch erweitert wird, dass bei einem einzelnem Wert implizit auch funktioniert, also
Delphi-Quellcode:
strarray := strarray + 'bla';


Und vieleicht gibt es irgendwann (nächstes Jahrtausend) auch mal die Kurzoperatoren,
ala
Delphi-Quellcode:
strarray += ['bla'];
bzw.
Delphi-Quellcode:
strarray += 'bla';
.
(rein von der pascal-syntax her, wäre es ohne Probleme möglich, da es mit keinen bestehenden Regeln kollidiert)

freimatz 1. Feb 2023 14:04

AW: String zu TStringDynArray hinzufügen?
 
Zitat:

Zitat von himitsu (Beitrag 1518109)
Leider noch etwas unintelligent.
Wäre nett, wenn es noch erweitert wird, dass bei einem einzelnem Wert implizit auch funktioniert, also
Delphi-Quellcode:
strarray := strarray + 'bla';

Fände ich extrem unnett. 'bla' ist ein anderer Typ als ['bla'] und somit flasch. Und ich erwarte von einem Compiler dass er typsicher ist und mich auf meinen Fehler aufmerksam macht. (Und deswegen werde ich nie freiwillig mit phyton arbeiten.)

himitsu 1. Feb 2023 14:15

AW: String zu TStringDynArray hinzufügen?
 
Es ist doch dennoch typsicher?

['xxx'] ist eine Menge von dem Typ
'xxx' ist nur Einer dieses Typs

Wenn ich nur Einwas anhängen will, dann passt es ja prinzipiell dennoch.
Es ist ja nicht so, dass Delphi uns die Arbeit sonst nicht auch oft erleichtert, indem Dinge implizit gemacht werden, weil wir zu schreibfaul sind.

KodeZwerg 1. Feb 2023 14:18

AW: String zu TStringDynArray hinzufügen?
 
Naja, aber x += 'x' wäre eine Zuweisung in etwas vorhandenes (die ohne array index nicht funktioniert) wohingegen x += ['x'] garantiert ein element ist.
So wäre jedenfalls meine Denkweise.

shebang 1. Feb 2023 15:56

AW: String zu TStringDynArray hinzufügen?
 
Der Unterschied wäre doch eher
Code:
TArray<TBla> += TBla
und
Code:
TArray<TBla> += TArray<TBla>
In beiden Fällen muss der Compiler nur sicherstellen, dass der Typ TBla passt.

himitsu 1. Feb 2023 16:26

AW: String zu TStringDynArray hinzufügen?
 
jupp.

Im Prinzip ist die Sache ganz einfach.
@Compiler: Wenn es nicht passt, dann denk dir implizit noch ein paar Klammern drum, und wenn es dann passt, isses OK ... ansonsten meckere doch noch


Genauso ist es bei expliziten Namespaces, an Stellen, wo schon vorher definitiv fest steht, dass nur ein bestimmter Namespace dort gültig ist, z.B. bei Übergabe an Variablen, Property oder als Funktionsparameter.

Stevie 1. Feb 2023 16:51

AW: String zu TStringDynArray hinzufügen?
 
Zitat:

Zitat von freimatz (Beitrag 1518160)
Fände ich extrem unnett. 'bla' ist ein anderer Typ als ['bla'] und somit flasch. Und ich erwarte von einem Compiler dass er typsicher ist und mich auf meinen Fehler aufmerksam macht. (Und deswegen werde ich nie freiwillig mit phyton arbeiten.)

Komische Argumentation, wo man doch auch einen Char an einen String anhängen kann...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 Uhr.
Seite 1 von 2  1 2      

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