変数内の文字列をエスケープシーケンスに対応させたい

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
yu0627
記事: 154
登録日時: 2005年5月31日(火) 14:53

変数内の文字列をエスケープシーケンスに対応させたい

#1 投稿記事 by yu0627 »

タイトルにあるとおりです。
例えば変数Bufに以下のような文字列を代入します。

コード: 全て選択

Buf = Ex"エスケープシーケンスを\n有効にする"
これを普通に変数として使った場合「\n」が普通の文字として認識されます。
これをエスケープシーケンス対応にして
「エスケープシーケンスを
 有効にする」
というふうになるようにしたいです。しかし、やり方がわかりません。
もしかしたら無理かもしれませんが、可能なら方法を教えていただきたいです。
お願いします。
Mario2
記事: 205
登録日時: 2005年5月31日(火) 13:31
お住まい: 大阪市
連絡する:

Re: 変数内の文字列をエスケープシーケンスに対応させたい

#2 投稿記事 by Mario2 »

>

コード: 全て選択

Buf = Ex"エスケープシーケンスを\n有効にする"
これを普通に変数として使った場合「\n」が普通の文字として認識されます。
> これをエスケープシーケンス対応にして
> 「エスケープシーケンスを
>  有効にする」
> というふうになるようにしたいです。しかし、やり方がわかりません。

確か、改行は

コード: 全て選択

Buf = Ex"エスケープシーケンスを\r\n有効にする"
のように「\n」の前に「\r」が必要だったと思います。(違っていたらすいません)
yu0627
記事: 154
登録日時: 2005年5月31日(火) 14:53

返信@yu0627

#3 投稿記事 by yu0627 »

いいえ。僕が考えているのは以下のようなことです。
テキストファイルに以下のように書かれている:
「SetMain:"テスト\nテスト"」
この「SetMain:」の部分を除去して変数に代入し、それをエディットボックスに表示させたいと思っています。
先頭部分の除去はもう完成しています。しかし、以下のようにしてもそのまま出力されます。

コード: 全て選択

lstrcpy(buffer2, "Ex" + temp)
そのほかの方法はないのでしょうか。
確か、改行は

コード: 全て選択

Buf = Ex"エスケープシーケンスを\r\n有効にする"
のように「\n」の前に「\r」が必要だったと思います。(違っていたらすいません)
いいえ、\r\n(CRLF)をテキストファイルの一行の検索に使っていますのでこれは使えません。
それに確かWindowsは「\r」「\n」どちらの改行コードにも対応しているはずですので。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

Re: 返信@yu0627

#4 投稿記事 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
記事: 154
登録日時: 2005年5月31日(火) 14:53

返信@yu0627

#5 投稿記事 by yu0627 »

返信ありがとうございます。
やはり無理ですか^^;
では、自分で色々と作ってみます。
返信する