powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / This.lnFileHndl=FOpen(lcFile) - возвращает "ложь" :((((
6 сообщений из 6, страница 1 из 1
This.lnFileHndl=FOpen(lcFile) - возвращает "ложь" :((((
    #32828802
kVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
PROCEDURE DiffOpen
	LOCAL lcfile
	lcfile=this.lcFileName+"."+TRANSFORM(This.lnNumVer,"@L ###")
	This.lnFileHndl= 0 
	
	If File(lcFile) # тут истина
		This.lnFileHndl=FOpen(lcFile) # а тут ложь :((( почему?
	EnDIf
	RETURN (This.lnFileHndl> 0 )
ENDPROC

гадская процедура возвращает "ложь"
а нужна "истина"..
...
Рейтинг: 0 / 0
This.lnFileHndl=FOpen(lcFile) - возвращает "ложь" :((((
    #32828831
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ложь возвращается, если этот файл уже кем-то open, либо он открывается на запись, имея атрибут "только чтение" или находясь на диске только для чтения.
...
Рейтинг: 0 / 0
This.lnFileHndl=FOpen(lcFile) - возвращает "ложь" :((((
    #32828898
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 urri
FOpen(lcFile) по умолчанию открывает файл тока на чтение
FOpen(lcFile,2) чтение запись
в любом случае функция возвращает число хандлер файла
2автор
а что вы вообще от файла хотите
и к чему этот код
и как вы проверяете истину и ложь
где вы закрываете файл
возможно юмор в том что Вы сами его и открыли в предыдущем запуске и не закрыли причем потеряли хандлер а теперь он у вас на диске есть но заблокирован вами же
...
Рейтинг: 0 / 0
This.lnFileHndl=FOpen(lcFile) - возвращает "ложь" :((((
    #32829039
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не помню я, какой второй параметр должен быть для ReadOnly, а какой для ReadWrite, а посмотреть негде. До кучи и эту возможную причину ошибки обозначил. ;-)
...
Рейтинг: 0 / 0
This.lnFileHndl=FOpen(lcFile) - возвращает "ложь" :((((
    #32830255
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, еще одно. Если файл указывать без пути, только имя, то функция file(), насколько я помню, смотрит наличие файла не только в каталоге sys(5)+sys(2003), но и в других, доступных, например, потому что они были включены в set path. А вот fopen - только в текущем каталоге.
Попробуй явно приписать полный путь к файлу. Например, так:
Код: plaintext
1.
2.
SomePath=sys( 5 )+sys( 2003 )
lcfile=addbs(SomePath)+this.lcFileName+"."+TRANSFORM(This.lnNumVer,"@L ###")
?File(lcFile)
Если файл не там, где предполагается ему быть, то уже функция file() теперь вернет .f.
...
Рейтинг: 0 / 0
This.lnFileHndl=FOpen(lcFile) - возвращает "ложь" :((((
    #32830403
kVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за советы.
у меня действительно терялся хендлер. вопрос решен.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / This.lnFileHndl=FOpen(lcFile) - возвращает "ложь" :((((
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]