改行コードの置換No.11674
yrk00770 さん 02/04/03 16:20
 
ある分析装置が吐き出すテキストデータがあるのですが、PC-9801/
MS-DOS/Vz エディタでファイルを見ると下記のように表記されます。

1, 245^M
2, 286^M
3, 294^M
...

で、^M は改行コードが CR を示しているとのことでしたので、秀丸で
読み込んで CR+LF に置換して保存しようと考えましたが、上手くいか
ずに困っています。秀丸では \r が CR、\n が CR+LF の様ですので、
正規表現で \r → \n の置換をすればよいと考えていたのですが、置
換をしてみたところ「\r が見つかりません」とメッセージが出ました。
そこで \n で検索をしたところ、Vz エディタで見たときには ^M だっ
た改行が秀丸では \n で検索にかかるのです。

色々なホームページで調べた結果、秀丸では CR を CR+LF に変換して
読み込んでくれているらしいと理解したのですが、それなら“保存後”
のファイルは CR+LF になっているかと思いきや、Vz エディタで見る
と相変わらず ^M のままなのです。

もう少し調べると、秀丸では「ファイルタイプ別の設定」のところで保
存時の改行コードが選択できるとのことでしたので、改行=CR+LF に指
定して保存したところ、そのファイルは Vz エディタで見ても ^M が↓
に変わっており、\n に変換されていることが分かりました。

…が問題がありました。データが多量なのでマクロで一括処理して保存
したいのですが、マクロでは改行コードの指定をして保存ができないの
でしょうか。改行コードを CR+LF に指定しておいても、マクロでの保
存の際には有効ではないようなのです。

どなたか、アドバイスを頂けませんでしょうか。宜しくお願いいたしま
す。

[ ]
RE:11674 改行コードの置換No.11675
ながさわ さん 02/04/03 16:34
 
長澤です。

>マクロでは改行コードの指定をして保存ができないの
>でしょうか。

saveasコマンドで指定できます。

[ ]
RE:11674 改行コードの置換No.11676
はてな さん 02/04/03 17:27
 
こんにちは、

>…が問題がありました。データが多量なのでマクロで一括処理して保存
>したいのですが、マクロでは改行コードの指定をして保存ができないの
>でしょうか。改行コードを CR+LF に指定しておいても、マクロでの保
>存の際には有効ではないようなのです。

MSDOS VZエディタは使用したことがないので推測ですが。
たぶん、MSDOS VZエディタの改行コードは、LFなのではないでしょうか?

UNIXのVIエディタでの話なんですが、

・CR/LF で保存したファイルは、^M とついてその後に改行されます。
・CRで保存すると、^M がついて改行されません
・LFで保存すると、正常に改行されます。

ってことで、LFで保存してみたらいかがでしょう?

以上

[ ]
RE:11674 改行コードの置換No.11678
ひろ さん 02/04/03 18:16
 
 yrk00770 さん今日は、ひろです。
> マクロでは改行コードの指定をして保存ができないの
> でしょうか。
 saveas をマクロヘルプで調べると、
> saveas ファイル名[,sjis |unicode |euc |jis |utf7 |utf8][,lf |cr]
<中略>
> lfを指定すると、改行=LF の形式で保存され、crを指定すると、改行=CRの形式で
>保存されます。
とあります。
 CR+LF で保存したいとのことなので、
saveas filename, sjis;
//改行コードを指定しなければ、Shift-JIS デフォルトの CR+LF となる
の要領でよいです。

[ ]
RE:11674 改行コードの置換No.11680
アルビレオ さん 02/04/04 04:11
 
マクロで変換を行なう方法は他の方が書かれているのでおいといて、
ワイルドカードなどを使って一括処理したい場合は専用の変換プログラムを
使った方が楽な場合もあります。

ベクターなら以下の場所にいくつかあるので目的に合ったものを選んでください。
http://www.vector.co.jp/vpack/filearea/win/util/text/conv/index.html

はてなさんへ
> MSDOS VZエディタは使用したことがないので推測ですが。
> たぶん、MSDOS VZエディタの改行コードは、LFなのではないでしょうか?
「VZエディタで見ると」^MとなっているだけでVZエディタが出力したファイルの話で
はありませんね。
MS-DOS(Windowsも)テキストファイルの標準的な改行コードはCR-LFです。当然VZエデ
ィタも。
CRをテキストの改行コードとして使うのは昔のBASICやPascal、現役ではMacintoshな
どですね。

[ ]
RE:11674 改行コードの置換(ありがとうごNo.11682
yrk00770 さん 02/04/04 21:35
 
ありがとうございました。

> CR+LF で保存したいとのことなので、
> saveas filename, sjis;
> //改行コードを指定しなければ、Shift-JIS デフォルトの CR+LF とな
> るの要領でよいです。

でバッチリでした。saveas は見つけたのですが、CR+LF のオプションが
無かったので弱り果てていました。sjis でよかったんですね。ちょっと
頭が固かったです。

変換ソフトでも改行コードの問題は対応できるのですが、マクロ中で他に
も処理したいことがいくつかあったのでマクロを選びました。

コメント頂いた方々、どうもありがとうございました。

[ ]