AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String zu TStringDynArray hinzufügen?

Ein Thema von PeterPanino · begonnen am 31. Jan 2023 · letzter Beitrag vom 1. Feb 2023
Antwort Antwort
Seite 1 von 2  1 2      
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#1

String zu TStringDynArray hinzufügen?

  Alt 31. Jan 2023, 15:26
Delphi-Version: 11 Alexandria
Ich erzeuge ein System.Types.TStringDynArray mit System.IOUtils.TDirectory.GetFiles .

Was ist die einfachste/schnellste Methode, um einen string zum TStringDynArray hinzuzufügen?
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.443 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: String zu TStringDynArray hinzufügen?

  Alt 31. Jan 2023, 15:34
ungetestet: strarray := strarray + ['bla'];
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: String zu TStringDynArray hinzufügen?

  Alt 31. Jan 2023, 16:22
ungetestet: strarray := strarray + ['bla'];
Vielen Dank - funktioniert!
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#4

AW: String zu TStringDynArray hinzufügen?

  Alt 31. Jan 2023, 18:09
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 strarray := strarray + 'bla';

Und vieleicht gibt es irgendwann (nächstes Jahrtausend) auch mal die Kurzoperatoren,
ala strarray += ['bla']; bzw. strarray += 'bla'; .
(rein von der pascal-syntax her, wäre es ohne Probleme möglich, da es mit keinen bestehenden Regeln kollidiert)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (31. Jan 2023 um 18:13 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.443 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: String zu TStringDynArray hinzufügen?

  Alt 1. Feb 2023, 15:04
Leider noch etwas unintelligent.
Wäre nett, wenn es noch erweitert wird, dass bei einem einzelnem Wert implizit auch funktioniert, also 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.)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

AW: String zu TStringDynArray hinzufügen?

  Alt 1. Feb 2023, 15:15
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: String zu TStringDynArray hinzufügen?

  Alt 1. Feb 2023, 15:18
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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
shebang

Registriert seit: 7. Feb 2020
124 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: String zu TStringDynArray hinzufügen?

  Alt 1. Feb 2023, 16:56
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#9

AW: String zu TStringDynArray hinzufügen?

  Alt 1. Feb 2023, 17:26
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

AW: String zu TStringDynArray hinzufügen?

  Alt 1. Feb 2023, 17:51
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...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:39 Uhr.
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