改行されるべきところで改行されていません – プログラミング – Home

改行されるべきところで改行されていませ...
 
通知
すべてクリア

改行されるべきところで改行されていません


まねぎ
 まねぎ
(@まねぎ)
ゲスト
結合: 22年前
投稿: 2
Topic starter  

よろしくお願いいたします。

CInternetSessionを使ってファイルをダウンロードするアプリケーションをつくっているので
すが、ダウンロードしてきたファイルをみると、げげっ。
ブラウザのソースでは改行されているのに、ダウンロードしてきたファイルでは改行されていな
い箇所が多々あります。

これはなぜですか?そして解決方法は?

ヒントでもかまいませんのでお願いいたします。


引用解決済
トピックタグ
すがり
 すがり
(@すがり)
ゲスト
結合: 22年前
投稿: 6
 

unixとWindowsでは改行コードが違うけど?
>ブラウザのソースでは改行されているのに、
>ダウンロードしてきたファイルでは改行されていない箇所が多々あります。
何で確認されました? サーバーは?


返信引用
まねぎ
 まねぎ
(@まねぎ)
ゲスト
結合: 22年前
投稿: 2
Topic starter  

「改行コード変換」で色々調べてみると、
改行コードが
Win 13,10
UNIX 10
Mac 13
というとこまでは分かりましたが、変換方法はPerlを使っていたり改行コード変換用のソフト
を使っていたりで、VC++で変換する方法は分かりません。

サーバは・・・UNIXだと思うんですが・・・


返信引用
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

CStringクラスのReplaceを使うのが簡単だと思います。
改行をWindowsに統一したい場合は、私はいつも0x0Dをヌルストリングに変換して0x0Aを
0x0D0Aに変換しています。
ただメモ帳以外のエディタでは、両方とも改行して表示してくれるものが多いようで
す。


返信引用
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

補足ですが、ブラウザのソースを表示するエディタがメモ帳(IEではデフォルトでメ
モ帳だったと)とした場合、上の『メモ帳以外の~』の通り、見ているエディタが違う
のが改行が異なった原因ですね。


返信引用
すがり
 すがり
(@すがり)
ゲスト
結合: 22年前
投稿: 6
 

改行されていない箇所は「多々」ですか?「全部」ですか?
自分で振っておいてなんだけど改行コードが原因なら「全部」のはず・・・。

テキストファイルの改行コードがLF(0x0a)のみの場合
VCやワードで開くとCR+LFの場合と同様、改行して表示されます。
メモ帳で開くと(OSによって違うかもしれませんが)改行されずに文字化けします。
エディタによっては文字化けも改行もしないかもしれませんが
( そんなエディタは使いたくない(ーー;) )
問題の症状は改行コードの違いが原因と考えてよいのでしょうか?
できればVC上でバイナリモードでファイルを開き該当箇所のコードを確認してくださ
い。

改行コードが原因なら CInternetSession::OpenURLの場合
3番目の引数にASCIIを指定すれば変換してくれそうな気がします。(試してません)

ダウンロード後のファイルを再度読み込み改行コードを変換して保存しなおす
ことは簡単だと思います。
ダウンロードの過程で改行コードを変換したいなら現在どのような方法を
とられているかソースの一部でも公開していただければと思います。

改行コードが原因でない場合はごめんなさい。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました