テキストファイルをX行目からY行目までと指定して書き出すには?

解決


H.K-S  2004-06-26 01:39:25  No: 114330

こんにちは  初めて質問させていただきます。
よろしくお願いします。
使用ソフトはVB6.0です

以下のようなスペース区切りのテキストファイルがあります。
A-1、A-2、A-3というグループが一つのファイル(上)に存在し
A-1、A-2、A-3それぞれの行数が書いてあるファイル(下)が別にあります。
name  number
A-1  123
A-1  560
A-1  121
A-2  650 
A-2  320
A-2  250
A-2  120
A-3  450
A-3  230
------------
name 行数
A-1  3
A-2  4 
A-3  2

これを1行目から順に読み込んでいってA-1すなわち1行目から3行目までを
抽出してファイルに出力、
続いてA-2、すなわち4行目から7行目までを
抽出してファイルに出力…という風に
上から順に個別に出力していきたいのですがなかなかうまくいきません。

下の行数のファイルから行数の値を変数に入れて
For  Nextで回すのかな…とか考えてみましたが
自分では解決できずアドバイスよろしくお願い致します。


特攻隊長まるるう  2004-06-26 01:46:09  No: 114331

内容的には
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200406/04060051.txt
の応用です…


nanashi  2004-06-26 01:49:39  No: 114332

ファイル1のA-1、A-2、A-3がこの例のように混ざって無いなら
ファイル2は特に必要無いかと思いますが。

うまくいかないとは、どううまくいかないんですか?
どこが分からないんでしょうか?
今出来ているソースを提示していただければアドバイスしやすいと思います。


マグ  2004-06-26 02:14:55  No: 114333

VB.NETのソースですがVB6では出来るか試してください。

Dim fileno As Integer
Dim s As String

fileno = FreeFile()

FileOpen(fileno, "c:\test.txt", OpenMode.Input)
While Not EOF(fileno)
  s = LineInput(fileno)
End While
FileClose(fileno)

これで変数sに一行づつデータが取得出来ます。
順番に一行ずつです。
s = LineInput(fileno)の下に
Msgを使って確認して見ればどのように取得されているのか分かります。
あとは、indexOf関数で検索をかけて
switch構文で枝分かれにし、
つなげていけば何とかなると思います。


H.K-S  2004-06-29 00:05:06  No: 114334

なんとか先ほど完成しました!
みなさまありがとうございました!


z  2004-06-29 17:11:19  No: 114335

あなただけ解決しても良いのですが、
出来ばどのようにして解決したかを書いてあると
同じ悩みを持つ人にとって役に立つと思います。
情報の蓄積、そして”活用”という事を考えてください。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加