アプリ版:「スタンプのみでお礼する」機能のリリースについて

仕事でたいへん困っています。
MS-DOSの旧式パソコンをつかって顧客データーが保存しているのですが、FDに保存しこれをwindows98で開いたところ(text形式で)読み取ることができません。
具体的にいいますと、MS-DOSでのデーターベースソフトで大量の顧客データーがあるのですが、これを新たにVBなので再構築しなくてはならなくなったのです。
そこでそのDOS顧客ソフトの「FDに保存」でフロッピーに保存しwinで見てみると拡張子が「kaiin.dat]となっており秀丸エディタで開くと最初に文字化けしたものが出てきておりその後は半角フリガナ漢字の姓名、住所が続いていくようになっています。文字化けをしているところはおそらくバーコードナンバーの番号だと思われます。この文字化けしているところだけ正確な文字に変換する方法はあるのでしょうか?
↓こんな感じ
・1セU1 F ・   ホッタ 堀田 住所 電話・・・・

このソフトを組んだ人が誰だかわからないためどうしようもありません。
こういった旧タイプの保存形式を今のCVS形式など今のタイプに変換できる方法ってないのでしょうか?
たいへん困っています。宜しくお願いします

A 回答 (4件)

多分、「バイナリ形式」でデータ保存されているために


TEXTエディタでは文字化けするのでしょう。
(TEXTは、ASCIIコードで文字数字のみのコードを使用)

下記URLにフリーのバイナリエディタがあります。

これで該当ファイルを開くと、数値の羅列を見ることが出来ます。
これをCSVにするには、バイナリ->ASCII変換が必要ですが、
レコードのフォーマットがわからないとなんとも出来ないと思いますよ?

最悪、バイナリデータを見ながら規則性を見つけて、
1レコードあたりのデータ長を見出して、変換する規則を
見つけ、変換する事で出来るとは思いますが。。。

ちなみにASCIIコードとは、文字にコードを割り当ててあります。
0 は、30h(hは16進数の意)
A は、41h
a は、61h
等です。

漢字データもあるようですので、一筋縄にはいかなそうですね。

参考URL:http://www.vector.co.jp/soft/win95/util/se032859 …
    • good
    • 0
この回答へのお礼

返事がおくれてすみません。
さて、まったくそのへんおバイナリ形式等について理解ができていなっかったのが現状です。
レコードのフォーマットはまったくもってわかりません。
あきらめます。

お礼日時:2003/08/31 03:58

こんにちは



そのPCは NECのPC9800か9821シリーズでしょうか

そのソフトは何で組んであるのでしょうか

DBASEIIIとか DBXLとかC かBASICの言語系とか

VBに関してはまったく使ったことが無いのですが
おそらく レコードの頭に レコードNoが何桁かあり その後にバーコードのNoがバイナリ数値に変換されていると思われます
例えば WORD形式(2文字で -37575~+37576)
 あと 4文字(不動小数点 数値変数?)
    8文字(不動小数点 数値変数?)
すみません何せ古い話なので正式な名称は忘れました?
(変換と言うわけではなく 使ってる変数が 数値なので バイナリデータとして保存されてると 思われます
VBの数値変数に取り込んで表示すれば 可能と思われます
表示できれば 数値→文字 変換関数で文字に変換)

MS_DOS ではN88BASICでよくINDEXなどに良く使いました
(数値にしておくと プログラムを組まなくても 検索ができるので)
MS_BASIC では 他にも多数 数値変数の種類があったと思いますが
    • good
    • 0
この回答へのお礼

ありがとうございます。
VBがまだまだ勉強中なので数値変数というのがわからないですね・・
とりあえずは簡単に表示することはできないようですね・・・

お礼日時:2003/08/31 04:04

たぶん、元のMS-DOSソフトが、独自形式のフォーマット


で顧客データを管理していたものと思われます。

ソフトを作った人を探して、CSV形式など簡単に外部にデータ
を渡せる操作を教えてもらう、または無ければ作ってもらう
のがセオリーですが、作った人がわからなければ、どうしよう
もないですね。

すべてのデータを紙に印刷して、データ入力のバイトを雇い、
データを再入力する方法が一番確実かと思われます。
    • good
    • 0

# 固定長データと仮定して



(1)バイナリダンプと実際のデータを見比べて、データフォーマットを推測する。
(2)VBで変換ツールを作る

うまく行けば、プロで半日仕事でしょう。

Private Type kaiin
Code As Long
Kana As String * 16
Simei As String * 16
Address As String * 32
Tel As String * 16
End Type

Private Sub Form_Click()

Dim d As kaiin
Open "a:\kaiin.dat" For Random Access Read As #1 Len = Len(d)
While EOF(1) = 0
Get #1, , d
Debug.Print Code, Kana, Simei, Address, Tel
Wend
Close #1
End Sub
    • good
    • 0
この回答へのお礼

VBじたいがはじめたところなのでどうしょうもないようですね・・・
でもありがとうございました。

お礼日時:2003/08/31 04:00

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

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