Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Variablen in Stringliteral inlinen (https://www.delphipraxis.net/203319-variablen-stringliteral-inlinen.html)

QuickAndDirty 5. Feb 2020 20:01

AW: Variablen in Stringliteral inlinen
 
Zitat:

Zitat von freimatz (Beitrag 1456772)
War sowas nicht in php oder awk?

Es ist in PHP und in Perl so!

Code:
$Mark = 3;
$Pfennig = 40;
$Variable1 = "Das sind $Mark Mark und $Pfennig Pfennig";
In Javascript wird es so gemacht
Code:
var a = '5';
var b = '10';
console.log(`Das sind ${Mark} Mark und ${Pfennig} Pfennig`);
Die Akzente sind außerdem Multiline-String-Literale in Javascrip!

Ich dachte wirklich wir haben das auch...Aber ist wohl alzheimer

QuickAndDirty 5. Feb 2020 20:03

AW: Variablen in Stringliteral inlinen
 
Zitat:

Zitat von Stevie (Beitrag 1456782)
Nein, es gibt keine String interpolation mit Variablennamen in Delphi. Nur die von Format akzeptierten Platzhalter.

Menno sogar Swift hat das!
Es wäre so gut wenn die das einbauen.
Cotlin, Dart, Swift und C# 6.0 alle haben es

C#
Code:
// C# 6.0
var apples = 4;
var bananas = 3;
Console.WriteLine($"I have {apples} apples");
Console.WriteLine($"I have {apples + bananas} fruit");

Stevie 5. Feb 2020 23:38

AW: Variablen in Stringliteral inlinen
 
Im Hinblick auf Lokalisierung (resourcestrings) ist das gar nicht mehr so toll, wie es zuerst erscheinen mag. Denn man kann string Interpolation nur dort nutzen, wo auch die im String referenzierten Symbole zugänglich sind. Und in aller Regel hat man dort, wo resourcestrings deklariert werden keinen Zugriff auf diverse Variablen oder Properties.

Es gibt auch Entwickler, die String Interpolation sogar für schlecht halten.

QuickAndDirty 6. Feb 2020 11:33

AW: Variablen in Stringliteral inlinen
 
Nun Ich generiere delphi code für eine include datei...jetzt mit format('Bla%d blabla%s '[x,y]) :(
Glaube mir die Ausgabe mit string interpolation hätte den Quellcode in den strings sicher leichter manipulierbar und umstellbar gemacht.
Ich sage ja nicht das es der Heilige Gral ist, frei von jedwedem Nachteil.

Dennoch hätte Stringinterpolation mir bei der Aufgabe echt was gebracht(leichte Umstellbarkeit des Codes in den Strings)
Das andere Übel ist die häßliche art und weise wie Einzelhochkomma escaped werden....
Sowohl QuotedString('TADA') als auch ''''''''''''''''''' sind keine sehr befriedigende Art sowas zu machen.
Auch ein Multiline String literal wäre schon schön für diese Aufgabe gewesen.

Ich möchte dazu sagen, fasst das bitte nicht als nörgeln auf. Ich habe alles was ich hinbekommen wollte mit Delphi hinbekommen...
Es geht mir eher um nicetohaves.
JA, ich will von Embarcadero verwöhnt werden. ^^
Zumindest würde es mich freuen :)

freimatz 6. Feb 2020 12:51

AW: Variablen in Stringliteral inlinen
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1456787)
Menno sogar Swift hat das!
Es wäre so gut wenn die das einbauen.
Cotlin, Dart, Swift und C# 6.0 alle haben es

Es wäre schlecht wenn die das einbauen. Das verleitet zu QuickAndDirty-Code :-P

(Bei uns wurde eh solcher Code von der Person, die für Übersetzungen zuständig ist, verboten.)

Dennis07 6. Feb 2020 14:51

AW: Variablen in Stringliteral inlinen
 
Könntest dir nen IDE-Plugin dafür bauen, das das im Editor mit nem Rechtsklick oder so parst. Aber ansonsten sehe ich da nicht viel Möglichkeit.
Was jedoch ginge, wäre so etwas für Klassenfelder zu machen, da diese über die RTTI abrufbar sind. Globale oder lokale Variablen/Konstanten allerdings wirst du so nicht verarbeiten können.

TurboMagic 6. Feb 2020 19:33

AW: Variablen in Stringliteral inlinen
 
Zitat:

Zitat von freimatz (Beitrag 1456831)
Zitat:

Zitat von QuickAndDirty (Beitrag 1456787)
Menno sogar Swift hat das!
Es wäre so gut wenn die das einbauen.
Cotlin, Dart, Swift und C# 6.0 alle haben es

Es wäre schlecht wenn die das einbauen. Das verleitet zu QuickAndDirty-Code :-P

(Bei uns wurde eh solcher Code von der Person, die für Übersetzungen zuständig ist, verboten.)

Denke ich auch und man müsste sowas evtl. auch öfters mal "escapen" :-(

freimatz 7. Feb 2020 10:33

AW: Variablen in Stringliteral inlinen
 
Hm, mir kommt gerade eh der Gedanke, dass Texte eigentlich gar nicht in Code gehören.
Bei uns gibt es allenfalls Texte auf englisch die bei Exceptions erscheinen, die der Anweder eh nicht sehen sollte.

Dennis07 7. Feb 2020 10:43

AW: Variablen in Stringliteral inlinen
 
Zitat:

Zitat von freimatz (Beitrag 1456902)
Hm, mir kommt gerade eh der Gedanke, dass Texte eigentlich gar nicht in Code gehören.
Bei uns gibt es allenfalls Texte auf englisch die bei Exceptions erscheinen, die der Anweder eh nicht sehen sollte.

Davon mal ganz abgesehen :-D

Uwe Raabe 7. Feb 2020 11:34

AW: Variablen in Stringliteral inlinen
 
Zitat:

Zitat von freimatz (Beitrag 1456902)
Hm, mir kommt gerade eh der Gedanke, dass Texte eigentlich gar nicht in Code gehören.

Umgekehrt gehört Code (hier Variablennamen) auch nicht in String-Literale.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 Uhr.
Seite 2 von 4     12 34      

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