ページ 1 / 1
変数内の文字列をエスケープシーケンスに対応させたい
Posted: 2005年8月03日(水) 20:40
by yu0627
タイトルにあるとおりです。
例えば変数Bufに以下のような文字列を代入します。
コード: 全て選択
Buf = Ex"エスケープシーケンスを\n有効にする"
これを普通に変数として使った場合「\n」が普通の文字として認識されます。
これをエスケープシーケンス対応にして
「エスケープシーケンスを
有効にする」
というふうになるようにしたいです。しかし、やり方がわかりません。
もしかしたら無理かもしれませんが、可能なら方法を教えていただきたいです。
お願いします。
Re: 変数内の文字列をエスケープシーケンスに対応させたい
Posted: 2005年8月03日(水) 20:57
by Mario2
>
コード: 全て選択
Buf = Ex"エスケープシーケンスを\n有効にする"
これを普通に変数として使った場合「\n」が普通の文字として認識されます。
> これをエスケープシーケンス対応にして
> 「エスケープシーケンスを
> 有効にする」
> というふうになるようにしたいです。しかし、やり方がわかりません。
確か、改行は
コード: 全て選択
Buf = Ex"エスケープシーケンスを\r\n有効にする"
のように「\n」の前に「\r」が必要だったと思います。(違っていたらすいません)
返信@yu0627
Posted: 2005年8月04日(木) 19:04
by yu0627
いいえ。僕が考えているのは以下のようなことです。
テキストファイルに以下のように書かれている:
「SetMain:"テスト\nテスト"」
この「SetMain:」の部分を除去して変数に代入し、それをエディットボックスに表示させたいと思っています。
先頭部分の除去はもう完成しています。しかし、以下のようにしてもそのまま出力されます。
コード: 全て選択
lstrcpy(buffer2, "Ex" + temp)
そのほかの方法はないのでしょうか。
確か、改行は
コード: 全て選択
Buf = Ex"エスケープシーケンスを\r\n有効にする"
のように「\n」の前に「\r」が必要だったと思います。(違っていたらすいません)
いいえ、\r\n(CRLF)をテキストファイルの一行の検索に使っていますのでこれは使えません。
それに確かWindowsは「\r」「\n」どちらの改行コードにも対応しているはずですので。
Re: 返信@yu0627
Posted: 2005年8月04日(木) 19:20
by イグトランス
> いいえ。僕が考えているのは以下のようなことです。
> テキストファイルに以下のように書かれている:
> 「SetMain:"テスト\nテスト"」
> この「SetMain:」の部分を除去して変数に代入し、それをエディットボックスに表示させたいと思っています。
> 先頭部分の除去はもう完成しています。しかし、以下のようにしてもそのまま出力されます。
コード: 全て選択
lstrcpy(buffer2, "Ex" + temp)
> そのほかの方法はないのでしょうか。
こういうことは残念ながらできません。
自分で"\n"をEx"\r\n"に置き換えるような関数でも作る必要があります。
確か、改行は
コード: 全て選択
Buf = Ex"エスケープシーケンスを\r\n有効にする"
のように「\n」の前に「\r」が必要だったと思います。(違っていたらすいません)
> いいえ、\r\n(CRLF)をテキストファイルの一行の検索に使っていますのでこれは使えません。
> それに確かWindowsは「\r」「\n」どちらの改行コードにも対応しているはずですので。
WindowsはあくまでもEx"\r\n"が改行です。Ex"\r"やEx"\n"が使えるものは個々のプログラム・コンポーネントが個別に対応しているだけです。
(もちろん原則論であり、たとえばC/C++などでは改行は\nだったりということもあります)
返信@yu0627
Posted: 2005年8月04日(木) 20:11
by yu0627
返信ありがとうございます。
やはり無理ですか^^;
では、自分で色々と作ってみます。