Run-time error '75'

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
viny
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 12.04.2005 (Вт) 14:57

Run-time error '75'

Сообщение viny » 12.04.2005 (Вт) 15:06

Скрипт, сканирует текст files.
На некоторых файлах затыкается с ошибкой:
Run-time error '75'
Path/File access error.

О чём речь? Не подскажите?

Thanks

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 12.04.2005 (Вт) 15:13

http://bbs.vbstreets.ru/viewtopic.php?t ... 40cb35f200

хе.. в яндексе нашел, первой строкой :)

viny
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 12.04.2005 (Вт) 14:57

Сообщение viny » 12.04.2005 (Вт) 15:39

Спасибо.
Пытаюсь разобраться.

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 12.04.2005 (Вт) 15:40

посмотри в этом топике последний ответ, может у тя в этом проблема...

viny
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 12.04.2005 (Вт) 14:57

Сообщение viny » 12.04.2005 (Вт) 15:52

Я тоже работаю с .path
Вставил код:

function EnsureSlash(s as string) as string
if right$(s,1)="\" then ensureslash=s else ensureslash=s & "\"
end function


в модуль.
Надо как-то вызывать ету функцию?
Пока неработает.

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 12.04.2005 (Вт) 17:27

Везде вместо App.Path Ставь EnsureSlash(App.Path) :twisted:
На это не смотрите! Это не подпись!!!!!!

viny
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 12.04.2005 (Вт) 14:57

Сообщение viny » 12.04.2005 (Вт) 20:48

Изображение

Не выходит... каменный цветок.

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 12.04.2005 (Вт) 20:51

Должно работать:
Код: Выделить всё
thefile = EnsureSlash(Dir1.Path) & myfile
Моду создают модоки, а распространяют модозвоны.

viny
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 12.04.2005 (Вт) 14:57

Сообщение viny » 12.04.2005 (Вт) 21:00

Изображение

Tакая закавырка!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.04.2005 (Ср) 5:00

Посмотри Q197486 и Q197321... Не твой случай? Хотя вроде нет... Но всё же :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 13.04.2005 (Ср) 6:24

Я очень рекомендую подвести курсор мышки к слову thefile во время ошибки, и посмотреть какое значение оно содержит.

Либо в Immediate окне напиши ?thefile
Тоже после ошибки.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

viny
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 12.04.2005 (Вт) 14:57

Сообщение viny » 13.04.2005 (Ср) 11:46

Изображение

В том то и дело что PATH правильный.
???

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 13.04.2005 (Ср) 11:59

вот попробуй с помощью этой функции:

Код: Выделить всё
'**********************************************************
' Чтение файла
'----------------------------------------------------------
Public Function FileRead(FileName As String) As String
Dim handle As Integer
 
  handle = FreeFile()
  Open FileName For Binary Access Read Shared As #handle
  FileRead = Space(FileLen(FileName))
  Get #handle, , FileRead
  Close #handle
 
End Function

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 13.04.2005 (Ср) 12:01

а это проверка заблокирован ли он:

Код: Выделить всё
'**********************************************************
' Проверка блокировки файла
'----------------------------------------------------------
Public Function FileLocked(ByRef FileName As String) As Boolean
Dim h As Integer
  On Error GoTo Error_Open
  FileLocked = True
  h = FreeFile()
  Open FileName For Append Access Read Write Lock Read Write As #h
  Close #h
  FileLocked = False
  Exit Function
Error_Open:
End Function

viny
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 12.04.2005 (Вт) 14:57

Сообщение viny » 13.04.2005 (Ср) 13:32

Изображение

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 13.04.2005 (Ср) 15:53

шо, опять :?:

может у тебя файл битый

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 13.04.2005 (Ср) 16:52

А диск случаем не сетевой?
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

viny
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 12.04.2005 (Вт) 14:57

Сообщение viny » 13.04.2005 (Ср) 17:18

Диск сетевой.
Но с большинством файлов никакой проблемы нет, только с некоторыми.
ААА, понял к ним нет доступа.
Спасибо всем за помощь !!!!!!!!!!!!!!!!!!!!
Ещё вопросик:
скрипт сканирует все файлы в директории:
так, я пробую пропускать те файлы без доступа,
используя On Error Goto
но после того как пропускает первый файл опять затыкается на следующем.
Что-то с On Error Goto не так?
Thanks.

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 13.04.2005 (Ср) 19:49

