![]() |
Delphi-Version: 12 Athens
Stringlisten erzeugen mit 3 Hochkommata ''' im Quelltext
Hi,
bei Delphi 12 habe ich als Neuerung gelesen, daß ich Stringlisten im Quelltext einfach anlegen kann, wenn ich sie mit 3 Hochkommas (Hochkommata) einleite und beende. Es ist aber unglaublich schwierig, hierzu eine Erläuterung in der Hilfe zu finden, weil ''' als Suchbegriff irgendwie nicht funktioniert. Ich weiß nämlich gerade nicht, wie ich es korrekt im Quelltext reinschreibe, damit die IDE es versteht und mir nicht als Fehler ankreidet.
Delphi-Quellcode:
Geht das überhaupt so (ich habe mehr als 2 Zeilen, natürlich), oder wie wo finde ich die genaue Syntax (weiß nicht, wie man diese Schreibweise nennt)?
Stringliste1.AddStrings(
''' Zeile1 Zeile2 ''' ); // <---- mag die Klammer da nicht? "E2192 Konstanten dürfen nicht für offene Array-Argumente verwendet werden" |
AW: Stringlisten erzeugen mit 3 Hochkommata ''' im Quelltext
Nein, nicht so, aber Du kannst den String auf die Text-Property zuweisen.
|
AW: Stringlisten erzeugen mit 3 Hochkommata ''' im Quelltext
Ah, danke. :thumb:
Zwischenzeitlich habe ich die Stelle wieder gefunden, wo ich es gelesen hatte: ![]() Dort heißt es noch, "Weitere Informationen zu langen und mehrzeiligen String-Literalen und den Einzugsregeln finden Sie auf unserer Dokumentationsseite zu String-Typen." Nein, findet man dort derzeit nicht! :roll: |
AW: Stringlisten erzeugen mit 3 Hochkommata ''' im Quelltext
Das Beispiel dort ist auch ein einzelner String, die Zeilen mit "[" und "]" sind Teil des Multline-Stringliterals.
|
AW: Stringlisten erzeugen mit 3 Hochkommata ''' im Quelltext
AddStrings will eine Liste (String-Array oder TStrings/TStingList)
Add will "einen" String Du hast einen String, der mehrere Zeilen darstellt. Wenn es eine "Datei" oder ein TMemo ist, dann Add statt AddStrings oder du mußt den MultiString splitten und als Array oder StringList an AddStrings übergeben.
Delphi-Quellcode:
ABER, wenn in der StringList anschließend, ohne Speichern und Neuladen, durch die Lines glaufen werden soll, dann klappt das mit dem Add(MultiLineString) nicht.
{$TEXTBLOCK LF}
StringListe1.AddStrings( ''' Zeile1 Zeile2 '''.Split([#10]) ); |
AW: Stringlisten erzeugen mit 3 Hochkommata ''' im Quelltext
Oh, das mit dem .split() finde ich interessant. Danke für diesen Tipp. :thumb:
In meinem Fall habe ich es StringList.text zugewiesen. Danach konnte ich wie gewünscht auf die Elemente zugreifen (zB. StringList[1]). |
AW: Stringlisten erzeugen mit 3 Hochkommata ''' im Quelltext
Ich verstehe nicht, warum für mehrzeilige Strings eine neue Syntax eingeführt wurde. Es besteht keine Verwechslungsgefahr mit irgendeiner bestehenden Syntax, wenn man einfach mehrzeilige Strings mit bestehender Syntax erlaubt hätte. Sieht vielleicht blöd aus, wenn die erste Zeile direkt hinter dem Hochkomma steht.
|
AW: Stringlisten erzeugen mit 3 Hochkommata ''' im Quelltext
Das hätte aber die Möglichkeit genommen, die weiteren Zeilen eingerückt darzustellen ohne diese Einrückung in den String zu übernehmen.
|
AW: Stringlisten erzeugen mit 3 Hochkommata ''' im Quelltext
Ich hätte eher das doppelte " verwendet, dann hätte man das NichtEscapen von ' auch bei Einzeilig gehabt.
Vorteil am MultiLineString ist, dass man ' darin nicht verdoppeln muß, bzw., wenn ''' oder mehr im String vorkommen, dann entsprechend die umgebenden ''' verlängern, also ''''', ''''''' usw. (ungerade Anzahl) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:09 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