4.4.2. Просмотр состояния памяти

 

Переменные существуют, пока выполняется приложение или продолжается сеанс Visual FoxPro, в котором они были созданы. Чтобы задать область видимости переменной, употребляются ключевые слова LOCAL, PRIVATE и PUBLIC.

·       Ключевое слово LOCAL создает локальные переменные, которые могут использоваться и модифицироваться только в той программе, где были созданы, и которые недоступны в программах более высокого или более низкого уровня. Локальные переменные и массивы освобождаются при прекращении выполнения содержащей их программы.

·       Ключевое слово PRIVATE скрывает от текущей программы переменные и массивы, определенные в вызывающей программе. Имена таких переменных можно использовать в текущей программе, не влияя на исходные переменные. Когда программа, содержащая объявление с ключевым словом PRIVATE, оканчивается, все скрытые переменные и массивы снова становятся доступными.

·       Ключевое слово PUBLIC определяет глобальные переменные или массивы. Глобальные переменные и массивы могут использоваться и модифицироваться из любой программы, запускаемой в текущем сеансе Visual FoxPro. Все переменные и массивы, создаваемые в окне Command, являются глобальными.

Если переменная имеет то же имя, что и поле, Visual FoxPro всегда отдает предпочтение имени поля.

Для того, чтобы знать какие переменные находятся в памяти в данный момент и чему равно их значение, воспользуйтесь процедурой DisplayMemory. Для вызова ее в нужный момент времени включите в текст головного модуля строчку: ON KEY LABEL F2 DO DisplayMemory. Теперь при нажатии клавиши F2 всегда можно получить карту состояния памяти (рис. 4.30).

 

 


Текст процедуры размещен в процедурном файле FileProc:

 

PROCEDURE DisplayMemory                  && Состояние памяти

PRIVATE FileName

* Имя временного файла - Display.txt

FileName='C:\WINNT\TEMP\Display.txt'

* Разместить состояние памяти в файле

DISPLAY MEMORY TO FILE &FileName NOCONSOLE

* Просмотреть при помощи программы Блокнот

RUN /N1 NOTEPAD.EXE &FileName

* Удалить временный файл

DELETE FILE &FileName

RETURN