プロが教えるわが家の防犯対策術!

昨日秀丸の改行について質問したものです。
謎が自分なりに解けたので、再度一点質問させてください。

改行コードCRと改行コードLFを混在させたいと思っています。

ノートパッドで混在したデータをWindowsで開くと、
LFが上向きの「↑」になり、
CRが「■」(黒い四角、実際はもう少し幅が狭いです)

になるようだと試行錯誤の結果つきとめました。

そこでこの「二種類の改行コードが混在したファイルを自在に作成できるようにしたい」と思っています。

そこで質問を3点にまとめます。

1、ノートパッド上では、その二種類が混在することは可能だとわかりましたが、秀丸では無理なのでしょうか。

2、改行コードはテキストエディタの編集の場合、文字で表現できないのでしょうか?
\nというのは改行コードを意味しないのでしょうか。
これで自在に改行コードを文字で表現できれば混在も可能かと思います。

3、少し話しはそれますが、EUCとShift-JISの文字コードはやはり、Shift-JISじゃないと、サーバーにアップしても日本語は文字化けすると思うのですが、どうでしょうか。


宜しくお願い致します。

A 回答 (5件)

アスキーコード表を見てくださいね


http://hp.vector.co.jp/authors/VA008536/data/asc …

>つまり、0Dが、LFだということでしょうか。
>そして、0AがFSではないかという推測です。
ODはCR
OAはLF です
だから

記事1:data1 LF data2 LF
CR
記事2:data1 LF data2 LF

となります
(記事間の CR はロジックで決めてると思うのですが)

>バイナリエディタについて私なりに調べてみましたが、使>いやすいバイナリエディタ、またバイナリエディタによる>改行コードの変更方法を教えていただけないでしょうか。

Stirling
http://www.vector.co.jp/soft/win95/util/se079072 …

使いやすいですよ

>従って、バイナリエディタをうまく使えば、
>FS,CR,LF,CR+LF
>も自在に混在したテキストファイルが作成できるのではな>いかという推測が経ちましたが、
>間違っていたら容赦なくご指摘願えますでしょうか。

テキストエディタにもよるんですけど、
秀丸は制御コードの入力できます
よくやるのがCL(改ページ)ですね
(CR,LFは無理、CRLFは可能)

この回答への補足

すみません。締め切るのを忘れておりました。
改めて御礼申し上げます。

補足日時:2003/06/29 13:55
    • good
    • 0
この回答へのお礼

nagareさん、ありがとうございます。

わかりました!
Stirlingすごいですね!!
バイナリエディタでコードを操れば改行コードも思いのままで掲示板のログデータの改変も可能になりました。
凄く勉強になりました。

一点、恐縮ながら、訂正があるのですが、

記事1:data1 LF data2 LF
CR
記事2:data1 LF data2 LF

ではなく、

記事1:data1 CR data2 CR
LF
記事2:data1 CR data2 CR

でした。
CRが0Dで、LFが0Aなので。

なぜ、CRの改行が生じているのか、いまだに疑問は晴れませんが、ロジックというのは、私のCGIのスクリプトに何か問題があるはずだと推測も立つのですが、
その詳細はもっと勉強する必要がありそうです。

今回は本当に勉強になりました。
ご丁寧にありがとうございました。

お礼日時:2003/06/29 01:08

はいはい わかりました



記事1:data1 CR data2 CR
LF
記事2:data1 CR data2 CR

というデータ構成ですね
それで”なんでCRで改行してんねん”ですね

勘違いしてませんか?
>LFが上向きの「↑」になり、CRが「■」

実験しましたところ LFもCRも「■」(黒い四角、実際はもう少し幅が狭いです) になりました
さらに、#3さんの回答から

記事1:data1 LF data2 LF
FS
記事2:data1 LF data2 LF

だと思われます

一度、log.datファイルを テキストエディタ ではなく バイナリエディタ で見ることをお勧めします


>秀丸の場合、改行コードを文字で表現するにはどうすればいいのでしょうか。
CRLFじゃなくてCRとLFを表示した場合ですか?
やってみましたら両方とも ↓ が表示されました
    • good
    • 0
この回答へのお礼

nagareさん、ありがとうございます。

おっしゃられるとおりで、

記事1:data1 LF data2 LF
FS
記事2:data1 LF data2 LF

が正解だと思われます。やはりUNIX上の改行であって、CRになる可能性はないでしょうし、
その、FSという存在があるのでしたら、上記のnagareさんが回答してくださった仕組みに間違いありません。

そこでバイナリエディタというものがあることすら知らなかったのですが、早速調べてみました。
狐'sバイナリエディタというのを、
以下のサイトで見つけたので、
http://www.vector.co.jp/soft/dl/win95/util/se032 …
早速ダウンロードして、問題のdatファイルを開いてみました。

