:: Visual Foxpro, Foxpro for DOS
Re: Сохранить переменную типа Object в файл
Taran

Сообщений: 13626
Откуда: Красноярск
Дата регистрации: 16.01.2008
lulgu
Придется Тарану изучить всю тему заново.
Повторение - мать учения. (с)

Спасибо.
И тебе не скучать
[attachment 36393 uk314858.jpg]
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
Taran

Сообщений: 13626
Откуда: Красноярск
Дата регистрации: 16.01.2008
2 lemenev

INSERT INTO (This.Alias+'_Memo') (Name, Type, Value) VALUES ;
(lcName, VARTYPE(m.luValue), ;
IIF(AT(VARTYPE(m.luValue),'GOQUX')=0,lcValueAsString, ;
'Недопустимый тип данных для сохранения') )

я бы несколько изобразил иначе.
INSERT INTO (This.Alias+'_Memo') (Name, Type, Value);
VALUES (lcName,;
VARTYPE(m.luValue),;
IIF(AT(VARTYPE(m.luValue), 'GOQUX')=0,;
lcValueAsString,;
'Недопустимый тип данных для сохранения'))
т.е. VALUES однозначно с новой строки.
Если переменные не помещаются в одну строку, то структурировать построчно.
Рано или поздно придется самому перечитывать свой код и причем по-диагонали.

И еще...
8 символов на табуляцию структуры крайне много. При некоторой вложенности неудобно даже читать.
Да и сам символ табуляции порой вреден. Хоть это и не сразу очевидно.
Во всех/большинстве средах разработки используется 2 пробела. Вполне достаточно.

В коде
RightClick -> Properties -> Indentation -> TabSize=2, IndentSize=2, +InsertSpace.
+ Apply to .PRG files



Исправлено 1 раз(а). Последнее : Taran, 30.08.22 06:09
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
А я бы убрал (This.Alias+'_Memo') в новое свойство, скажем, alias_memo - совершенно ни к чему при каждом обращении к этой таблице чего-то там вычислять.
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
lemenev
Я считал, что при обращении к этому классу сначала срабатывает метод Init
В теории суть происходящего описывается иначе:
1) На основе класса вы создаете объект (CreateObject);
2) A затем обращаетесь к его (объекта) свойствам и методам.

Метод Init (если он существует) по умолчанию вызывается лишь один раз при создании объекта, и если он вернёт .F., то объект создан не будет.
Если Init не существует, то это практически аналогично пустому Init, возвращающему .T.
Теоретически в процессе работы с объектом ничто не мешает вам вызывать метод Init явно, как и любой другой метод.
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
PaulWist

Сообщений: 14625
Дата регистрации: 01.04.2004
akvvohinc

Метод Init

Init Event - всё таки.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
akvvohinc

Сообщений: 4224
Откуда: Москва
Дата регистрации: 11.11.2008
Формально - так и есть.
(Правда, в рамках этой темы автору эти тонкости, думаю, не пригодятся).

Но когда код любого события (Event) мы исполняем явно, например, oSet.Init(), то при таком обращении отличия "событие/метод" почти исчезают (хотя и не все).



Исправлено 1 раз(а). Последнее : akvvohinc, 30.08.22 16:43
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
lemenev

Сообщений: 113
Дата регистрации: 23.06.2022
akvvohinc
Я бы сделал иначе:
Ничего не меняя в первоначальном варианте по сути, поправил бы методы так, чтобы они не валились из-за того, что Settings может не быть текущей таблицей.
Это несложно - просто добавить IN Settings в те команды, где есть такая опция (REPLACE, DELETE, PACK), и добавить параметр(ы) в SEEK().
Мне этот вариант очень нравится.
akvvohinc
В новом варианте мне кажется совершенно излишним постоянно открывать/закрывать таблицу и дергать туда/сюда SETы.
Это достаточно делать один раз - при создании объекта открыть/установить, а при его удалении закрыть/восстановить - то есть как и было сделано в предыдущем варианте.
Таблицу Settings можно открывать в Init, а закрывать в Destroy, а вот как быть с SET-ами? Их приходится «дергать туда/сюда»
akvvohinc
А вообще к любому варианту есть более серьезные вопросы.
Например, почему эта таблица открывается монопольно - многопользовательская работа не предполагается, или что обеспечивает каждому пользователю свою таблицу Settings?
Если же авторизации нет в принципе, то что помешает вам запустить приложение дважды и получить ошибку доступа к этой таблице при втором запуске?
Эта таблица открывается монопольно исключительно из-за наличия PACK. Как красиво это обойти я пока не придумал. Вообще отказаться от сжатия и оставлять удалённые записи в таблице «навсегда»? Тогда во всех методах работы с таблицей нужно будет обходить удалённые записи. Можно выставить SET DELETED ON, но опять возвращаемся к проблеме настроек.
akvvohinc
А я бы убрал (This.Alias+'_Memo') в новое свойство, скажем, alias_memo - совершенно ни к чему при каждом обращении к этой таблице чего-то там вычислять.
Согласен, только не в свойство объекта, а в локальную переменную этого метода. Больше это нигде не нужно.
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
lemenev