viny
Пробуй делать так:
Или в начале сканирования делай On Error Resume Next (что в прочем не очень кузяво).
Либо в начале сканирования делай On Error Goto ErrSub (ErrSub - обработчик ошибок в этой же процедуре).

В процедуре после метки ErrSub выводи (если есть желание) сообщение о том что файл недоступен и поступай уже как тебе нужно: или выход из процедуры, или предложение пользователю повторить попытку доступа к файлу или же просто выводи сообщение о недоступности файла (например на 3-5 сек, потом закрываешь сообщение и продолжаешь сканировать со следующего файла).

По второму варианту код представляется так:
Код: Выделить всё

Private Sub Scan()
..... 'Некоторый код
'Начинаем сканирование
On Error Goto ErrSub
...
.... 'внутри цикла
Retry:
.... 'сканируем очередной файл
.... 'обрабатываем его
Ignore:
Next

Exit Sub

ErrSub:
       Dim Answer As Integer
    Answer = MsgBox("Невозможно получить доступ к " & vbCrLf & sFileName & vbCrLf, _
            vbAbortRetryIgnore + vbExclamation, "Сканирование...")
    Select Case Answer
        Case vbAbort
            Debug.Print "Отменяем..."
            Exit Sub
        Case vbRetry
            Debug.Print "Повторная попытка..."
            GoTo Retry
        Case vbIgnore
            Debug.Print "Игнорируем..."
            GoTo Ignore
    End Select
End Sub


Код, сахар и сливки добавить по вкусу...
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 23.12.2006 (Сб) 10:02

Здраствуйте!
Господа, помогите пожалуйста, я уже себе рак мозга нажил практически.
Ситуация такая: сделал сетевой чат с функцией передачи по сети файлов с докачкой.
Отправляю большой файл, обрываю его. Делаю докачку. Т.е. файл обрубленный.
Запускаем такой код:

Код: Выделить всё
cd.FileName = FileName
cd.ShowSave
FileName = cd.FileName
       
Open FileName For Binary As #123
    nFileLength = LOF(123)
    ReDim fil(nFileLength - 1)
    Get #123, , fil
    Close #123
   
Open FileName For Binary As #321
    Put #321, , fil


и дальше по идее пошла докачка в файл #321.
НО: когда я пытаюсь в тот же файл запихать его начало: Put #321, , fil
вылазит ошибка Path/file access error. Т.е. файл открывается, а записать туда не дает. :scratch:
Как эту проблему решить?
Нехороший какойто файл. Если я этот код на целостном файле пробую -все нормально, а если на недокачанном - косяк.

И еще: если сделать Kill FileName то он блокируется и не удаляется. Лечится только перезагрузкой...

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Сообщение HandKot » 25.12.2006 (Пн) 8:41

может антивирус?
I Have Nine Lives You Have One Only
THINK!

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 25.12.2006 (Пн) 14:55

Нет. Попробовал - антивирус непричем.
Даже если просто попробовать удалить этот файл командой kill filename он блокируется. После перезагрузки исчезает :scratch:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 25.12.2006 (Пн) 14:58

Number used in the Open statement to open a file. Use file numbers in the range 1–255, inclusive, for files not accessible to other applications. Use file numbers in the range 256–511 for files accessible from other applications.
Lasciate ogni speranza, voi ch'entrate.

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 25.12.2006 (Пн) 15:29

Нет, Алибек, не помогло.
Видишь ли в чем парадокс: файл после обрыва закачки и закрытия нормально удаляется средствами windows.
Но если его попробовать kill то файл блокируется.
А такая последовательность:
Код: Выделить всё
Open FileName For Binary As #444
nFileLength = LOF(444)
ReDim fil(nFileLength - 1)
Get #444, , fil
Close #444

Open FileName For Binary As #445
Put #445, , fil
Close #445

на строке Put #445, , fil вызывает 75ю ошибку.

и еще. попробовал на различных типах файлов. Все проходит нормально, пока дело не доходит до .avi файлов. Так что какая-то с ними проблема, может структура такая хитрая.
Так что основной вопрос снят. Возник вопрос по удалению нецелостных avi файлов :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 93

    TopList  
cron