Люди помогите нет ли у кого пограмки для работы с memo полями в dbf #7045


#0 by Алевтина
Как бы мне перенести данные строкогого типа  в файл dbf в memo поле
#1 by 427
ФоксПро уже на тянет?
#2 by Алевтина
Если бы я его ещё знала!!! хотя конечно нужно учить !! но пока ничего не получается:-((
#3 by Sniffer
REPLACE поле1 WITH поле2 [ADDITIVE] ADDITIVE- если хочешь добавить данные в конец
#4 by Vser1
неправ... =================================================================== 24.7. Работа с мемо-полями В FoxPro имеется несколько команд, специально предназначенных для работы с мемо-полями базы данных. • APPEND MEMO <мемо-поле> FROM <файл> [OVERWRITE] По команде APPEND MEMO добавляются данные из <файла> в <мемо-поле>. Имя файла должно быть задано с расширением. При использовании параметра OVERWRITE данные в мемо-поле будут перекрыты содержимым <файла>. • COPY MEMO <мемо-поле> ТО <файл> [ADDITIVE] По команде COPY MEMO копируется мемо-поле во вновь создаваемый текстовый <файл>. По умолчанию <файл> получит расширение ТХТ. Если задан режим ADDITIVE, мемо-поле будет добавлено в конец существующего текстового файла. • MODIFY MEMO <мемо-поле1 >[,<мемо-поле2>...] [NOEDIT] [NOWAIT] [RANGE <вырNl>,<вырN2>] [SAVE] [WINDOW <окно>] По команде MODIFY MEMO открываются окна редактирования мемо-полей в любой из рабочих областей. Выход из окна с сохранением изменений осуществляется нажатием клавиш Ctrl-W/End, без сохранения - клавиш Ctrl-Q или Escape. Опции команды: NOEDIT - допускается только просмотр поля. NOWAIT - открытие окна не прерывает программу, которая продолжает выполняться с команды, следующей за командой MODIFY MEMO. Такое окно в программе обычно должно быть "подперто" командой READ. RANGE - открывает окно с уже выделенными символами, начиная с позиции <вырNl> до позиции (не включая) <вырN2>. Если <вырNl>=<вырN2>, символы не выделяются, а курсор устанавливается в позицию <вырNl>. Здесь могут быть использованы функции ATQ и АТСО для поиска и выделения в мемо-поле нужной строки. SAVE - сохраняет окно на экране после завершения команды. WINDOW <окно> - мемо-поле будет доступно для редактирования в ранее определенном командой DEFINE WINDOW окне, которому могут быть переданы атрибуты редактора FoxPro (GROW, FLOAT, ZOOM и т.д.). Если в команде перечислен список мемо-полей, то каждое из них будет открыто в своем собственном системном окне, заголовок которого будет содержать полное имя мемо-поля. Если задана опция WINDOW, все мемо-поля открываются в этом одном окне, при этом возможен доступ к ним по очереди, например при нажатии клавиш Ctrl-Fl. • CLOSE MEMO <мемо-поле1> [,<мемо-поле2 ...] /ALL По команде CLOSE MEMO закрываются окна редактирования мемо-полей, открытых командами MODIFY MEMO и BROWSE. Все внесенные изменения сохраняются. Мемо-поля могут быть указаны и из других областей. Опция ALL действует на все открытые окна во всех областях. Аналогичный эффект оказывает нажатие клавиш Ctrl-W/End. Нажатие Ctrl-Q или Escape закрывает окно без сохранения изменений. • SET WINDOW OF MEMO TO [<окно>] Команда указывает <окно>, которое можно использовать по умолчанию для редактирования мемо-поля в командах APPEND, BROWSE, CHANGE, EDIT, GET/READ или MODIFY MEMO. Ввод команды без параметра <окно> отменяет назначение. Пример. Пусть в базе данных KADR.DBF требуется проанализировать трудовую деятельность всех мужчин, в особенности работавших когда-либо ранее в отделе главного механика (ОГМ), и переслать сведения об этом в текстовые файлы для просмотра и редактирования. Все сведения о прошлой работе сотрудников содержатся в мемо-поле PER (Перемещения). Программа, решающая эту задачу, приведена ниже. Здесь сначала определяется окно для вызова мемо-поля PER, в заголовке которого содержатся указания о действии клавиш Ctrl-End (переслать мемо-поле в файл) и сканируются все записи базы, где значение поля POL равно "М" (Мужчина). Для каждой записи в первой строке выводятся табельный номер и фамилия сотрудника. Затем открывается окно для просмотра мемо-поля, причем таким образом, что курсор сразу становится в позицию (если есть), с которой начинается слово ОГМ, что облегчает анализ текста. В зависимости от содержимого мемо-поля. PER пользователь принимает решение о том, нужны ли ему эти данные (нажимает Ctrl-End) или нет (Escape). В первом случае (LASTKEYQ=23) табельный номер превращается в строковую переменную Т, а затем мемо-поле пересылается в файл, который имеет расширение ТХТ и имя, совпадающее с табельным номером. Например, для работника с табельным номером 234 будет создан текстовый файл с именем 234.ТХТ. Это удобно для дальнейшего установления принадлежности файла определенному человеку. Затем текстовый файл вызывается на редактирование в текстовый редактор (MODIFY FILE), после чего записывается на место старого значения мемо-поля. Созданные текстовые файлы остаются на диске для возможной дальнейшей обработки или анализа. SET SAFETY OFF USE kadr DEFINE WINDOW per FROM 2,1 TO 10,50 TITLE; 'Ctrl-End - переслать в файл, нет - Esc'     && Окно мемо-поля SCAN FOR pol='M' CLEAR @ 1,5 SAY 'Табель - '+STR(TAB,3)+' фамилия - '+fam MODIFY MEMO per NOEDIT WINDOW per RANGE; AT('ОГМ',per),AT('ОГМ',per)      && Вызов окна для просмотра IF LASTKEY=23     && Если нажаты Ctrl-End, t=STR(tab,3) COPY MEMO per TO fit    && мемо-поле копируется в файл MODIFY FILE &t              && вызов редактора и возврат APPEND MEMO per FROM &t. . txt OWERWRITE      &&мемо-поля в БД ENDIF ENDSCAN Пример, конечно, несколько искусственный, поскольку ничто нам не мешает сразу отредактировать мемо-поле в команде MODIFY MEMO, но тогда не будут созданы текстовые файлы. Дисковое пространство под мемо-поля отводится в соответствии с командой • SET BLOCKSIZE ТО <вырN> При значении <вырN>, находящемся в диапазоне 1...32, дисковая память выделяется блоками по <вырN>*512 байт. Если <вырN> больше 32 - блоками по <вырN> байт. По умолчанию SET BLOCKSIZE = 64 (т.е. 64 байта). Чем меньше размер блока, тем экономнее расходуется дисковая память, но одновременно снижается скорость доступа к данным при больших размерах мемо-полей. Для анализа содержимого мемо-полей могут быть использованы практически все строковые функции, а также специальные мемо-функции ATLINEQ, RATLINEQ, MLINEQ, MEMLINESQ (см. гл.16). Позже будет рассмотрено еще одно, очень удобное средство доступа к мемо-полям - команда @ ... EDIT. ==================================================================== (с) А.А.ПОПОВ "FoxPro 2.5/2.6 Создание приложении для FoxPro 2.5/2.6 в DOS и WINDOWS", стр.406-409
#5 by Sniffer
читай внимательнее вопрос, где там прозвучало о переносе данных из файла? Команда REPLACE переносит данные строкового типа в мемо-поля.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С