Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Memo1 ' ' (https://www.delphipraxis.net/120974-memo1.html)

milos 19. Sep 2008 21:35


Memo1 ' '
 
also wenn ich es so mache funktionierts prima!
Delphi-Quellcode:
Memo1.Lines.Strings[0] := 'test'
Memo1.Lines.Strings[1] := 'test'
Aber sobald ein ' zwischen den '' kommt, kommt schon der Fehler: Nicht abgeschlossener string!

Was kann man dagegen machen?

jfheins 19. Sep 2008 21:36

Re: Memo1 ' '
 
Mach zwei draus ;)

Also für jedes ' einfach '' schreiben ;)

milos 19. Sep 2008 21:38

Re: Memo1 ' '
 
ja aber wenn man
Delphi-Quellcode:
$config['db_host'] = 'localhost';
drinnen hat hat es schon mehrere ''''

jfheins 19. Sep 2008 21:41

Re: Memo1 ' '
 
Joa ... und? :mrgreen:

Beispiel:
Delphi-Quellcode:
String := 'Wie geht''s ?';
Muss man halt mehrere ' schreiben ;)

Die Muhkuh 19. Sep 2008 21:41

Re: Memo1 ' '
 
Geht es jetzt um PHP oder um Delphi?

milos 19. Sep 2008 21:44

Re: Memo1 ' '
 
es ist delphi memo, das in php gewandelt wird

milos 19. Sep 2008 21:45

Re: Memo1 ' '
 
Zitat:

Zitat von jfheins
Joa ... und? :mrgreen:

Beispiel:
Delphi-Quellcode:
String := 'Wie geht''s ?';
Muss man halt mehrere ' schreiben ;)

aber mit 4 '''' gehts nich schon getestet

Christian Seehase 19. Sep 2008 21:54

Re: Memo1 ' '
 
Moin Milos,

zeig' doch mal, was Du genau machen willst.

Wenn Du einen String, der Anführungszeichen (doppelte, oder auch einzelne) enthalten kann an etwas übergeben willst, bei dem diese speziell behandelt werden müssen (z.B. auch bei der Übergabe an Datenbankfelder), hilft meist die Funktion Delphi-Referenz durchsuchenAnsiQuotedStr weiter.

omata 19. Sep 2008 21:57

Re: Memo1 ' '
 
Delphi-Quellcode:
QuotedStr
?

milos 20. Sep 2008 07:51

Re: Memo1 ' '
 
könnte man string nicht in integer setzen?

toms 20. Sep 2008 08:08

Re: Memo1 ' '
 
Zitat:

Zitat von milos
könnte man string nicht in integer setzen?

Was meinst du String in Integer setzen?

PS: Die korrekten Antworten hast du ja schon erhalten :roll:

milos 20. Sep 2008 08:12

Re: Memo1 ' '
 
Delphi-Quellcode:
StrToInt
würde es nicht gehen?

toms 20. Sep 2008 08:27

Re: Memo1 ' '
 
Zitat:

Zitat von milos
Delphi-Quellcode:
StrToInt
würde es nicht gehen?

Was macht denn diese Funktion? Warum möchtest du den String in eine Zahl umwandeln? :?

milos 20. Sep 2008 08:57

Re: Memo1 ' '
 
ich dachte das man nacher ''''''''''' einsetzen kann

toms 20. Sep 2008 08:59

Re: Memo1 ' '
 
Zitat:

Zitat von milos
ich dachte das man nacher ''''''''''' einsetzen kann

In einen Integer Wert kann man doch keine ''' einsetzen :?
Warum verwendest du nicht einfach (Ansi)QuotedStr ?

Die Muhkuh 20. Sep 2008 08:59

Re: Memo1 ' '
 
Was hast Du denn überhaupt vor?

rollstuhlfahrer 20. Sep 2008 10:05

Re: Memo1 ' '
 
Nochmals zusammenfassend:

Unter Delphi erreichst du (') mit Chr(39) und (") mit Chr(34) [funktionen mit Klammern, Zeichen ohne Klammern].
Bei PHP erhällst du ein ' wenn du deinen String mit ' ' begrenzt durch ein \' ansonsten durch ein einfaches ' .
Beim " gehts genauso ( für " ein \" bei String mit " " ansonsten ein ").

Und wo liegt jetzt das Problem an der Sache?
Desweiteren: Wie sieht dein eigentlicher String denn aus? Rätselraten ist hier nicht die Stärke.

Bernhard

milos 20. Sep 2008 14:43

Re: Memo1 ' '
 
Zitat:

Zitat von toms
Zitat:

Zitat von milos
ich dachte das man nacher ''''''''''' einsetzen kann

