vb.netを使用しています。
テキスト形式のファイルに改行コードの書き込みを
したいのですが「vbCrLf」と直接指定すると
ファイル内で改行してしまうのでコードを書き込むように
するにはどうすればよいのでしょうか?
ちなみにエディタ(秀丸)で開くと「CL」と表示されている
コードを書き込むようにしたいのです。
説明不足でしたらすいません。
基本的に難しいというか、出来ないと考えた方が良いかと。
もし強引にやるならば、改行の位置を全て調べて、その位置に
CL のような画像を配置するような感じになると思います。
秀丸で CL と表示される文字というと…ChrW(&HC)の文字ですかね。
ただ、これは改行コードというわけではありませんし、他のエディタで見ると、
FF と表示されたり、あるいはまったく表示されなかったりもします。
文字コードに拘らないのであれば、Unicode系のテキストファイル(UTF-8やUTF-16など)で出力すれば、ChrW(&H240A)の文字…すなわち、
U+240A: Symbol For Line Feed
という文字を使うこともできます。
こちらであれば、Unicode対応のエディタ(秀丸等)に CL と表示されると思います。
……といっても、どのように表示されるかは使用するUnicode対応フォントによって異なってくる事もありえますが……少なくとも "Arial Unicode MS"であれば、CL という文字が表示されるでしょう。
色々ありがとうございます。
まだ完全な解決には至ってないのですが
何とかなりそうな気がしてきたので
アドバイスと元に自分で試行錯誤を繰り
替えして何とかしてみようと思います。
どうもありがとうございました。
vbCrLf が定数だという事はご理解いただけてるのでしょうか。
ヘルプで見ると Chr(13) + Chr(10) と説明されていると思います。
で、『A』と表示するのは Chr(65) です。
ご理解いただけましたでしょうか?。vbCrLf がコードなんです。
『改行コードを(少なくともテキスト形式のファイルで)表示する』
という事の矛盾をまず整理してください。
>ファイル内で改行してしまうのでコードを書き込むように
>するにはどうすればよいのでしょうか?
ファイル内で改行するから改行コードだということです…
逆に改行コードが表示されているというのは、何かに置き換えて
表示していると思っていいでしょう。
ちなみに ChrW 関数は、Unicode 文字セットの文字を含む文字列型
(String) で文字を返します。Unicode をサポートしていない
プラットフォームでは、Chr 関数と同じ文字コードを返します。
特攻隊長まるるうさん
助言ありがとうございます。
ファイル内で改行するから改行コードなのはもっともですね。。。
ヘルプを見てvbCrLfが定数なのは理解しました。
何かに置き換えて表示していたので質問に矛盾が
生じておりました。
もし次回質問する機会があるならばもっと自分で調べて
から質問できるようにしたいと思います。
親切に説明してくださりありがとうございました。
> ちなみにエディタ(秀丸)で開くと「CL」と表示されている
> コードを書き込むようにしたいのです。
秀丸でいう CL とは、恐らく、
http://www.ocv.ne.jp/~oratorio/junk/image/CL.png
のような事だと思いますが、先にも書いたように、
これは改行コードではありませんし、下記のように他のエディタでは、
CLとは表示されない可能性があります。
http://www.unipad.org/unimap/index.php?page=detail¶m_char=000C
まずは、
『秀丸で「CL」と表示される文字』を出力したいのか
『定数 vbCrLf で示される文字列』を出力したいのか
を明確にされた方が良いと思います。
一般に改行コードと呼ばれる物は、以下のいずれかを指します。
[CR] U+000D キャリッジリターン記号
[LF] U+000A ラインフィード記号
[CR][LF] U+000D U+000A 復帰改行
Windowsでは、CR LF が一般的ですね。
ただし処理系によっては、他の文字が行終端として扱われている事もあります。
例えばC#言語では、[PS](U+2029:Paragraph Separator)や[LS](U+2028:Line Separator)なども行の終端記号と見なされます。
http://www.microsoft.com/japan/msdn/library/ja/csspec/html/vclrfcsharpspec_C.asp
http://www.uri.sakura.ne.jp/~cosmic/yuno/lab/unicode_linefeed.html
ツイート | ![]() |