掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Seek関数を使いこなすには (ID:119407)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Sub FSEEK() '概要:ファイルシークによる多重ループの高速化 '前提条件: *****、メールアドレスが昇順でソートされている事 '機能: '******を見つけたファイルポインタをGLOBAL変数に記憶する '次回処理されたら、前回処理された位置から処理するように 'GLOBAL変数から値を取り出しファイルポインタに設定する 'もし見つからなければファイルポインタを最初に設定し '検索をやり直す、そして前回処理された場所まで処理する 'MsgBox "引数=" & Mails Dim s As String Dim MyArray Dim d s = CurDir 'カレントフォルダを取得する MyArray = Split(s, "\", -1) 'カレントフォルダを"¥"で分割する 'カレントフォルダを再構成する s = MyArray(0) & "\" & MyArray(1) & "\" & MyArray(2) & "\" & "デスクトップ\ファイルシーク" ChDir s 'カレントフォルダを変更する Dim strFILENAME2 As String strFILENAME2 = s & "\FILESEEK2.txt" ' Dim strFILENAME3 As String 'Dim setlist(200) As String ' strFILENAME3 = "kihon_dl.csv" ' Dim strREC As String ' 読み込んだレコード内容 Dim strREC 'オーバーフローの為 Dim setlist As Variant 'SPLITの戻り値はバリアント型の為 Dim n, comt, counter 'strFILENAME2 = s & "\FILESEEK2.txt" Dim intFileno As Integer Dim i Dim jjj As Variant Dim uuu As Long Dim dse, A1, A2 As String Open strFILENAME2 For Input As #1 ' Close #intFileno Dim strtest Dim ddd As String Dim FPos As Long counter = 0 i = 1 Dim gcounter A1 = "6columsyori" A2 = "7columsyori" Do Until EOF(1) Line Input #1, strREC jjj = Split(strREC, ",") dse = jjj(1) If gcounter = 2 Then Exit Do If StrComp(dse, A1) = 0 Then gcounter = gcounter + 1 MsgBox i & "行目" & "で見つかりました!" & A1 & "行目の処理:" & Loc(1) FPos = Seek(1) MsgBox FPos & "⇔本当の現在位置" A1 = "" A1 = A2 '処理の入れ替え Seek #1, FPos '見つかった位置から検索する ' Seek #1, FPos + 1 '見つかった位置から検索する End If i = i + 1 Loop ' Close #intFileno End Sub 解決しました、有難う御座います。 今までより少し早くなったようです 30分→500件、10分350→件
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.