すると、
記事と記事の間の改行は、
0A
(ゼロとA です)
というコードであらわされていることに気がつきました。

そして、問題の記事内の改行(おそらくLF)は、
0D
(ゼロとD です)
というコードであらわされていました。

コード表記(アスキーコード?)の読み方がわからないのですが、
つまり、0Dが、LFだということでしょうか。
そして、0AがFSではないかという推測です。

バイナリエディタについて私なりに調べてみましたが、使いやすいバイナリエディタ、またバイナリエディタによる改行コードの変更方法を教えていただけないでしょうか。

お礼日時:2003/06/28 19:33

昨日の質問に対する回答です。

状況が分かったので、今度は確実な回答です。

「↑」の正体はFS(0x1c)です。これは直截に改行という意味ではなく、ファイルの区切りという意味です。もし、他の方向の矢印が出てきたら、GS、RS、USです。

「■」の正体はLF(0x10)です。これはUNIX系の改行です。CR+LFと続く場合は、2文字が合わさって、Windows系の改行として認識されます。この場合のLFは「■」になりません。


私は秀丸を使ったことがないので本日の質問には答えられませんが、以上が他の解答者の参考になれば幸いです。
    • good
    • 0
この回答へのお礼

furlongさん、ありがとうございます。
先日はお世話になりました。

FSについて私は存在すら知りませんでした。

ファイルの区切りを表すコードがあるということは
知りませんでした。

問題のlog.datファイルをバイナリエディタで確認しましたところ、

LFと思しき改行コードはバイナリエディタで、
0D (ゼロD)
とあらわされていました。
また、
FSと思しきコードは、バイナリエディタで、
0A
とあらわされていました。

従って、バイナリエディタをうまく使えば、
FS,CR,LF,CR+LF
も自在に混在したテキストファイルが作成できるのではないかという推測が経ちましたが、
間違っていたら容赦なくご指摘願えますでしょうか。

また、お薦めの編集しやすいバイナリエディタがありましたらお知らせいただけたら幸いです。

お礼日時:2003/06/28 19:39

うーーん


質問の意味が・・・

復習
"Windowsでは改行コードはCRLFの2文字(13,10)
UNIX系では、LF(10)
MacOSではCR(13)
"
それで
>改行コードCRと改行コードLFを混在させたいと思っています。
どのOSの話をしてます?
秀丸の話がでているので、Windowsですよね
ということはWindowsでは改行コードはCRLFの2文字(13,10)なので、混在してます が答え
でも
>ノートパッドで混在したデータをWindowsで開くと、
LFが上向きの「↑」になり、
CRが「■」(黒い四角、実際はもう少し幅が狭いです)
から
「CRとCFをノートパッドで開いたら」ですよね

質問1
可能です

質問2
C言語の話をしてます?
Windows上でテキストエディタの話をしているなら
CRCLです
テキストエディタ毎に”改行コードの表示方法”はまちまちです

質問3
FTPで転送するときに”EUC←→Shift-JIS”文字変換にすればOKです
★EUCなのにブラウザがShift-JIS表示になっていたらバケるけどね★
    • good
    • 0
この回答へのお礼

ありがとうございます。

やはり質問としてはちょっと不明瞭になってしまいました・・私自身実際にまだ悩んでいるので、このようになってしまいました。分かりにくくて申し訳ございません。


どのOSでの話なのかということですが、
実は、まずCRとLFの混在が推測できた理由は、
サーバ上において掲示板のCGIにおいて作成されたログが格納されているdatファイルの中身が、まさにCRとLFが混在されていたからです。

これでもまだちょっと不明瞭な説明になっているので、もっと詳しく書きます。
まず私の作成した掲示板CGIプログラムは投稿される記事をlog.datの中の最終行にどんどん追加していきます。記事と記事の境目には必ず改行が入ります。
その際、一行で一つの記事という仕組みになっています。(ちなみにこの掲示板はFlash掲示板なので、記事内の「改行」を<br>というタグに変換する処理は加えていません。)

そこで、あえて投稿する記事に改行を加えてみたところ、特に問題なく改行も反映されて表示されました。この段階で不思議だったのは、なぜ「記事内の改行」が「記事と記事の間に必ず入る改行」と混同されなかったかということでした。

そこで改行コードが別のものとして判別されているのではないかという推測が浮かび、案の定、
log.datファイルをWindowsのノートパッドで開くと、記事と記事の間の改行箇所には、上向きの「↑」で、
記事内の改行の箇所には、「■」が、
表示されていました。

そこで・・、
どうやら掲示板のプログラムの記事の改行は、LFではなく、CRで行われている?ようだと推測しました。

ですが、マックOSがCRなので、確かにおかしい気がしています。


秀丸の場合、改行コードを文字で表現するにはどうすればいいのでしょうか。

お礼日時:2003/06/27 22:25

3だけ。



それは転送の仕方とブラウザの設定次第です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!