@IT情報マネジメント会議室は、2009年4月15日に新システムに移行しました。
新たに書き込みを行う場合には、新しい会議室をご利用ください。
新たに書き込みを行う場合には、新しい会議室をご利用ください。
- @IT情報マネジメント 会議室 Indexリンク
- IT戦略
- 仕事の改善
- アーキテクチャ
- プロジェクト管理
- ITインフラ
- Webマーケティング
- BPMプロフェッショナル
- 業務アプリ
- - PR -
VBでのファイルデータ抽出方法を一緒に考えてください。
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-06-02 16:36
1000(以上)行3列のexcelデータを.txtで保存したファイルから列データ取り出す必要があります。しかし、整数部分と小数点とTabの配列がずれてしまっていて、1列目の抽出と2列目&3列目の2パターン抽出しなければならないのですが、方法がわかりません。もしよろしければ誰か教えていただけないでしょうか。
初歩的な質問ですいません。 | ||||
|
投稿日時: 2004-06-02 17:04
まず初めに確認させてください。
VB.NETではなくてVBですね? >.txtで保存したファイル というのはTab区切りのtxtですかね。 >整数部分と小数点とTabの配列がずれてしまっていて 配列というのはどこの配列でしょう。VBの配列ですか? txtのファイルはすでにVBプログラムでメモリ上に読み込んでいて、その読み込んだデータを(Tabで区切って)配列に入れてはいるということですか? あと「ずれる」が具体的にどういう状態なのかも教えて頂きたいと思います。 | ||||
|
投稿日時: 2004-06-02 17:11
タイトル通り、一緒に考えるで宜しいですね? >方法がわかりません。 2つの抽出を、どう「設計」したらいいのか解らないと判断しました。 経験上、システム開発の設計が解らない場合は、「仕様」が解っていない事が多いです。 これは頭に入れておいて下さい。 仕様が解れば大半の事は、許容範囲以上に不細工になっても「設計」は出来ます。 文書だけで推測すると、VB/VC初心者さんは、まず「仕様」が理解出来ていない様です。 >1000(以上)行3列のexcelデータを.txtで保存したファイルから列データ取り出す ・これは私も理解致しました。 >整数部分と小数点とTabの配列がずれてしまって ・それは何故ですか?(Excelの仕様?Excelを記述する時の規定?) ・3列とは「整数部分」、「小数点」、「Tab」の3列があると言う事ですか? >1列目の抽出と2列目&3列目の2パターン抽出しなければならない ・ここでは、2パターン必要である理由を聞きませんが、実務では認識する事をお奨めします。 ・2パターンとは処理の方法が2つある意味ですね? それを判断する条件は何ですか? | ||||
|
投稿日時: 2004-06-02 19:11
>一郎さん
VB.NETでなくVBです。そしておっしゃる通りTab区切りです。 「ずれる」っていうのは、excelではフィールドがちゃんと整列されていますが、テキスト保存すると、 1234.243 34645.75745 366.3 345.34 553.65 5.3 654.46 5654.54645 565.5654 ・ ・ ・ ・ ・ ・ ・ ・ ・ 見たいになってしまい、n列の数値だけを抽出する方法がわかりません。 よろしくお願いお願いします。 | ||||
|
投稿日時: 2004-06-02 19:24
実は小型人工衛星の開発を行っていまして、宇宙でどのような姿勢でいるかを検証するミッション解析を担当しています。来週ジャイロの精度が正しいかを実験します。その時のデータが1000(以上)行3列の形式で出力されます。
この列データは1列目が横軸成分、2,3列目が縦軸成分となっており、それぞれの電圧データを演算して角速度などに直して解析します。 そこで行数値だけを取り出し、テキストボックスに表示し、それを演算させたいのですが、まだまだはじめたばかりで・・・ ご教授お願いします。 | ||||
|
投稿日時: 2004-06-02 19:40
こんばんは。
見た目がおかしいだけで何も問題ないってことはありませんか? タブのサイズを調整、マーク表示してみはいかがでしょうか。 本当におかしくなってたら、excelでも解析不能のはずです。 _________________ | ||||
|
投稿日時: 2004-06-02 19:48
http://www7.plala.or.jp/imajo/ke/samp/samp01.html
ここの「文字の分割」というサンプルなどはどうでしょう? このサンプルを使って、タブ(定数はvbTab)で分割してやると良いのでは、と思います。 ただ、なぜExcelで計算しないのかというところが不思議なのですけど。 電圧から角速度を求める式はわかっていらっしゃるのだと思いますので、そのままどこかのセルに計算式を入れてしまえば、VBでプログラムを組む必要もないのでは? | ||||
|
投稿日時: 2004-06-02 20:53
Private Sub cmd_DataRefer_Click()
Dim strFileName As String Dim FileNum As Integer Dim X As Integer, Y As Integer, Fa As Integer Dim z As Integer, shuturyoku As String Visible = True CommonDialog1.Filter = "Text (*.txt)|*txt|All Files(*.*)|*.*" CommonDialog1.InitDir = "C:\vb_prog" CommonDialog1.ShowOpen strFileName = CommonDialog1.FileName FileNum = FreeFile() Open strFileName For Input As FileNum If Not EOF(FileNum) Then If opt_ImportV = True Then ///ここにtxt_DataImportVっていうテキストボックスに1列目のデータを書き込むファイルをはりたいのですが。。。/// ElseIf opt_ImportH = True Then If (EOF(FileNum) = 0) Then While (EOF(FileNum) = 0) Input #1, shuturyoku txt_DataImportH = shuturyoku Wend End If ElseIf opt_ImportVH = True Then If (EOF(FileNum) = 0) Then While (EOF(FileNum) = 0) Input #1, shuturyoku txt_DataImportV = shuturyoku txt_DataImportH = shuturyoku Wend End If Else MsgBox "軸成分が選択されていません。" End If End If Close #FileNum End Sub 不細工なプログラムを見せるのは恥ずかしいのですが載せました。 |