掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
line inputで読み込む際の改行コードについて (ID:120965)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> いきなり私に当たるなんてあなたも(ry んでは、次は私の番ですな(謎 >> とすると、例えばエクセルの改行Chr(10)と本来の改行 crlf との区別がつかず >> 困っています。 「区別がつかない」というのは、具体的にはどういう状態でしょうか? Line Input #ステートメントでは、vbCr または vbCrLf が行の区切りとして 判断される、とヘルプにあります。Excelの改行が vbCr だったとしたら 問題ですが、Chr(10) すなわち vbLf に関しては、そのまま読み込まれるため、 特に問題は無いような気がしますが……。 たとえば、当方の環境にて、 A1セル = "abc"、B1セル="def" A2セル = "ghi(改行)jkl"、B2セル="mno" A3セル = "pqr"、B2セル="stu" というExcelデータをCSVで保存してみたところ、 abc,def(Cr)(Lf)"ghi(Lf)jkl",mno(Cr)(Lf)pqr,stu(Cr)(Lf) というデータになりました。 そしてこれを Line Input # で読み込むと、 1回目 : abc,def 2回目 : "ghi(Lf)jkl",mno 3回目 : pqr,stu となります。Excelの改行はそのままデータとして取得され、 「本来の改行と区別できない」という状態にはならなかったのですが……。 > 「エクセルの改行」というのが専門的で分かりませんが、 Excelでは、セル内の改行が Lf で表現されているのですよ。 (CSVにした時のレコードの区切りは、通常通り CrLf ですけれどね) > 文字列の読み取りをすると、その場所でEOFと解釈されてしまう感じがします(あやふや…) あ、それは初耳です。φ(。。) ガッさんが予想された、Line Input # での読み取りが、LF で切れて しまうという現象は確認できませんでしたが、もし、本当にそういう 現象に悩まされているのだとしたら、ADODB.Stream オブジェクトを 利用されると良いでしょう。 Line Input # では、Cr / CrLf の両方を改行コードとして認識して しまいますが、Streamオブジェクトであれば、LineSeparatorプロパティと ReadText プロパティにて、「CrLfまでの1行単位」での読み込みが可能です。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.