Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Как читать и писать в FPT-файл средствами VFP

 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> БЭСТ-4
View previous topic :: View next topic  
Author Message
Kott



Joined: 24 Jun 2003
Posts: 1
Location: Петров Константин Владимирович
Occupation: менеджер
Interests: Новосибирск

PostPosted: 24 Jun 2003 07:48    Post subject: Как читать и писать в FPT-файл средствами VFP Reply with quote

Back to top
View user's profile Send private message
Дорогой Денис



Joined: 09 Apr 2003
Posts: 37
Location: Дорогой Денис
Occupation: Алтай-Интеллект-Сервис
Interests: Барнаул

PostPosted: 24 Jun 2003 07:53    Post subject: Reply with quote

Клиппер позволяет хранить в момо-полях массивы. Это широко используется в БЭСТ-4. (например книга покупок продаж, счета фактуры - там в мемо полях информация по ставкам и суммам НДС.)
FoxPro хранить массивы в мео полях не умеет.
Поэтому, насколько я понимаю, никак.
Back to top
View user's profile Send private message Send e-mail
WiRuc



Joined: 27 Aug 2002
Posts: 39



PostPosted: 24 Jun 2003 09:44    Post subject: Reply with quote

Еще раз повторюсь
Никто не мешает всю подготовку и обработку данных делать на Фоксе, а затем записывать изменения в базы с помощью небольшой проги на Клиппере. Я так делал с книгой прода
Back to top
View user's profile Send private message
Алексей З.



Joined: 08 Jan 2003
Posts: 344
Location: Зызин Алексей
Occupation: ЗАО "Ренова", программист
Interests: Москва

PostPosted: 24 Jun 2003 09:47    Post subject: Reply with quote

На самом деле в fpt-файлах находится ВСЁ ТО, что находится в мемо-полях соответствющего dbf-файла. И всё что вы видите в мемо-полях - это содержимое fpt-файла. Т.е. чтобы ввести новую, изменить или удалить информацию из fpt-файла - редактируются соответствующие мемо-поля.
Что касается хранения массивов в мемо-полях, то это возмозможно в любой dbf-базе. И не важно Fox это, или Clipper, или Paradox! Они обычно представляют собой цепочку данных с фиксированными разделителями. Записываются и считываются они в каждом случае при помощи своей собственной обработки (подпрограммы).

PS. И вообще, прежде чем что-то править в базах полезно сначала почитать какие-нибудь учебники по этому предме
Back to top
View user's profile Send private message Send e-mail Visit poster's website
WiRuc



Joined: 27 Aug 2002
Posts: 39



PostPosted: 25 Jun 2003 12:12    Post subject: Reply with quote

Спорим что-это не так?
Читайте доку по клипперу, хранение массивов в мемо-полях - привилегия SIXCDX, Фокс такие поля не понимает.
Back to top
View user's profile Send private message
Алексей З.



Joined: 08 Jan 2003
Posts: 344
Location: Зызин Алексей
Occupation: ЗАО "Ренова", программист
Interests: Москва

PostPosted: 25 Jun 2003 12:24    Post subject: Reply with quote

Клиппер я уже забыл. Немного поработал с ним в начале 90-х и всё.

Но:
Ты же можешь в txt-файле сохранить массив?! Что тебе мешает его же сохранить в мемо-поле? Ведь эти поля - суть большущщее текстовое поле со множеством строк и колонок, как чистый (или заполненный) текстовый файл.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
WiRuc



Joined: 27 Aug 2002
Posts: 39



PostPosted: 25 Jun 2003 13:39    Post subject: Reply with quote

Очевидно, разработчики SIXCDX решили сделать по-другому.
Откройте файл book в REAL и убедитесь сами. Длина мемо-поля SUM_DATA равна 0, хотя там как раз хранится массив.
Back to top
View user's profile Send private message
Алексей З.



Joined: 08 Jan 2003
Posts: 344
Location: Зызин Алексей
Occupation: ЗАО "Ренова", программист
Interests: Москва

PostPosted: 25 Jun 2003 14:10    Post subject: Reply with quote

WiRuc wrote:
... Длина мемо-поля SUM_DATA равна 0...

Естественно!
Цитата из учебника по VFP: "Тип данных Memo - обозначается М, длинна 0, десятичных знаков 0, объем 4 байта. Тип данных Memo в записи таблицы - это поле примечаний для ссылки на блок данных". (А. Гореев. "VFP 5.0", FoxTalk).

Вышеуказанный блок данных находится в fpt-файл
Back to top
View user's profile Send private message Send e-mail Visit poster's website
WiRuc



Joined: 27 Aug 2002
Posts: 39



PostPosted: 25 Jun 2003 14:51    Post subject: Reply with quote

Так... Значит начнем с азов
Естественно, поле мемо - не более, чем ссылка на позицию в файле fpt. Это значит, что если в мемо-поле нет данных, то хранится 0, иначе - ссылка на реальные данные. Поэтому, в Фоксе принципиально не может быть ситуации, когда ссылка на данные присутствует, а длина самих данных равна нулю (то бишь их нет). За исключением разрушенных файлов, естественно. Теперь, открываем в Фоксе файл book и видим, что у поля sum_data слово Memo написано с большой буквы. Тем самым Фокс показывает, что в мемо-поле есть ссылка на реальные данные. Теперь, делаем len(sum_data) и получаем... 0. Т.е. хотя ссылка на данные есть, самих данных НЕТ. Это как раз связано со спецификой хранения массивов в мемо-полях. Из Фокса вы эти поля никак не получите
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> БЭСТ-4 All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru