• ベストアンサー

テキストファイル内の改行について

お助け願います。 VB6にてあるテキストファイルを読み込んでいます。 このテキストファイルは普通にノートパッドで開くと、 1行が1024文字で開かれてしまいます。 秀丸などで開くと、改行がうまくいき必要なデータの並びになります。 VB6からこのテキストファイルを開いて読み込む際にも、 秀丸のような改行で読込みたいのですが、できるのでしょうか? ノートパッドでも秀丸のような改行で開くことは可能なのでしょうか? ご教授下さい。 例) ノートパッドで開くと 1234567890123456789012345678901234567890 秀丸で開くと 1234567890 1234567890

質問者が選んだベストアンサー

  • ベストアンサー
  • kiki_s
  • ベストアンサー率59% (147/248)
回答No.4

データの中に改行コードなどがあっても、 実際は見えるものではありません。 『OxOa』はC言語風の表記ですね。 たとえば、メモ帳などで、ABCと打てばABCと表示されます。 しかし矢印キーなどはいくら押しても文字は出ません。 カーソルが動くだけです。 押しても文字として表示されないものは、 制御コードとか呼ばれるものです。 改行コードもそうですが、 Windowsなら[CR][LF](キャリッジリターンとラインフィールド) 16進の数字で表すと、 [CR]=0D [LF]=0A とパソコン内部では数字で表現されます。 秀丸でも[CR][LF]以外の改行コードでも正しく読み込みますので、 必要なデータの並びになります。 ノートパッドなどで読んでも決められた改行コードでないため、 一行で表示されてしまう訳です。 その該当するコードが何かが分かれば、 VBで読み込んで改行表示する事は可能になります。 テキストボックスへの表示なら、 読み込んだテキストデータを一文字毎に調べて、 改行コードでなければテキストボックスに加算。 改行コードに相当する文字であれば、『VBCrLf』を加算 それを文字数分繰り返す。 以外に、検索置換をする(こちらが早いと思います) テキストボックスに改行がある文字を表示する場合、 MultiLineプロパティをTrueにする必要があります。

satoshi777
質問者

お礼

回答ありがとうございます。 やっと理解できました。 私のとった方法は、 Replace(textA, vbLf, vbNewLine) のようにしました。バイナリで見ると、[LF]=0Aになってましたので、 これを改行コードに変換してみると、うまく改行されたファイルになってました。 これをもう一度開き直して処理しようと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.3

バイナリエディタ(フリーウェア)で対象ファイルを見てみると、 特殊記号を含め、文字コードで見ることができますので、改行が、 CR・LFの2バイトになっているか、確認できますよ。

satoshi777
質問者

補足

ありがとうございます。 バイナリエディタで見たところ、どうも改行前には、"."がついているようです。 いまいち私には仕組みがよく理解できないのですが、 ヒントは得られた気がします。 これをどうやってVB6.0で扱うかってのがわかりませんが(>_<)

すると、全ての回答が全文表示されます。
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.2

改行コードが LF(0x0a)しかないファイル(UNIXやlinuxで作成したファイル) なのではないですか? もし、そうなら、読むときに 0x0aという文字がきたら改行(VBCrLf)とみなしてあげればよいです。

satoshi777
質問者

補足

回答ありがとうございます。 何で作ったファイルかとちょっとわからないのですが、 相当昔のシステムで作ったものと思われます。 詳しく教えてほしいのですが、 そのテキストファイル中にはOxOaという文字はありません。 これは実際のテキスト中に書かれているものですか?

すると、全ての回答が全文表示されます。
  • j_nishiz
  • ベストアンサー率26% (183/697)
回答No.1

このデータは1024行のデータで、秀丸で一行10文字で設定しているのではありませんか? もしそうでしたら、読み込んでから10文字ずつ区切って格納すれば良いでしょう。 改行をいれる必要が有れば、10文字でくぎってVBCrLfをつければ良いです。

satoshi777
質問者

補足

回答ありがとうございます。 いえ、書いたのはあくまでサンプルです。 特に10行区切りってわけではないんです。 秀丸は必要なデータ分でうまく改行されますが、 ノートパッドではただダラダラと1024行まで書かれてます。 秀丸だと何行目から何行目までが何のデータがわかるのですが、 ノートパッドだと非常にわかりずらいのです。 データ長によっては固定でもないので。 秀丸は何に反応して、その位置で改行を入れてるのかもよくわかりません。 ん~。。。。

すると、全ての回答が全文表示されます。

関連するQ&A

このQ&Aのポイント
  • Lenovo ideapad 330-15IKBRのF1~F12キーの機能が変わってしまいました。
  • 日本語入力時に使う機能に戻す方法を教えてください。
  • Windows11のOSを使用しています。
回答を見る

専門家に質問してみよう