powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нада закрыть все файлы
7 сообщений из 7, страница 1 из 1
Нада закрыть все файлы
    #33861535
Кузнецов Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Как поступать в таком случае?
Отлаживаю программу - там есть ошибки (естественно!). Прекращаю выполнение из Debugger, подав команду Cancel. Уничтожаю ссылки, переменные, объекты, закрываю таблицы.
Код: plaintext
1.
2.
CLEAR ALL
CLOSE ALL
RELEASE ALL
Но часто у меня остается какой-нибудь файл, открытый по FOPEN(). И Fox его не отпускает. Ссылка на этот открытый файл утеряна. Как заставить fox закрыть все открытые файлы?
...
Рейтинг: 0 / 0
Нада закрыть все файлы
    #33861703
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кузнецов Игорь.. Как заставить fox закрыть все открытые файлы?
Я использую годами проверенную команду:
Код: plaintext
QUIT
Good luck!
...
Рейтинг: 0 / 0
Нада закрыть все файлы
    #33862669
Кузнецов Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так я тоже вынужден использовать этот способ.
Ладно, значит нет возможности добиться своего и остаться в среде фокса.
...
Рейтинг: 0 / 0
Нада закрыть все файлы
    #33862705
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай класс - обертку для работы с файлами:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
DEFINE CLASS clsfile AS custom
	PROTECTED nhandle
	nhandle = - 1 
	Name = "clsfile"

	PROCEDURE create
		lpara tcFile
		this.Close()
		this.nHandle = fcreate(alltrim(tcFile))
		return this.nHandle >=  0 
	ENDPROC

	PROCEDURE close
		if this.nHandle >  0 
			fclose(this.nHandle)
			this.nHandle = - 1 
		endif
	ENDPROC

	PROCEDURE writestring
		lpara tcS
		return fputs(this.nHandle, tcS) !=  0 
	ENDPROC

	PROCEDURE openread
		lpara tcFile
		this.Close()
		this.nHandle = fopen(alltrim(tcFile))
		return this.nHandle >=  0 
	ENDPROC

	PROCEDURE readstring
		return fgets(this.nHandle,  8192 )
	ENDPROC

	PROCEDURE eof
		return this.nHandle <  0  or feof(this.nHandle)
	ENDPROC

	PROCEDURE getsize
		local lnSize
		lnSize =  0 
		if this.nHandle >=  0 
			lnSize = fseek(this.nHandle,  0 ,  2 )
			fseek(this.nHandle,  0 ,  0 )
		endif
		return lnSize
	ENDPROC

	PROCEDURE openwrite
		lpara tcFile
		this.Close()
		if !file(tcFile)
			this.Create(tcFile)
		else
			this.nHandle = fopen(alltrim(tcFile),  1 )
			fseek(this.nHandle,  0 ,  2 )
		endif
		return this.nHandle >=  0 
	ENDPROC

	PROCEDURE isopen
		return this.nHandle >=  0 
	ENDPROC

	PROCEDURE write
		lpara tcS
		return (fwrite(this.nHandle, tcS) !=  0 )
	ENDPROC

	PROCEDURE Destroy
		this.Close()
	ENDPROC

ENDDEFINE

и используй примерно так:
Код: plaintext
1.
2.
3.
loF = NewObject("clsFile")
if loF.Create("MyFile.txt")
loF.WriteString("123456")
endif

При уничтожении переменной (например при выходе из области видимости или вылете по ошибке при написании) автоматом выполняется метод Destroy() и файл закрывается.
Я таким образом избавился от постоянного закрывания-открывания при отладке кода работающего с файлами.
...
Рейтинг: 0 / 0
Нада закрыть все файлы
    #33862742
Кузнецов Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Интересный вариант. Пожалуй стоит его использовать при отладке своей программы.
...
Рейтинг: 0 / 0
Нада закрыть все файлы
    #33865547
Penner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скачай Visual FoxPro-Multi-Projects Manager в числе всего прочего, горячая клавиша F12 - очищает все
...
Рейтинг: 0 / 0
Нада закрыть все файлы
    #33867875
vick057
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем все так сложно?

Close all закрывает все. В том числе и файлы, открытые с помощью FOPEN().
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нада закрыть все файлы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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