DOBON.NETプログラミング道掲示板
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
No34552 の記事
■34552
/ )
Re[1]: 改行のコード
□投稿者/ 魔界の仮面弁士
大御所(1302回)-(2020/10/04(Sun) 12:58:15)
■
No34546
に返信(Vettyさんの記事)
> この場合はどのように統一して保管すべきなのでしょうか?
自分の場合、accdb に入れるか、生バイナリのまま保持しておくことが
多いですが……テキスト形式での保存が必要な場合には
{テキスト部の文字数(10進数)}{CRLF}{改行入りテキスト本体}{CRLF}
のように、各テキストの先頭にデータサイズを埋め込んだりしています。
テキストを手動で書き換える事もある場合は、サイズ埋め込みは面倒なので
\r や \n で置き換えて単一行にすることもしばしばあります。
この場合は \\ へのエスケープも必要ですね。
改行パターンが事前に分からない場合、
Cr/CrLf/Lf をすべて CrLf に正規化するために
Dim rawString As String = …
Dim fmtString As String = rawString.Replace(vbCrLf, vbLf).Replace(vbCr, vbLf).Replace(vbLf, vbCrLf)
のようなコードを書くこともあります。
> 0Ah だけ
> 0Dh だけ
> 0Dh 0Ah
> のどれかにしてしまっていいものでしょうか?
元のバイナリを維持する必要があるかどうか、だと思います。
たとえば
No34549
で紹介した EM_FMTLINES などは、
[0Dh 0Dh 0Ah] と [0Dh 0Ah] を明確に区別しているため、
これらの改行コードを統一化してしまうと、
ソフト改行とハード改行を区別できなくなってしまいます。
しかし、それを許容できるケースであるのならば問題無いでしょう。
あるいは RFC1945 で定義された HTTP Header だと、
長い行の折り返しのために、行末に LWS (Linear White Space) すなわち
「CRLF(0Ah,0Dh) の後に、SP(20h) または HT(09h) が 1 つ以上続くトークン」
を付与することになっています。
この場合、出力側としては【CRLF を使うことが求められる】のですが、
その一方で、入力側は CRLF の代わりに単独 CR や単独 LF が
使われることも許容して処理するべきとされています。
そのほか XML Parser の世界では、XML 1.0 勧告において、
内部処理のために正規化した【LF のみに統一された文字列】として
処理することになっています。
なので、XML の解析処理を行った後は、CR や CRLF が
LF に変換された出力される可能性が高いです。
(未加工で出力してくる処理系もあります)
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
返信
削除キー/
編集
削除
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-