- - PR -
改行コードについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-26 18:06
お疲れ様です。
VB.NETからPL/SQLに引数として文字列を渡しそれをファイルに出力させる処理を 記述しています。 このとき、引き渡す文字列に改行コードが入っているとうまくファイル出力でき ません。例えば、"test" & vbCrLf & "solid" という文字列を渡し、出力させる と下のように無意味に1行空いて出力されてしまいます。回避できますでしょう か?宜しくお願いします。 test ←ここが1行分空いてしまう。 solid | ||||
|
投稿日時: 2006-04-26 18:13
ControlChars.CrLf または、ControlChars.NewLine ではなく、 ControlChars.Cr または、ControlChars.Lf で渡すとどうなりますか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-04-26 19:21
じゃんぬねっと様
str.Replace(vbCrLf, ControlChars.Cr)のように置き換えて処理を行うと 一行空けずに出力するようになりました。 同時に同じ内容をDB登録していたのですが、そちらも変更ありませんでした。 有難うございました。 | ||||
|
投稿日時: 2006-04-27 00:07
解決したという結果しか読み取れないのは私だけでしょうか(^^;
不思議なスレッドだ。。。誰か説明してぇ〜 | ||||
|
投稿日時: 2006-04-27 10:07
PL/SQLとの絡みは私もよくわかりませんが、OSごとに改行コードが違うのと何か関係するのでしょうか(^^;
OS単位で言うと、WindowsならCR+LF(¥r¥n)、UNIXならLF(¥n)、MacならCR(¥r)ですよね。 あと、Excelのセル内の改行はLFだったり。(CR+LFだと縦2セルになってしまう) そういうのと同じような感じ? | ||||
|
投稿日時: 2006-04-27 10:26
vbCrLfだとファイル出力の際、改行が2回行われていました。
そこでCr(キャリッジリターン)、あるいはLf(ラインフィー ルド)のどちらかに置き換えると正常に改行が行われました。 色々調べてはいるのですが何故そのようになるのかは不明です。 | ||||
|
投稿日時: 2006-04-27 10:26
ははーん、DB側のコードページで動いてるってことですか。。。 実は何が不思議かって言うと、 じゃんぬ氏の文章がピンポイントオンリーだということ。(^^; #神の声みたいっす | ||||
|
投稿日時: 2006-04-27 22:37
ぼのぼのさんの解説から、、、
* ファイルを確認したアプリケーションが、何を「改行」と判断するか * ファイルを欲しているもの(人やアプリケーション)が、何を「改行」とするか この2点を確認する必要があると思いました。 単に見た目で「空行が出来る」と判断するのはマズいと思います。 |
1