2010-08-13 2 views
0

Im using VB6. В Form.Load я делаю текст, найденный в C: \ test.txt, заполняет Text1.text. Моя проблема в том, что файл C: \ test.txt не существует, а моя программа - просто ошибки. Как я могу сделать так, чтобы получить MsgBox или другое уведомление, если файл отсутствует, вместо сбоя программы? (Так что я могу продолжать с программой, а просто уведомление о том, что файл не существует) Вот код, я использую:Не найден файл .txt, приводящий к сбою моей программы

nFileNum = FreeFile 

Open "C:\test.txt" For Input As nFileNum 
lLineCount = 1 

    Do While Not EOF(nFileNum) 
     Line Input #nFileNum, sNextLine 
     sNextLine = sNextLine 
     sText = sText & sNextLine 
    Loop 

Text1.Text = sText 
Close nFileNum 
+0

Это VB6 OR VB.NET? пожалуйста, проясните, его сбивает с толку плакаты – Darknight

+0

@Darknight, это VB6, снова прочитайте вопрос ... –

+0

Я так понимаю, но почему тег .NET? ergo у некоторых пользователей есть/будут размещаться решения VB.NET. – Darknight

ответ

0

Попробуйте

nFileNum = FreeFile 

Open "C:\test.txt" For Input As nFileNum 

If (nFileNum Is Nothing) Then 
    MsgBox "Hello there!" 
Else 
    lLineCount = 1 

     Do While Not EOF(nFileNum) 
      Line Input #nFileNum, sNextLine 
      sNextLine = sNextLine 
      sText = sText & sNextLine 
     Loop 

    Text1.Text = sText 
    Close nFileNum 
End If 
+0

Все еще дал мне ошибку. – Exist

+0

Я вижу, что ваша проблема исправлена, но на будущее это поможет, если вы указали ошибку, которую вы получите, вместо того, чтобы просто сказать, что вы получили сообщение об ошибке;) – Tchami

+0

На самом деле, моя проблема вернулась. Код, который я получил, сделал сообщение msgbox, независимо от того, находится ли файл там или нет. Нет конкретной ошибки, она просто говорит о недопустимом времени выполнения. – Exist

1

Вы должны добавить Ошибка обработки вашего кода. Затем проверьте сообщение об ошибке или код ошибки, а затем решите отобразить предупреждающее сообщение или нет.

On Error GoTo err_check 
nFileNum = FreeFile 

Open "C:\test.txt" For Input As nFileNum 
lLineCount = 1 

    Do While Not EOF(nFileNum) 
     Line Input #nFileNum, sNextLine 
     sNextLine = sNextLine 
     sText = sText & sNextLine 
    Loop 

Text1.Text = sText 
Close nFileNum 

Exit Sub 

err_check: 
'Check error code/message and display warning message box here 
+0

Я не хочу этого делать ... Я хочу знать конкретно, существует ли этот текстовый файл или нет. – Exist

+0

Извините, не видел ваш код, я попробую, хорошо выглядит, если он работает. – Exist

+0

Чтобы проверить, существует ли файл, использовать объект FSO (вам нужно добавить ссылку на DLL в свой проект) Установить oFSO = CreateObject («Scripting.FileSystemObject») «Проверить файл и вернуть соответствующий результат Если oFSO.FileExists ('C: \ test.txt') Тогда 'существует Else ' не существует Конец, если –

Смежные вопросы