改行コードを書き込むには?

解決


ごたん  2004-03-23 20:13:40  No: 112478

vb.netを使用しています。
テキスト形式のファイルに改行コードの書き込みを
したいのですが「vbCrLf」と直接指定すると
ファイル内で改行してしまうのでコードを書き込むように
するにはどうすればよいのでしょうか?
ちなみにエディタ(秀丸)で開くと「CL」と表示されている
コードを書き込むようにしたいのです。
説明不足でしたらすいません。


へいぽ  2004-03-23 20:25:07  No: 112479

基本的に難しいというか、出来ないと考えた方が良いかと。
もし強引にやるならば、改行の位置を全て調べて、その位置に
CL のような画像を配置するような感じになると思います。


魔界の仮面弁士  2004-03-23 22:07:27  No: 112480

秀丸で CL と表示される文字というと…ChrW(&HC)の文字ですかね。
ただ、これは改行コードというわけではありませんし、他のエディタで見ると、
FF と表示されたり、あるいはまったく表示されなかったりもします。

文字コードに拘らないのであれば、Unicode系のテキストファイル(UTF-8やUTF-16など)で出力すれば、ChrW(&H240A)の文字…すなわち、
  U+240A: Symbol For Line Feed
という文字を使うこともできます。

こちらであれば、Unicode対応のエディタ(秀丸等)に CL と表示されると思います。
……といっても、どのように表示されるかは使用するUnicode対応フォントによって異なってくる事もありえますが……少なくとも "Arial Unicode MS"であれば、CL という文字が表示されるでしょう。


ごたん  2004-03-23 23:14:24  No: 112481

色々ありがとうございます。
まだ完全な解決には至ってないのですが
何とかなりそうな気がしてきたので
アドバイスと元に自分で試行錯誤を繰り
替えして何とかしてみようと思います。

どうもありがとうございました。


特攻隊長まるるう  2004-03-23 23:20:03  No: 112482

vbCrLf が定数だという事はご理解いただけてるのでしょうか。
ヘルプで見ると Chr(13) + Chr(10) と説明されていると思います。
で、『A』と表示するのは Chr(65) です。
ご理解いただけましたでしょうか?。vbCrLf がコードなんです。
『改行コードを(少なくともテキスト形式のファイルで)表示する』
という事の矛盾をまず整理してください。

>ファイル内で改行してしまうのでコードを書き込むように
>するにはどうすればよいのでしょうか?
ファイル内で改行するから改行コードだということです…
逆に改行コードが表示されているというのは、何かに置き換えて
表示していると思っていいでしょう。

ちなみに ChrW 関数は、Unicode 文字セットの文字を含む文字列型
 (String) で文字を返します。Unicode をサポートしていない
プラットフォームでは、Chr 関数と同じ文字コードを返します。


ごたん  2004-03-24 01:34:33  No: 112483

特攻隊長まるるうさん
助言ありがとうございます。
ファイル内で改行するから改行コードなのはもっともですね。。。
ヘルプを見てvbCrLfが定数なのは理解しました。
何かに置き換えて表示していたので質問に矛盾が
生じておりました。
もし次回質問する機会があるならばもっと自分で調べて
から質問できるようにしたいと思います。
親切に説明してくださりありがとうございました。


魔界の仮面弁士  2004-03-24 02:17:38  No: 112484

> ちなみにエディタ(秀丸)で開くと「CL」と表示されている
> コードを書き込むようにしたいのです。

秀丸でいう CL とは、恐らく、
  http://www.ocv.ne.jp/~oratorio/junk/image/CL.png
のような事だと思いますが、先にも書いたように、
これは改行コードではありませんし、下記のように他のエディタでは、
CLとは表示されない可能性があります。
http://www.unipad.org/unimap/index.php?page=detail&param_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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加