Программный Файл: ...\Samples\Solution\Controls\TXT_EDT\Editbox.scx

В данном примере показан процесс просмотра или редактирования Поля типа MEMO или Текстового файла с использованием Контрола EditBox.

Для отображения содержания поля MEMO достаточно установить значение свойства ControlSource для контрола Редактирования EditBox.

В этом примере показаны Два варианта Редактирования Текстового файла с помощью Контрола EditBox:  при помощи низко-уровневых файловых функций, и при использовании способа Создания временного Курсора, содержащего текст файла. В данном примере используются низко-уровневые файловые функции при создании требуемого Курсора.

Редактирование Текстового файла при использоывании Низко-Уровневых файловых функций.

Текстовый файл может быть открыт с помощью стандартной функции FOPEN( ), чтение содержания текстового файла выполняется с помощью функции FREAD( ), далее данный текст помещается в некоторую переменную памяти или присваивается в виде значения свойству Value соответствующего Контрола EditBox. Далее, измененный текст может быть записан в файл с помощью функции  FWRITE( ), текстовый файл закрывается с помощью функции FCLOSE( ).

Редактирование текстового файла способом загрузки его содержания в поле некоторого временного Курсора.

Основным преимуществом данного метода создания временного курсора и загрузки в него содержания текстового файла является то, что при этом используется достаточно простой Программный Код (смотрите ниже) и то, что система Visual FoxPro достаточно надежно  выполняет управление большими размерами текстовых файлов в условиях недостаточности Оперативной Памяти рабочей станции.

 CopyCode imageКопировать Код
IF SELECT("textfile") = 0
CREATE CURSOR textfile (filename c(60),mem m)
APPEND BLANK
ENDIF
REPLACE textfile.FileName WITH GETFILE("TXT")
IF EMPTY(textfile.FileName)
RETURN
ENDIF
SELECT textfile
APPEND MEMO mem FROM (textfile.FileName) OVERWRITE
THIS.Parent.edtText.ControlSource = "textfile.mem"
THIS.Parent.cmdSave.Enabled = .T.
THIS.Parent.lblFileName.Caption = ALLTRIM(textfile.FileName)
THIS.Parent.Refresh

См. также