@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

改行コードについて

1
投稿者投稿内容
sarah
常連さん
会議室デビュー日: 2006/02/08
投稿数: 32
投稿日時: 2006-04-26 18:06
お疲れ様です。

VB.NETからPL/SQLに引数として文字列を渡しそれをファイルに出力させる処理を
記述しています。
このとき、引き渡す文字列に改行コードが入っているとうまくファイル出力でき
ません。例えば、"test" & vbCrLf & "solid" という文字列を渡し、出力させる
と下のように無意味に1行空いて出力されてしまいます。回避できますでしょう
か?宜しくお願いします。


test
    ←ここが1行分空いてしまう。
solid
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-26 18:13
引用:

sarahさんの書き込み (2006-04-26 18:06) より:

無意味に1行空いて出力されてしまいます。
回避できますでしょうか?


ControlChars.CrLf または、ControlChars.NewLine ではなく、
ControlChars.Cr または、ControlChars.Lf で渡すとどうなりますか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
sarah
常連さん
会議室デビュー日: 2006/02/08
投稿数: 32
投稿日時: 2006-04-26 19:21
じゃんぬねっと様
 
 str.Replace(vbCrLf, ControlChars.Cr)のように置き換えて処理を行うと
 一行空けずに出力するようになりました。
 同時に同じ内容をDB登録していたのですが、そちらも変更ありませんでした。

 有難うございました。
 
 
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-04-27 00:07
解決したという結果しか読み取れないのは私だけでしょうか(^^;
不思議なスレッドだ。。。誰か説明してぇ〜
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 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セルになってしまう)
そういうのと同じような感じ?
sarah
常連さん
会議室デビュー日: 2006/02/08
投稿数: 32
投稿日時: 2006-04-27 10:26
vbCrLfだとファイル出力の際、改行が2回行われていました。
そこでCr(キャリッジリターン)、あるいはLf(ラインフィー
ルド)のどちらかに置き換えると正常に改行が行われました。
色々調べてはいるのですが何故そのようになるのかは不明です。
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-04-27 10:26
引用:

PL/SQLとの絡みは私もよくわかりませんが、


ははーん、DB側のコードページで動いてるってことですか。。。

実は何が不思議かって言うと、
じゃんぬ氏の文章がピンポイントオンリーだということ。(^^;
#神の声みたいっす
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-04-27 22:37
ぼのぼのさんの解説から、、、

* ファイルを確認したアプリケーションが、何を「改行」と判断するか
* ファイルを欲しているもの(人やアプリケーション)が、何を「改行」とするか

この2点を確認する必要があると思いました。
単に見た目で「空行が出来る」と判断するのはマズいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)