Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TStringList Add Zeile einfügen Fehler ! (https://www.delphipraxis.net/67512-tstringlist-add-zeile-einfuegen-fehler.html)

wlfmario 15. Apr 2006 20:11


TStringList Add Zeile einfügen Fehler !
 
Hallo zusammen,

ich habe eine Var. TStringList in der ich eine Zeile einfügen möchte, die auch aus '' bestehen.
Wenn ich jetzt schreibe:
Delphi-Quellcode:
MeineTStringList.Add('$querry = mysql_query("INSERT INTO `a4` VALUES (1, 'DE', '€', '', '', '', '',0, '')");
');
schmeist Delphi mir Fehler aus !
Wie kann ich jetzt die Zeile in meine TStringList einfügen ohne Fehler ?

Ich glaube die Hochkomertas machen den Ärger !
Ich bin Dankbar für jeden Tip.

mkinzler 15. Apr 2006 20:25

Re: TStringList Add Zeile einfügen Fehler !
 
So sollte es gehen (wenn ich mich bei der jeweiligen Anzahl von ' nicht verzählt habe ;-))
MeineTStringList.Add('$querry = mysql_query("INSERT INTO '''a4''' VALUES (1,'''DE''', '''€''', ''''', ''''', ''''', ''''',0, ''')");');

wlfmario 15. Apr 2006 20:29

Re: TStringList Add Zeile einfügen Fehler !
 
Danke wenn ich das richtig sehe muß ich jedes ' in zwei '' setzen.
Das wird Arbeit da die Zeile etwa 3 mal so lang ist.
Gut dann lege ich mal los.

Danke.

Dax 15. Apr 2006 20:37

Re: TStringList Add Zeile einfügen Fehler !
 
Und: keine Zeilenumbrüche im string ;) Lieber statt [Enter] ein '#10#13' hinsetzen :)

s-off 15. Apr 2006 20:42

Re: TStringList Add Zeile einfügen Fehler !
 
Hallo,

wenn ich Dir einen kleinen Tipp geben darf: das Ganze wird, bei umfangreichen Statements sehr unübersichtlich mit den ganzen einfachen und, je nach SQL-Syntax, doppelten Anführungszeichen.
Gerade dann, wenn man der Übersichtlichkeit wegen den Code auf mehrere Zeilen aufteilt, kommt man sehr schnell durcheinander.

Ich habe mir angewöhnt, für Anführungszeichen, die die Strings in den Statements kennzeichnen, die jeweiligen ASCII-Zeichen zu benutzen, also #034 für die doppelten, und #039 für die einfachen Anführungszeichen. Das macht das ganze gleich viel übersichtlicher.

Und wenn Du noch einen Schritt weiter gehen möchtest, dann packst Du das Ganze in eine Konstante, so dass Du, wenn Du mal den DB-Treiber wechseln solltest, das entsprechende Zeichen nur noch an einer Stelle ersetzen musst.

Jelly 15. Apr 2006 20:52

Re: TStringList Add Zeile einfügen Fehler !
 
Weil es sich ja offensichtlich um statische Strings handelt, so kannst du diese doch einfach in eine Textdatei hinterlegen, und diese ganze Datei einfach in die Stringlist laden.

wlfmario 15. Apr 2006 20:56

Re: TStringList Add Zeile einfügen Fehler !
 
Das geht eben leider nicht, da ich noch Variabeln verwenden möchte die dann die Werte einfügt dic zur Laufzeit von Delphi übergeben werden.
jetzt stoße ich auch schon af die Grenzen: der String ist länger als 255 und Delphi meckert.

mkinzler 15. Apr 2006 21:03

Re: TStringList Add Zeile einfügen Fehler !
 
Versuch mal die überflüssigen Leerzeichen wegzulassen oder verwende anstatt einer Stringliste einen dynamischen Array of string, dann fällt die Begrenzung auf 255 Zeichen weg.

Dax 15. Apr 2006 21:04

Re: TStringList Add Zeile einfügen Fehler !
 
Nope, eben nicht. Aber den String an der 255. Stelle durch '+' trennen hilft ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:26 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