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

投稿時間:2003/09/06(Sat) 10:11
投稿者名:kokero
Eメール:
URL :
タイトル:
Textファイルの操作で
はじめまして、kokeroと申します。

Tab区切りのTextファイルの1行ごとの読み込みは「ファイル操作関係」を拝見して
わかったのですが、以下のことで悩んでいます。

1)Textファイル(Tab区切り)を読みこんで
2)行の中の項目(Tabで区切られた)毎に変数に取得して
3)Textファイルに縦方向に書き出す。

例・前)文字1(\t)  文字2 (\t)  文字3
例・後)文字1
    文字2
    文字3

としたいのです。
(使用目的は、2次元の配列を必要な行だけ抜き取り、行と列を入れ替えることです)
(その際、例えば(上の例中での)文字3だけを別の関数で使えればいいな・・・)
申し訳ありませんが、ご助言お願いいたします。

投稿時間:2003/09/06(Sat) 11:49
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: Textファイルの操作で
方法はいくつかあります。ベストかどうかは、解りませんが、テキストファイルを
バイナリ−モードで一気に読み込んでから、Split関数を使ってタブで区切られた文字列から
1次元配列を作成して、その配列をテキストボックスに表示しております。

Private Sub Command1_Click()
    Dim bytArray()  As Byte
    Dim intFileNo   As Integer
    Dim lngFileLenB As Long
    Dim TxtFilePath As String
    Dim TextData    As String
    Dim AddData     As Variant
    Dim i           As Long
    TxtFilePath = "c:\test.txt"
    lngFileLenB = FileLen(TxtFilePath)
    ReDim bytArray(lngFileLenB - 1)
    '使用可能なファイル番号を取得する
    intFileNo = FreeFile
    'ファイルをバイナリモードで開く
    Open TxtFilePath For Binary As #intFileNo
    'バイナリデータとして読込んで
    Get #intFileNo, , bytArray
    Close #intFileNo
    'Unicodeに変換して表示
    TextData = StrConv(bytArray, vbUnicode)
    
'============ ここまでは丸ごと読み込みと同じ ==============

    'タブで区切られた文字列から 1 次元配列を作成
    AddData = Split(TextData, vbTab)
    TextData = ""
    For i = LBound(AddData) To UBound(AddData)
        TextData = TextData & AddData(i) & vbCrLf
    Next i
    Text1.Text = TextData

End Sub

投稿時間:2003/09/06(Sat) 11:51
投稿者名:Lantern
Eメール:
URL :
タイトル:
Re: Textファイルの操作で
VB6であれば
LineInputで読み込んで、Split関数でタブ区切りに分け
Printステートで書き出す。
Splitはバリアント型で値を返します。
配列上限はUboundで取得できます。

投稿時間:2003/09/06(Sat) 20:24
投稿者名:kokero
Eメール:
URL :
タイトル:
Re^2: Textファイルの操作で
花ちゃん様、Lantern様返信ありがとうございます。

次は、うまくできた!と返信できるよう、

Split関数片手に色々がんばってみます。

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