テキストファイルの読込でフリーズするのは?

解決


yopito  2003-04-15 04:37:51  No: 106681

昨日複数のテキストファイルを・・・って質問したものです。

下記のように記述して昨日はうまく行ったのですが、今日はPCがフリーズ?状態になります。
何が原因でしょう?

Private Sub Form_Load()
    Dim s As Long
    Dim f As Long
    Dim g As Long
    Dim k As Long
    
    File1.Path = tmpF & dteDate
    File1.Pattern = "*.jpg"
    
    For s = 0 To File1.ListCount - 1
        
        Image1(s) = LoadPicture(File1.Path & "\" & File1.List(s))
    
    Next s
    
    On Error Resume Next
    Dim h As Long
    
    File2.Path = sendF & dteDate
    File2.Pattern = "*.txt"
    g = 1
    For h = 0 To File2.ListCount - 1
    Dim intFileNo As Integer
    Dim strTextLine As String
    Dim strTxtDat   As String
    
    intFileNo = FreeFile
    
    Open sendF & dteDate & "\t_" & t_code & "_" & dteDate & "_0" & g & ".txt" For Input As #intFileNo
    
    Do While Not EOF(intFileNo)
        
        Line Input #intFileNo, strTextLine
        
        strTxtDat = strTxtDat & strTextLine & vbCrLf
    Loop
    
    Text1(k).Text = strTxtDat
    
    Close #intFileNo
    strTxtDat = ""
    
    g = g + 1
    k = k + 1
    Next h
    
End Sub

という記述です。
上のほうは画像を読み込んでいます。
どなたかよろしくお願いします。


たかみちえ  URL  2003-04-15 05:41:55  No: 106682

それはテキストファイルの読み込み処理に時間がかかりすぎるからだそうです。
ファイル読み込み時、OpenのタイプをBinaryにして、
文字列変数にファイルの内容を保存するようにしてみてください。

  サンプルコードは忘れたので、ヘルプを読みながらやってみてください。


究極とらお  2003-04-15 13:04:18  No: 106683

読み込もうとしているファイルがちゃんと存在していることを確認しましたか?  それとファイル名も。

おそらくopen 〜で読もうとしているファイル名に dteDate っていう変数
がありますが、もしかして今日の日付のことじゃないですよね?

読み込むべきファイルが見つからないため、エラーになるところが
on error resume next のせいでエラーを無視して line input を実行
するがファイルは読み込めていないので  eof にならないで  While  が
無限Loopしているような気がする...

昨日動いたのに今日動かないのは、日付が変わったので読み込むべき
ファイルが昨日と今日とで違う.....というのが原因と想像できますが
どうでしょうか。


yopito  2003-04-18 00:44:32  No: 106684

たかみちえさん・究極とらおさん
ありがとうございました。
ご指摘いただいたとおりでした。
無事表示できるようになりました。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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