In einen Integer Wert kann man doch keine ''' einsetzen :?
Warum verwendest du nicht einfach (Ansi)QuotedStr ?

wie macht man das??

toms 20. Sep 2008 16:19

Re: Memo1 ' '
 
Zitat:

Zitat von milos
wie macht man das??

QuotedStr ist eine normale Funktion.
In der findest du weitere Informationen.

milos 21. Sep 2008 11:51

Re: Memo1 ' '
 
Zitat:

Die Funktion QuotedStr gibt für einen String die entsprechende Version in Anführungszeichen zurück.

Unit

SysUtils

Kategorie

String-Verarbeitung

function QuotedStr(const S: string): string;

Beschreibung

Mit QuotedStr kann der String S in einen String in Anführungszeichen umgewandelt werden. Am Anfang und am Ende von S wird ein halbes Anführungszeichen (') hinzugefügt. Wenn innerhalb des Strings halbe Anführungszeichen enthalten sind, werden diese verdoppelt.

Hinweis

Setzen Sie in Systemen, die Multibyte-Zeichensätze verwenden (DBCS), die Funktion AnsiQuotedStr ein.
Und was soll ich damit? ich weiss nich wie ich string in quotedstr umwandelm soll

Klaus01 21. Sep 2008 11:55

Re: Memo1 ' '
 
Delphi-Quellcode:
 s:= quotedStr(s);
einfach mal ausprobieren.

Grüße
Klaus

toms 21. Sep 2008 11:56

Re: Memo1 ' '
 
Indem du deinen String der Funktion übergibst.

Sonst hilft sicher auch diese Einführung in Prozeduren und Funktionen weiter.

Die Muhkuh 21. Sep 2008 12:00

Re: Memo1 ' '
 
Ich versteh es nicht.

Alle geben Tipps, von Milos kommt "geht nicht". Beschreibe doch endlich mal, was Du vor hast!

milos 21. Sep 2008 12:03

Re: Memo1 ' '
 
OK ich will ein PHP editor machen das heisst wenn ich jetzt im edit1.text false eingebe, sollte in der php datei $config['village_choose_direction'] = FALSE; kommen

also das man eine php datei mit den TEdits machen kann usw

Jelly 21. Sep 2008 12:05

Re: Memo1 ' '
 
@Milo:
Was du beschreibst ist deine Fragestellung!

Zeig doch mal ein bischen Code, und streich die Stellen hervor, wo's hakt.

milos 21. Sep 2008 12:09

Re: Memo1 ' '
 
Zitat:

Zitat von Jelly
@Milo:
Was du beschreibst ist deine Fragestellung!

Zeig doch mal ein bischen Code, und streich die Stellen hervor, wo's hakt.

Delphi-Quellcode:
Memo1.Lines.Strings[0] := '$config['db_host'] = 'blablabla'';
es geht nich wegen den zeichen

Die Muhkuh 21. Sep 2008 12:11

Re: Memo1 ' '
 
Delphi-Quellcode:
Memo1.Lines.Strings[0] := '$config[''db_host''] = ''blablabla''';

Klaus01 21. Sep 2008 12:15

Re: Memo1 ' '
 
Delphi-Quellcode:
Memo1.Lines.Strings[0] := '$config['+quotedStr(db_host)+'] = ''blablabla''';

DeddyH 21. Sep 2008 12:17

Re: Memo1 ' '
 
Delphi-Quellcode:
Memo1.Lines.Strings[0] := Format('$config[%s] = %s',[QuotedStr(db_host), QuotedStr('blablabla')]);
Noch weitere Vorschläge? :mrgreen:

milos 21. Sep 2008 12:18

Re: Memo1 ' '
 
Danke jetzt gehts

Jelly 21. Sep 2008 12:19

Re: Memo1 ' '
 
Manuel hat dir zwar jetzt die direkte Lösung geschrieben. Aber nächstes Mal solltest du versuchen, dir mal die gegebenen Tipps anzuschauen, und dann die entsprechende Hilfe dazu durchzulesen. Das mit den doppelten '' und sogar die QuotedStr Funktion wurde alles bereits genannt.

Und mein Favorit, der Überischt wegen, wäre folgender Ansatz

Delphi-Quellcode:
Memo1.Lines.Strings[0] := format('$config[''%s''] = ''%s''', [feldName, inhalt]);
Die Format Funktion berücksichtigt seinerseits bereits ' in den Parametern (in deinem Fall inhalt), so dass du dich nur noch um die äussere '...' Setzung zu kümmern hast

Die Muhkuh 21. Sep 2008 12:20

Re: Memo1 ' '
 
Jelly, da würde ich aber Detlefs Variante bevorzugen, um das "Gefummel" mit dem Escapen der Anführungszeichen zu umgehen. Bei Detlef sieht man gleich, dass da noch die Quotes hinzugefügt werden.

Jelly 22. Sep 2008 06:56

Re: Memo1 ' '
 
Zitat:

Zitat von Die Muhkuh
Jelly, da würde ich aber Detlefs Variante bevorzugen, um das "Gefummel" mit dem Escapen der Anführungszeichen zu umgehen. Bei Detlef sieht man gleich, dass da noch die Quotes hinzugefügt werden.

Das glaub ich, schlägt aber fehl, weil die Format-Funktion selbst innerhalb der Zeichenkette aus einem ' ein '' macht. Somit würde der Effekt verdoppelt durch QuotedStr und es stünde '''' da, was nach im Output zu einem '' führt. :roteyes:


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