[リストへもどる]
一括表示

投稿時間:2003/07/20(Sun) 10:11
投稿者名:Taka
Eメール:
URL :
タイトル:
ユーザー定義型のデータ読み込みについて
ユーザー定義型のデータを読み込むのに苦労しています。
区切りはスペースで区切られていて、1行目と3行目以降
は区切りの位置が異なっています。(2行目は空欄です)
行によってデータの区切りの位置が異なっている場合は
どうすればいいのでしょうか?

入力ファイルは
** 01/21/00
    
Time     Steps    East     North   Head  DRAlt  INLat      INLong    INEPE    Bofst  
1:04:59      1      0.6     -0.4  130.4     94   35.00000   139.00000   100    0.0  
1:05:00      1      0.6     -0.4  129.4     94   35.00000   139.00000   100    0.0

のような感じです。
お手数ですがお願いします。

投稿時間:2003/07/20(Sun) 13:06
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: ユーザー定義型のデータ読み込みについて
不特定CSV取込 - 砂嵐 11/27-10:13 No.1572 が参考になるかと思います。

投稿時間:2003/07/20(Sun) 14:31
投稿者名:Taka
Eメール:
URL :
タイトル:
Re^2: ユーザー定義型のデータ読み込みについて
ありがとうございます。No.1572を拝見しましたが、
配列に正しく読み込むことが出来ませんでした。
コードをのせるので何かアドバイスをいただけませんか?
お手数ですがお願いします。

Private Sub Command2_Click()
    Dim strTextLine As String
    Dim TmpTxt()    As String
    Dim dataN       As Integer
    Dim i           As Long
    Dim intFileNo   As Integer
    Dim DRM()       As String
    intFileNo = FreeFile
    Open "test" For Input As #intFileNo
    Do While Not EOF(intFileNo)
        Line Input #intFileNo, strTextLine
        TmpTxt = Split(strTextLine, " ")
        dataN = UBound(TmpTxt)
        For i = 0 To dataN
            DRM() = TmpTxt()
        Next i
        Loop
    Close #intFileNo
End Sub

投稿時間:2003/07/20(Sun) 15:06
投稿者名:nobu
Eメール:
URL :
タイトル:
Re^3: ユーザー定義型のデータ読み込みについて
> ありがとうございます。No.1572を拝見しましたが、
> 配列に正しく読み込むことが出来ませんでした。
> コードをのせるので何かアドバイスをいただけませんか?

どのように「正しく読み込むことが出来ませんでした」のですか?
1行目と2行目の関係ですか?
1行目と2行目が不要なら空読み( Do While の前で Line Input する)するとか。
空白が2ケ続いていてとかなら 2ケを1ケに Replace するとか。

投稿時間:2003/07/20(Sun) 15:40
投稿者名:Taka
Eメール:
URL :
タイトル:
Re^4: ユーザー定義型のデータ読み込みについて
1行目、2行目の関係です。なかなかうまくいかずに3日たちます・・・
このようなファイルなんですが、何かいい読み込ませ方はありますか?

↓ここからがデータファイルです。
*** 01/21/00 01:04:59

  Time    Steps    East     North   Head  DRAlt    INLat      INLong    INEPE
1:04:59      1      0.6     -0.4  130.4     94   35.00000   139.00000   100
1:05:00      1      0.6     -0.4  129.4     94   35.00000   139.00000   100
1:05:00      1      0.6     -0.4  129.4     94   35.00000   139.00000   100
1:05:00      1      0.6     -0.4  129.4     94   35.00000   139.00000   100

このデータをMSFlexGridに読み込みデータを処理するのが最終目的なんですが・・・
お手数ですがお願いします。

投稿時間:2003/07/20(Sun) 15:45
投稿者名:nobu
Eメール:
URL :
タイトル:
Re^5: ユーザー定義型のデータ読み込みについて
> 1行目、2行目の関係です。なかなかうまくいかずに3日たちます・・・

ですから、どう様に不具合なのですか?
質問には答えずにサンプルデータを書かれても困ります。

最初の(No.4921)では1から全てが同じ読み込み処理の様でした。
1行目、2行目は、3行目以降とは異なるのですから
読み込み、そのものを他(3行目以降)とは変えて
MSFlexGridに読み込みさせる時も別にすれば良いのではありませんか?
ロジックを落ち着いて考えて下さい。
場合には依っては紙に手で書いて、どう処理すれば良いか...等と。

投稿時間:2003/07/20(Sun) 15:55
投稿者名:Taka
Eメール:
URL :
タイトル:
Re^6: ユーザー定義型のデータ読み込みについて
どうもありがとうございました。ちょっと休憩して紙に書いてなどして
また考えてみます。素人なものですいません。

投稿時間:2003/07/20(Sun) 16:14
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: ユーザー定義型のデータ読み込みについて
>配列に正しく読み込むことが出来ませんでした。
TmpTxt() に入っていませんか?

>         For i = 0 To dataN
>             DRM() = TmpTxt()
>         Next i

この部分は何をしているのですか?

下記と変更して見て下さい。

        For i = 0 To dataN
            Debug.Print TmpTxt(i) & "      ";
        Next i
        Debug.Print

投稿時間:2003/07/20(Sun) 16:45
投稿者名:Taka
Eメール:
URL :
タイトル:
Re^4: ユーザー定義型のデータ読み込みについて
たびたびすいません・・・

For i = 0 To dataN
DRM() = TmpTxt()
Next i

↑上の部分はDRM()というString型の変数に読み込み、
MSFlexGridに読み込ませようとしたものです。(よくわからないので・・・)

> 下記と変更して見て下さい。
>
>         For i = 0 To dataN
>             Debug.Print TmpTxt(i) & "      ";
>         Next i
>         Debug.Print

変更したのですが、イミディエイトウィンドに表示はされたんですが
全てのデータが表示されないのですが、あれは後半部分しか表示されないのでしょうか?
新たに配列に入力しないとMSFlexGridなどに出力するのは無理でしょうか?

投稿時間:2003/07/21(Mon) 12:12
投稿者名:Taka
Eメール:
URL :
タイトル:
Re^5: ユーザー定義型のデータ読み込みについて
ユーザー定義型には入力せずにMSFlexGridに直接表示させることに
しました。花ちゃんさん、nobuさんありがとうございました。

投稿時間:2003/07/20(Sun) 16:51
投稿者名:nobu
Eメール:
URL :
タイトル:
Re^3: ユーザー定義型のデータ読み込みについて
DRM()  の配列のサイズの宣言、指定が無い。

>             DRM() = TmpTxt()    '配列の添え字が無い

各行のデータを DRM() に入れるとするなら
2次元配列にする必要があるでしょう。

DRM( 行、列 ) の様に。
読み込んで、そのまま MSFlexGrid ならDRM() は不要で TmpTxt() だけで良いのでは。
DRM() = TmpTxt() の両方書いてあると言う事は
2次元配列に一旦保存してから、改めて表示する時に配列から読む積もりなのでしょうね。