Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нада закрыть все файлы / 7 сообщений из 7, страница 1 из 1
18.07.2006, 16:33
    #33861535
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нада закрыть все файлы
Добрый день.
Как поступать в таком случае?
Отлаживаю программу - там есть ошибки (естественно!). Прекращаю выполнение из Debugger, подав команду Cancel. Уничтожаю ссылки, переменные, объекты, закрываю таблицы.
Код: plaintext
1.
2.
CLEAR ALL
CLOSE ALL
RELEASE ALL
Но часто у меня остается какой-нибудь файл, открытый по FOPEN(). И Fox его не отпускает. Ссылка на этот открытый файл утеряна. Как заставить fox закрыть все открытые файлы?
...
Рейтинг: 0 / 0
18.07.2006, 17:12
    #33861703
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нада закрыть все файлы
Кузнецов Игорь.. Как заставить fox закрыть все открытые файлы?
Я использую годами проверенную команду:
Код: plaintext
QUIT
Good luck!
...
Рейтинг: 0 / 0
19.07.2006, 08:05
    #33862669
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нада закрыть все файлы
Так я тоже вынужден использовать этот способ.
Ладно, значит нет возможности добиться своего и остаться в среде фокса.
...
Рейтинг: 0 / 0
19.07.2006, 08:41
    #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
19.07.2006, 09:00
    #33862742
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нада закрыть все файлы
Спасибо. Интересный вариант. Пожалуй стоит его использовать при отладке своей программы.
...
Рейтинг: 0 / 0
20.07.2006, 00:51
    #33865547
Penner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нада закрыть все файлы
скачай Visual FoxPro-Multi-Projects Manager в числе всего прочего, горячая клавиша F12 - очищает все
...
Рейтинг: 0 / 0
20.07.2006, 17:07
    #33867875
vick057
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нада закрыть все файлы
А зачем все так сложно?

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


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