• ベストアンサー

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

お助け願います。 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

  • 秀丸とノートパッドの互換性 「改行」の謎

    改行がいくつも入った30行ほどのテキストファイルをホストからローカルへFFFTPでダウンロードしたとします。 そしてすぐさまダウンロードしたテキストファイルをノートパッドで開くと、黒い四角が改行の箇所に必ず入っていることに気がつきます。 そこで、今度はそのダウンロードしたテキストファイルを秀丸で開きます。そして少し文字をどこでもいいので書き足して、更新保存します。 さらに今度はその更新したばかりのテキストファイルをノートパッドで開きます。すると先ほど見えていた黒い四角が全く消えている状態になります。 そこで改めてホストにアップロードします。一番初めの黒い四角が消えているので、改行情報?は無視?されてぐちゃぐちゃになります。(掲示板の過去ログデータなので、掲示板の仕様からいってテキストファイルの改行コードに何らかの異変が生じるようです。) そこで質問をまとめますと、 1、まず秀丸が何らかの変換を行っているというのは推測できるのですが、何を変換しているのでしょうか。 2、ノートパッドを開いた際の「黒い四角」の正体は何なのでしょうか。秀丸で一度更新すると消えてしまう謎の「黒い四角」です。 宜しくお願いします。

  • 改行されていないテキストデータ

    改行コードがないテキストデータがあります(半角23,250文字) VB.NET2003で取込ながら、250文字で改行したいのですが、 どんな方法がありますでしょうか? 宜しくお願い致します。

  • テキストの「改行」を置き換え

    ワード、ワードパッド、メモ帳、(VISTA Office 2007)の環境で テキストで改行をカンマ1つに置き換えたいのですが、お願いします。 他の文字の置き換えやワードなら改行の削除はできます。 ただ、 ワードで複数行の改行を^13で全部置き換えたら、カンマが複数になってしまいます。複数行の改行が沢山あってもカンマを1つにしたいのです。 ********************************** あいうえお かきくけこ ↓↓↓ あいうえお,,かきくけこ (カンマが複数になってしまいます) ↓↓↓ あいうえお,かきくけこ (カンマを1つにしたい)

  • 【Excel】テキストが改行位置以外で改行される

    こんにちは HTMLのテキストファイルをテキストファイルウィザードを通して開くと 改行位置ではないところで改行されてしまい困っています。 メモ帳で開くと1行になっています。 そのメモ帳の文字をコピーしてExcelにペーストしても同じでした。 メモ帳で見えない改行コードが入っているのでしょうか? まったく同じような文章でも、改行されてしまう行と改行されない行があります。 改行されないように開くにはどうしたらよいでしょうか。 Excel2013です。

  • 改行コード2種類を混在させたい

    昨日秀丸の改行について質問したものです。 謎が自分なりに解けたので、再度一点質問させてください。 改行コードCRと改行コードLFを混在させたいと思っています。 ノートパッドで混在したデータをWindowsで開くと、 LFが上向きの「↑」になり、 CRが「■」(黒い四角、実際はもう少し幅が狭いです) になるようだと試行錯誤の結果つきとめました。 そこでこの「二種類の改行コードが混在したファイルを自在に作成できるようにしたい」と思っています。 そこで質問を3点にまとめます。 1、ノートパッド上では、その二種類が混在することは可能だとわかりましたが、秀丸では無理なのでしょうか。 2、改行コードはテキストエディタの編集の場合、文字で表現できないのでしょうか? \nというのは改行コードを意味しないのでしょうか。 これで自在に改行コードを文字で表現できれば混在も可能かと思います。 3、少し話しはそれますが、EUCとShift-JISの文字コードはやはり、Shift-JISじゃないと、サーバーにアップしても日本語は文字化けすると思うのですが、どうでしょうか。 宜しくお願い致します。

  • 改行

    秀丸というテキストファイルを使っています。 その中のカンマ区切りされているデータを カンマ毎に改行したいのですが、可能でしょうか? よろしくお願いします。

  • Excelへのテキストデータの取り込み

    VB2005でテキストファイルを作成し、それをExcelに取り込もうとしています。 123,234,120,200 200,300,400,500 111,222,333,444 のようなファイルを作成し、これをExcelに取り込むと 3行で取り込まれます。 次に 123,234,120,200 200,300,400,500 111,222,333,444 のように文字列の行間に改行文字(chr$(13))だけの行を作成し、 これを取り込もうとすると、 2行おきに読み込まれてしまいます。 メモ帳でファイルの中身を確認すると1行おきになっているのに、 Excelのデータ→外部データの取り込みでテキストデータウィザードを見ると すでに2行おきになっているのです。 1行おきに作成した文字列ファイルを1行おきに取り込むにはどうしたらいいのでしょうか?

  • 改行をなくす機能があるテキストエディタはあるの?

    たとえば下記の例のように、テキスト文章の改行をクリアにしたいのですが、そのような機能を持つテキストエディッタってありますか? ちなみに秀丸を愛用してます。 ▼例 あいう えお  かきくけこ さ しすせそ  ↓ 改行をなくす あいうえおかきくけこさしすせそ

  • 改行コードの入っていないテキストファイルが開けるテキストエディタは?

    1レコードが256バイトのテキストデータが格納されているファイルがあるのですが、このファイルには改行コードが入っていません。 テキストエディタにてファイルの中身を確認したいのですが、メモ帳ですときれいに表示できません。 1行256バイトで表示できるフリーのテキストエディタをどなたかご存知でしょうか。 ご存知の方がいらっしゃいましたら教えてください。 お願いします。

  • (VBS) テキストファイル読込での改行コード

    VBAからVBスクリプトへの移植作業をしています。 テキストファイル中に改行コード \r\n と \n が混在しているのですが、 \r\n までを1行として取得したいです。 VBAだと Line Input で取得できたのですが、 VBScriptの場合、FileSystemObject.OpenTextFileで開き .ReadLine で読み込むことになりますが、 ReadLineは \n も行の終端とされてしまい、本来1行のデータが複数行に分かれて読み込まれてしまいます。 .ReadAllで一旦すべてを取得してから Split("\r\n") で分割するという方法は ファイルサイズが膨大だと負荷が掛かるので避けたいです。 \n は、これはこれでデータとして必要なので、削除することはできません。 負荷が掛からず、良い方法があればご教授頂きたく思います。 よろしくお願い致します。