[delphi-users:3306] Delphi5とXE4のエスケープ文字の扱い

509 views
Skip to first unread message

Aikido

unread,
Aug 2, 2013, 9:49:52 PM8/2/13
to delphi...@freeml.com
いつもお世話になります。
Aikidoです

以下のようなプログラムでDelphi5 と XE4 での文字列内のエスケープ文字の扱
いが違っているようですがシングルクォーテーションが二重にならないように
するにはどうしたらよいでしょうか。

var
TestString: String;
begin
TestString := 'TEST' + ' ''STRING'' ';
Label1.Caption := TestString;
end;

これをDelphi5とXE4で実行すると両方ともラベルには TEST 'STRING' と
表示されますがTestStringに代入した時点で文字列を確認すると
Delphi5 'TEST 'STRING' '
XE4 'TEST ''STRING'' '
となっているようです。
XE4でDelphi5と同じ結果を得るためにはどうすればいいのでしょうか?
SQL文を作成するときに支障が出るような気がしますが・・・




MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
いつでもどこでもメールチェック!freemlのスマートフォンアプリ
http://ad.freeml.com/cgi-bin/sa.cgi?id=kktDx
------------------------------------------------------[freeml byGMO]--

ポン太

unread,
Aug 4, 2013, 8:24:08 PM8/4/13
to delphi...@freeml.com
Aikido さん、こんにちは。ポン太 です。

XE4は知りませんが。


> TestString := 'TEST' + ' ''STRING'' ';

Delphi5の場合は、' '+AnsiQuotedStr('STRING','''')+' '
などとする方がお勧めです。XE4でも同等の関数があると思います。


>これをDelphi5とXE4で実行すると両方ともラベルには TEST 'STRING' と
>表示されますがTestStringに代入した時点で文字列を確認すると

どう確認しているのかわかりませんが、単にデバッガで表示させているだけなら、
デバッガの表現の仕方が違うだけでは?ラベルに表示されているもので考えれば
良いと思います。


>SQL文を作成するときに支障が出るような気がしますが・・・

実際にSQL文を作成し、RDBMSに投げてみれば良いと思います。ここで聞くより早
いです。


2013/08/05(月) 09:14 ポン太


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
使い方はいろいろ♪一部のメンバーだけにMLメールを送ろう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=kkGUI
------------------------------------------------------[freeml byGMO]--

Aikido

unread,
Aug 5, 2013, 2:44:23 AM8/5/13
to delphi...@freeml.com

ポン太さんありがとうございます。

AnsiQuotedStr('STRING','''') これ試してみます。

実際にSQL文として送るとエラーとなってしまうようです。
SQLのデバッガーでどのように送信されているか確認してみる必要がありそうで
すね。

まずはお勧めからやってみます。
Delphi5のシステムをXE4に移行するためいろいろと手直しが必要なようです。






MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
メールだけでみんなを招待できる便利機能♪
http://ad.freeml.com/cgi-bin/sa.cgi?id=kkMfN
------------------------------------------------------[freeml byGMO]--

hosokawa

unread,
Aug 5, 2013, 2:55:51 AM8/5/13
to delphi...@freeml.com
Aikido さん

こんにちは。
細川です。

多分デバッガで確認したのだと思いますが、Delphi 5 と XE4 で別の結果が出る事はな
いと思います。

試しに以下のコンソールアプリケーションを実行してみてください。

----------------------------------------------------------------------
program Project1;

{$APPTYPE CONSOLE}

var
TestString: String;
begin
TestString := 'TEST' + ' ''STRING'' ';

Writeln(TestString);
Readln;
end.
----------------------------------------------------------------------

同じ結果が出力されると思います。


Regards,
HOSOKAWA Jun
[S/G] SERIALGAMES Inc.
TEL: 03-5812-0980
FAX: 03-5812-0970
twitter: http://twitter.com/serialgames
twitter: http://twitter.com/flaver_sg
mailto: j...@serialgames.co.jp
fla:ver http://flaver.jp/
WebCapS http://www.serialgames.co.jp/fun.html#WebCapSeria


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
練習や試合の予定調整は「とっとと決め太郎」におまかせ!
http://ad.freeml.com/cgi-bin/sa.cgi?id=kkMp6
------------------------------------------------------[freeml byGMO]--

Aikido

unread,
Aug 5, 2013, 3:25:33 AM8/5/13
to delphi...@freeml.com
細川様 ありがとうごとざいます。

確かに同じ結果が表示されますね、うぅぅむ。
プログラム内で作成しているSQL文をファイルに出力して調べてみます。

皆様お手数をお掛け致しました。






MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
いつでもどこでもメールチェック!freemlのスマートフォンアプリ
http://ad.freeml.com/cgi-bin/sa.cgi?id=kkMD8
------------------------------------------------------[freeml byGMO]--

snail3

unread,
Aug 5, 2013, 4:18:43 AM8/5/13
to delphi...@freeml.com
単純にデバッガだけの問題だと思います。

DBに送られる文字列はDELPHI5もXEも同じだと思います。

--
takashi <taka...@csjpn.com>


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
使い方はいろいろ♪一部のメンバーだけにMLメールを送ろう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=kkNyH
------------------------------------------------------[freeml byGMO]--

ken

unread,
Aug 5, 2013, 5:02:02 AM8/5/13
to delphi...@freeml.com
こんにちは。
デバッグ時に文字列を評価して確認する際の動作であれば、QualityCentralで報告されている
http://qc.embarcadero.com/wc/qcmain.aspx?d=107581
http://qc.embarcadero.com/wc/qcmain.aspx?d=107992
が該当するかと思います。
昔のバージョンとその後のバージョンとで表示するフォーマットが異なるみたいです。

--
高橋智宏

snail3 wrote:
> 単純にデバッガだけの問題だと思います。
>
> DBに送られる文字列はDELPHI5もXEも同じだと思います。
>


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
メールだけでみんなを招待できる便利機能♪
http://ad.freeml.com/cgi-bin/sa.cgi?id=kkPcn
------------------------------------------------------[freeml byGMO]--

Aikido

unread,
Aug 5, 2013, 6:20:38 AM8/5/13
to delphi...@freeml.com
高橋様 ありがとうございます。

なるほどわかりました。






MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
練習や試合の予定調整は「とっとと決め太郎」におまかせ!
http://ad.freeml.com/cgi-bin/sa.cgi?id=kkQmm
------------------------------------------------------[freeml byGMO]--

Reply all
Reply to author
Forward
0 new messages