Сообщений: 113
Дата регистрации: 23.06.2022
2 Taran
Спасибо за указания по оформлению. Это действительно важно.

Taran
8 символов на табуляцию структуры крайне много. При некоторой вложенности неудобно даже читать.
Да и сам символ табуляции порой вреден. Хоть это и не сразу очевидно.
При вводе в тексте сообщения программного кода знаки табуляции расширяются на 8 символов, что крайне много. У меня знаки табуляции расширяются на 4 символа, как это принято в Fox по умолчанию. Так что это не моя вина. Но можно, перед тем как выкладывать программный текст на сайт, заменять знаки табуляции на 2-3 пробела, как вы показывали.
А вот чем вреден символ табуляции в командной строке?
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
Taran

Сообщений: 13626
Откуда: Красноярск
Дата регистрации: 16.01.2008
lemenev
А вот чем вреден символ табуляции в командной строке?

Именно тем, как ты выше и сказал. При экспорте куда-либо ломается оформление.
Я тоже долго не мог себя заставить отказаться от табуляции. Потом созрел и понравилось.
Особенно когда монитор узкий и места мало вширь.
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
ничем

>> При экспорте
>> Особенно когда монитор узкий

() причем тут монитор, при экспорте...

аа, " в командной строке?", пипец...

() обьект в строку давно преобразовали, вложенными символами, типа {} (забыл название "стандарта"... стандарты важны), придуман стандарт, с фигурными скобками (забыл название), но идея простая - преобразовать обьект в строку, это строка с вложенными разделиьелями (типа XML), что там за проблы?



Исправлено 5 раз(а). Последнее : of63, 30.08.22 21:43
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
Taran

Сообщений: 13626
Откуда: Красноярск
Дата регистрации: 16.01.2008
of63
ничем
>> При экспорте
>> Особенно когда монитор узкий

() причем тут монитор, при экспорте...

У меня было в посте было две ситуации описано.
1.Именно тем, как ты выше и сказал. При экспорте куда-либо ломается оформление.
2.Я тоже долго не мог себя заставить отказаться от табуляции. Потом созрел и понравилось.
Особенно когда монитор узкий и места мало вширь.
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
Taran

Сообщений: 13626
Откуда: Красноярск
Дата регистрации: 16.01.2008
lemenev
Таблицу Settings можно открывать в Init, а закрывать в Destroy, а вот как быть с SET-ами? Их приходится «дергать туда/сюда»

А ты еще раз прочувствуй мою идею с вложенным объектом, загрузкой всех значений при создании объекта и выгрузкой при Destroy.
И сопоставь накладные расходы вариантов.
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> При экспорте куда-либо ломается оформление.

какое такое "оформление" при "экспорте"... я туплю что-ли...

нащи бабы не видят экспорта кроме "видимых" файлов (типа экселя, тектовые ои не знают такого слова), мы об этом ?



Исправлено 1 раз(а). Последнее : of63, 30.08.22 22:01
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
Taran

Сообщений: 13626
Откуда: Красноярск
Дата регистрации: 16.01.2008
of63
> При экспорте куда-либо ломается оформление.
какое такое "оформление" при "экспорте"... я туплю что-ли...

нащи бабы не видят экспорта кроме "видимых" файлов (типа экселя, тектовые ои не знают такого слова), мы об этом ?

Речь про экспорт исходного кода.
Как пример, выше уже об этом сказано: В фоксе установлено TAB расширять до 4х знаков. А сайт расширяет до 8. И сбивается.
(Спасибо Joys улудшил сайт на днях и стало легче, но тем не менее..)
Есть TAB в тексте нет, то и жизнь в кайф.

P.S. ну и при печати наверняка будут артефакты..



Исправлено 1 раз(а). Последнее : Taran, 30.08.22 22:09
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Оформление кода выполняется оптом в Меню, пункт Tools/Beautify.
Там и выполняются отступы - хоть Tab, хоть Space.
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Лулгу! Если ты женщина, то будь ей )
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
У тебя что, опять День Сурка ...
Помог бы лучше, тут асы гурьбой не могут стартовую прогу запустить.
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Тут больше игры, у кого что "больше",

что за " стартовую прогу " не могут запустить наши доблесные ребята?

> День Сурка
В чем он состоит (надо проверять наших комбатантов...) ?

() сохранить ваше "обьектное" что-то просто - перебирайте свойства вошего обьекта (и вложенно, вложенные обьекты, массиивы)... это элементарная задача для програмеров, начинающих особенно... )



Исправлено 3 раз(а). Последнее : of63, 30.08.22 22:47
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
of63
что за " стартовую прогу " не могут запустить наши доблесные ребята?

Да тут аж на 6-страницах не знают, что с парой процедур от ИК делать.
Пропал он что-то.
Пытался я перевести, без результата.
Ratings: 0 negative/0 positive
Re: Сохранить переменную типа Object в файл
of63

Сообщений: 25256
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
покажи промежуточные результаты?

> Пропал он что-то.
Да



Исправлено 1 раз(а). Последнее : of63, 30.08.22 22:49
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 28 (Гостей: 28)

© 2000-2024 Fox Club 
Яндекс.Метрика