dポイントプレゼントキャンペーン実施中!

おそらく「BASIC」で作成されたと思われる、あるデータベースですが、
普通にテキストファイルで開くと、改行マークが認識されずに
(最初からついていない可能性もあります。)
長い一行のレコードとして存在しています。
本来、1行1200バイト*1000件ほどのデータファイルです。
なんとか改行マークを認識させ、データベースとして管理したいのですが。

できれば、エクセル等のアプリケーション(VBA使用)から、
そのような操作ができないでしょうか?


よろしくお願いします。

A 回答 (3件)

他の方もおっしゃられていますが、改行コードがCR+LF になっていない


事が原因と思われます。
秀丸エディタを使用すれば簡単に改行コードの変換ができます。

手順は以下の通りです。
 (1) 秀丸エディタから問題のファイルを開きます。
 (2) ファイル(F) → 名前を付けて保存(A) を選択します。
 (3) 元のファイルを上書きしないように、別のファイル名を入力します。
 (4) 「改行=自動」を、「改行=CR+LF」に変更して「保存」ボタンを押下します。

参考URL:http://hidemaru.xaxon.co.jp/software/hidemaru.html
    • good
    • 0
この回答へのお礼

さっそく教えていただいた方法でやってみたところ、見た目上はうまく改行されているのですが、
そのファイルをさらにエクセル等から開こうとしたときに、やはり1行のデータとして扱われてしまい、うまくいきませんでした。
そこで、秀丸のマクロを使い、1行ごとに改行マークを挿入しました。

大いなるヒントになり、助かりました。
ありがとうございました。

お礼日時:2002/10/02 21:21

 DOS上のBASICたとえばQuickBASICでは改行コードはCR+LF(キャリッジリターン+ラインフィード/0D+0A)だったはずです。

OSがBASICだった頃は覚えがありませんが、オフコンでebcdicの文字コードを使ったデータベースなら確かに改行コードがLFだけのものも覚えがあります。改行コードはマックやunix系のOSだと扱いが違うのでその可能性もあるのではないでしょうか。

http://tohoho.wakusei.ne.jp/wwwxx011.htm


 確かめるには簡単で、そのファイルのダンプリストをとってみれば一目瞭然です。ファイルダンプソフトは検索すればいろいろでてきますがたとえば下記のようなものがあります。
http://www.vector.co.jp/soft/win95/writing/se098 …

 改行とおぼしき場所に0Dと0Aが並んでいれば、Windowsでも扱える形式のリターンコードが入っていますし0Aだけだとすると以下のようなプログラムが使えます。この場合ファイル名をワイルドカード(*.*)に指定します。

http://www.yuzuriha.sakura.ne.jp/~way/computer/c …

 ファイルをいじる場合はオリジナルファイルには手を加えずコピーしたものをお使いになることをおすすめします。
    • good
    • 0
この回答へのお礼

ダンプリストで調べるという手を忘れていました。
そのほか、今後にも役立ちそうなURLをいろいろ教えてくださり、
ありがとうございました。

お礼日時:2002/10/02 21:29

 認識されてないのか、最初からないのか、その違いは非常に大きいので、まずはそれを調べる必要があります。


 バイナリエディタなどでそのファイルを開き、行と行の間に 0D もしくは 0A というキャラクターコードがあれば、改行コードは存在しています。
 あれば、それを認識させることで行に分解できます。

 ない場合、次に、データが1200バイトちょうどなのか、多少変動するのかを調べてください。
 変動がなく、常に1200バイトちょうどの場合、それはBASICの「ランダムアクセスデータ」と呼ばれるものです。
 OPEN 命令の記述の仕方で認識させることができますので、調べてみてください。

 改行データがなく、データの長さもピンきりだとしたら、人間が手で改行コードを加えていく以外、手はないでしょう。
    • good
    • 0
この回答へのお礼

データはきっかり1200バイトずつです。
ご指摘のとおり、「ランダムアクセスデータ」というものだと思います。

勉強不足でOpen命令というものが何かわからなかったので、
今回はテキストエディタ(秀丸)に簡単なマクロを組み、
行に分解して解決しました。

ありがとうございました。

お礼日時:2002/10/02 21:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す