powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Фича ли ЭТО с Evaluate
28 сообщений из 28, показаны все 2 страниц
Фича ли ЭТО с Evaluate
    #35197629
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лис - 9
Есть функция для обработки параметров и запуска через определенное время выбранную пользователем функцию/или подсказку...

Параметры могут быть типа N-C-A
Название параметров toPar1...toPar7

При входе в функцию начинаю их обрабатывать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	FOR m.loI =  1  TO PARAMETERS()
		DO CASE
			CASE TYPE("EVALUATE('toPar'+ALLTRIM(STR(m.loI))+'[1]')")#"U"
				loArrayRow = ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))), 1 )
				loArrayCol  = ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))), 2 )
				.ParamF[m.loI] = .NewArr(m.loArrayRow,m.loArrayCol)
				ACOPY(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),EVALUATE(.ParamF[m.loI]))
			OTHERWISE
				.ParamF[m.loI] = EVALUATE('toPar'+ALLTRIM(STR(m.loI)))
		ENDCASE
	ENDFOR
И вот с какой фичей столкнулся....
Дебагер показывает:
EVALUATE('toPar'+ALLTRIM(STR(m.loI))) - массив
ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),1) - строк 1
ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),2) - колонок - 17
а на саму строку loArrayRow = ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),1)
Ругается что Function argument value, type, or count is invalid
Почему тогда в дебагере видно результат выполнения данных функций...

С Ув. Игорь...
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35197717
всегда в дрожь бросает,
когда передают не пойми что и затем ищут не мойми где

за аллтрим вообще руки отбиваю сразу

давай так тогда


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
local .....
lnParams = PARAMETERS()
FOR loI =  1  TO lnParams 
   luValue = EVALUATE('toPar'+LTRIM(STR(m.loI))
   if type( "luValue",  1 ) = "A"
     loArrayRow = ALEN( luValue , 1 )



совет
можете предать емпти или кастом и начитать ему уже св-ва?
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35197720
да и не loArrayRow,
а именуем правильно lnArrayRow
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35197776
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В дискусию я вступать неХЦЮ...
И что б что-то советовать надо проверять код...
CLEAR
LOCAL ARRAY aaa(1,17)
aaa[1,1]='1'
aaa[1,2]='2'
loValue = EVALUATE('aaa')
?TYPE(loValue)
?TYPE(loValue,1)
?TYPE("loValue")
?TYPE("loValue",1)
?TYPE(aaa)
?TYPE(aaa,1)
?TYPE("aaa")
?TYPE("aaa",1)

здеся меня ниКОГДА неБУДЕТ if type( "luValue", 1) = "A"

А как обЪявлять переменные... Эт кто как Хтит тот так и Др...
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35197781
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И надо еще внимательно читать вопрос...

Почему дебагер отображает результат...
А выполнить его нельзя....

С Ув. Игорь.
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35197814
ну тогда сам разбирайся
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35197889
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
local laddd[ 3 , 2 ], loObject

loObject = createobject("custom")
loObject.addproperty("MyArray[1]")

= ttt(@laddd,,,,loObject)
= ttt(,@laddd,,,loObject)
= ttt(,,@laddd,,loObject)
= ttt(,,,@laddd,loObject)


************
function ttt
************
lparameters tu1, tu2, tu3, tu4,  toObject
LOCAL laARray, lnParam, lnParams
lnParams = parameters()
for lnParam= 1  to lnParams 
	if  type("tu"+ltrim(str(lnParam)),  1 )="A"
		do case
			case lnParam= 1 
				= acopy(tu1 , toObject.MyArray) 
			case lnParam= 2 
				= acopy(tu2 , toObject.MyArray)
 			case lnParam= 3 
				= acopy(tu3 , toObject.MyArray) 
			case lnParam= 4 
				= acopy(tu4 , toObject.MyArray) 				
			otherwise
		endcase 	
		? ltrim(str(lnParam)) + ' куку  ' + type("toObject.MyArray", 1 )
	endif 
endfor
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198004
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да как создать массив и потом его отдать я уже разобрался...
Но я делал усе через отладчик...
Он мне показывает че Усе Ок...
А запускаешь ФИГА-тебе

А работает оно и так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
	FOR m.loI =  1  TO PARAMETERS()
		DO CASE
			CASE TYPE("EVALUATE('toPar'+ALLTRIM(STR(m.loI))+'[1]')")#"U"
				STORE .NewArr(ALEN('toPar'+ALLTRIM(STR(m.loI)), 1 ),ALEN('toPar'+ALLTRIM(STR(m.loI)), 2 ), 1 ) TO .ParamF[m.loI], m.loArray
				ACOPY('toPar'+ALLTRIM(STR(m.loI)),&loArray.)
			OTHERWISE
				.ParamF[m.loI] = EVALUATE('toPar'+ALLTRIM(STR(m.loI)))
		ENDCASE
	ENDFOR
Перед запуском убиваем все массивы-параметры
NewArr - функция которая создает новое свойство массив
ParamF ссылка на массив или сам параметр...

Через Ж... Но работает как часы...
Главное что б не нагружать функциями...
Сейчас пока работает АвтоСохранение/ и самописный ToolTip...

И ВСЕЖ вопрос так остался без ответа...
ПОЧЕМУ ДЕБАГЕР ПОКАЗЫВАЕТ АЛЕКС ГУД...
А ВЕРНУТЬ ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),1) В ПЕРЕМЕННУЮ НИЗЯ

с Ув. Игорь
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198075
еще раз
для непонятливых

я считаю, что проблема в реализ-и

и работает оно у Вас действительно через ....

макроподстановка зло - и нельзя завязывать реализацию
на передачу или вычесление чего-то по именам даже если это работает.

в Вашем случа, я уж не знаю, что за постановка и
почему массив должен прилетать в неизвестный параметр,
я пишу без макроподстновок,
принимаю и передаю что нужно и куда нужно,
поэтому нет проблем
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198095
Код: plaintext
1.
ALLTRIM(STR(

нет пробелов справа НИКОГДА !!!

и это я Вам указал на самую малость,
и точно так-же на пустом месте, скорее всего,
Вы издеваетесь над лисой.

вместо того, чтобы нормально реализовать
какие-то алгоритмы, Вы занимаетесь созданием
какого-то макро.... универс-го мех-ма, который все-одно
будет работать через ..., если Вы его реализуете в том виде,
в котором показали
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198171
странно - но работает
автор
= acopy("tu"+ltrim(str(lnParam)), toObject.MyArray)


так, что дукейс не нужен в моем примере

и в Вашем случае

достаточно проверки

Код: plaintext
1.
if TYPE('toPar'+LTRIM(STR(m.loI))",1)="A"
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198236
Код: plaintext
1.
2.
3.
local loArray
=ACOPY('toPar'+LTRIM(STR(m.loI)),loArray)
* и размер смотреть уже у loArray
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198247
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorProgrammerЛис - 9
И вот с какой фичей столкнулся....
Дебагер показывает:
EVALUATE('toPar'+ALLTRIM(STR(m.loI))) - массив
ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),1) - строк 1
ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),2) - колонок - 17
а на саму строку loArrayRow = ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),1)
Ругается что Function argument value, type, or count is invalid
Почему тогда в дебагере видно результат выполнения данных функций...

С Ув. Игорь...

Фича это. Причем именно дебагера. Ошибка должна была выскочить уже в отладчике.

Если посмотреть HELP по фунуции ALEN(), то первым параметром должно стоять имя массива. Не может там стоять выражение . А ведь Evaluate() - это именно выражение. Функция.

Необходимо подсунуть функции ALEN(), то, что она просит. Имя. Точнее, выражение имени.

Код: plaintext
1.
loArrayRow = ALEN(('toPar'+ALLTRIM(STR(m.loI))), 1 )

Чтобы было понятнее, напишу отдельно

Код: plaintext
1.
2.
lcArrayName = 'toPar'+ALLTRIM(STR(m.loI))
loArrayRow = ALEN((m.lcArrayName), 1 )

По сути, все то же самое, только удалить само слово EVALUATE, но оставить его скобки. Скобки - это и есть выражение имени. Особый вид макроподстановки, который как раз и предполагает возвращение имени чего-либо.
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198347
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
12345вышелзайчикпогулятьеще раз
для непонятливых

я считаю, что проблема в реализ-и
Тогда предложите свою версию...
Как запускать определенную функцию(не зная какую, когда, сколько и какие у нее парамтры)
Например раз в 10 мин...

У меня повешен таймер с массивом функций и их параметров(или указатель на массивы-параметры)...
Когда срабатывает таймер, он бежит по массивам и если времяПоследнегоВыполнения+ВремяЧерезСикокоВыполнить больше или равно ТекущемуВремени то выполняем данную строку массива...

12345вышелзайчикпогулятьнет пробелов справа НИКОГДА !!!
Есть некоторые привычки (например alltrim, а не разбивать где RTrim, где LTrim)
авторlocal loArray
=ACOPY('toPar'+LTRIM(STR(m.loI)),loArray)
* и размер смотреть уже у loArray
Интересный подход...

Вы хотите обсуждать данный код...
Или хотите помочь в данной ситуации

ВладимирМФича это. Причем именно дебагера. Ошибка должна была выскочить уже в отладчике.
Я так и подумал...
Вот только описания данных прибамбасов НЕТУ...
ВладимирМALEN((m.lcArrayName),1)
Спасибо я так и сделал...

Вот только остался амперсант
loArray = '.ParamArray1'
Но вот ACOPY('toPar'+ALLTRIM(STR(m.loI)),&loArray.) работает только через амперсант...
так как второй массив это свойство объекта и на
ACOPY('toPar'+ALLTRIM(STR(m.loI)),('.ParamArray1')) идет ругань
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198374
авторЕсть некоторые привычки (например alltrim, а не разбивать где RTrim, где LTrim)

ужОс

макроподстановка я так понимаю - это так-же привычка
и уже никак без нее

потерянный для общ-ва программер
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198388
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
12345вышелзайчикпогулятьужОс

макроподстановка я так понимаю - это так-же привычка
и уже никак без нее

потерянный для общ-ва программер

Я же вроде написал...
Код: plaintext
1.
2.
3.
4.
Вот только остался амперсант
loArray = '.ParamArray1'
Но вот ACOPY('toPar'+ALLTRIM(STR(m.loI)),&loArray.) работает только через амперсант...
так как второй массив это свойство объекта и на 
ACOPY('toPar'+ALLTRIM(STR(m.loI)),('.ParamArray1')) идет ругань
Если вы знаете как правильно скопировать массив зная его имя...
То ПЛЗ... поделитесь опытом

С Ув. Игорь.
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198410
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
local laddd[ 3 , 2 ], loObject

loObject = createobject("custom")
loObject.addproperty("MyArray[1]")

laddd =  1 
= ttt(@laddd,,,,loObject)
? laddd[ 3 , 2 ]

laddd =  2 
= ttt(,@laddd,,,loObject)
? laddd[ 3 , 2 ]

laddd =  3 
= ttt(,,@laddd,,loObject)
? laddd[ 3 , 2 ]

laddd =  4 
= ttt(,,,@laddd,loObject)
? laddd[ 3 , 2 ]



************
function ttt
************
lparameters tu1, tu2, tu3, tu4,  toObject
LOCAL laARray, lnParam, lnParams
lnParams = parameters()
for lnParam= 1  to lnParams 
	if  type("tu"+ltrim(str(lnParam)),  1 )="A"
		= acopy("tu"+ltrim(str(lnParam)), toObject.MyArray)
	endif
endfor

это работает?
но только почему массив должен прилетать в неизв-й параметр?
что это за блуждающий тип, повед-е которого не зависит от программиста??
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198452
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример не соответствует данной проблеме...
Тем более че надо писать кучу ненужного...

Есть Объект (без массивов-параметров)
Есть массив-свойство с указанием времени/процедуры/параметров(указатель на массив)
Есть входящие параметры(которые могут быть массивами)
Если в параметрах встречается массив...
Добавляем обЪекту параметр-массив с размерностью входящего параметра
Код: plaintext
1.
STORE .NewArr(ALEN('toPar'+ALLTRIM(STR(m.loI)), 1 ),ALEN('toPar'+ALLTRIM(STR(m.loI)), 2 ), 1 ) TO .ParamF[m.loI], m.loArray
Копируем массив
Код: plaintext
ACOPY('toPar'+ALLTRIM(STR(m.loI)),&loArray.)
Функция NewArr
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
PARAMETERS toRow, toCol, toDel && количество строк, количество столбцов, удалить свойство
m.toDel= IIF(TYPE("m.toDel")#"N", 0 ,m.toDel)
LOCAL loI
WITH This
	FOR m.loI= 1  TO  7 
		DO CASE
			CASE m.toDel= 1  AND !PEMSTATUS(This,'ParamArray'+ALLTRIM(STR(m.loI)), 5 )
				.AddProperty('ParamArray'+ALLTRIM(STR(m.loI))+'('+ALLTRIM(STR(m.toRow))+','+ALLTRIM(STR(m.toCol))+')')
				RETURN '.ParamArray'+ALLTRIM(STR(m.loI))
			CASE m.toDel= 2  AND PEMSTATUS(This,'ParamArray'+ALLTRIM(STR(m.loI)), 5 )
				REMOVEPROPERTY(This,'ParamArray'+ALLTRIM(STR(m.loI)))
		ENDCASE
	ENDFOR
ENDWITH

Может Вы продложете что-то лучше...
Или скажите как правильно ACOPY()
если ArraName1='toPar1'
ArraName2='.ParamArray' или ArraName2='This.ParamArray'
ACOPY((ArraName1),(ArraName2)) выдает ошибку
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198589
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
local laddd[ 3 , 2 ], loObject

loObject = createobject("custom")

laddd =  1 
= ttt(@laddd,,,,loObject)

laddd =  2 
= ttt(,@laddd,,,loObject)

laddd =  3 
= ttt(,,@laddd,,loObject)

laddd =  4 
= ttt(,,,@laddd,loObject)

? loObject.MyArray1[ 3 , 2 ]
? loObject.MyArray2[ 3 , 2 ]
? loObject.MyArray3[ 3 , 2 ]
? loObject.MyArray4[ 3 , 2 ]


************
function ttt
************
lparameters tu1, tu2, tu3, tu4,  toObject
LOCAL laARray, lnParam, lnParams, lcPropertyName
lnParams = parameters()
for lnParam= 1  to lnParams 
	if  type("tu"+ltrim(str(lnParam)),  1 )="A"
		lcPropertyName = "MyArray"+ltrim(str(lnParam))
		if !pemstatus(toObject, lcPropertyName,  5 )
			toObject.addproperty(lcPropertyName+"[1]")
		endif
		lcPropertyName = "toObject."+lcPropertyName
		lcCmd = "acopy(tu"+ltrim(str(lnParam))+","+ lcPropertyName+")"
		&lcCmd
	endif
endfor
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198774
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Особенно мне понравилось &lcCmd... :)
Так я и не увидел ACOPY без амперсанта...
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198787
а что Вам нравится,
я ведьсказал - это зло

и ноги растут от Вашей реализации

правильно передавать что нужно, ловить где нужно и присваивать кому нужно

я не ссылаюсь по именам, а передаю и ловлю куда нужно
и создаю что нужно и где нужно

у Вас иная реал-я - вот и думайте откуда ног растут
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35198952
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном случае, видимо, без макроподстановки не обойтись. Здесь проблема именно в том, что массив - это свойство объекта. Т.е. выражение имени возвращает не вполне имя, а некую ссылку. Нет имени как такового, только опосредовано через имя другого объекта.

Для "обычных" массивов выражение имени нормально работает.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dimension bb( 2 , 2 )
bb[ 1 ]= 1 
bb[ 2 ]= 2 
bb[ 3 ]= 3 
bb[ 4 ]= 4 

Dimension aa( 2 , 2 )
dd = "aa"
?ACopy(bb, (dd))

oo = CreateObject("Custom")
oo.AddProperty("aTest[2,2]")
dd = "oo.aTest"
?ACopy(bb, &dd)
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35199946
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМВ данном случае, видимо, без макроподстановки не обойтись. Здесь проблема именно в том, что массив - это свойство объекта. Т.е. выражение имени возвращает не вполне имя, а некую ссылку. Нет имени как такового, только опосредовано через имя другого объекта.
Спасибо...

Вы не знаете где можно почитать/преобрести что-либо где б были описаны тонкости фичи и баги Лисы-9ой...

С Ув. Игорь...
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35201729
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorProgrammerТогда предложите свою версию...
Как запускать определенную функцию(не зная какую, когда, сколько и какие у нее парамтры)
Например раз в 10 мин...

Оберни все функции в объекты производные от одного базового класса. Назовем например clsJob, пусть все лежит в joblib.vcx.
В производном классе от clsJob прописывать методы:
Set(lnInstance) для настройки параметров
InitInstance(lnInstance) установка значений начальных параметров в свойства объекта
Run() выполнение функции (все параметры в свойствах объекта)
где lnInstance - номер объекта чтобы можно было создать несколько наборов параметров.

При запуске задания:
Код: plaintext
1.
2.
3.
4.
5.
lpara tcClassName, tnInstance
loObj = NewObject(tcClassName, 'joblib')
loObj.InitInstance(tnInstance)
loObj.Run()
...
Я бы примерно так сделал. Макроподстановок никаких не надо.
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35201782
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TОберни все функции в объекты производные от одного базового класса. Назовем например clsJob, пусть все лежит в joblib.vcx.
В производном классе от clsJob прописывать методы:
Set(lnInstance) для настройки параметров
InitInstance(lnInstance) установка значений начальных параметров в свойства объекта
Run() выполнение функции (все параметры в свойствах объекта)
где lnInstance - номер объекта чтобы можно было создать несколько наборов параметров.

При запуске задания:
lpara tcClassName, tnInstance
loObj = NewObject(tcClassName, 'joblib')
loObj.InitInstance(tnInstance)
loObj.Run()
...
Я бы примерно так сделал. Макроподстановок никаких не надо.

Есть небольшое но...
1) Изначально этот класс создавался для навороченной подсказки...
Даже забито место для димонстрации работы комплекса...
Мол сиди и смотри(правда нету времени чеБ привести в порядок)...

2) Функции постоянно добавляются...
Да и аппетит как говорится приходит во время ЕДЫ...

3) Кроме меня ЭТ фигней НИкто заниматся НЕбудет...
Да и у меня на ЭТ фигню нет времени...

А тута просто пользователи нелетели со своими приблудами...
Мол хотим управлять ХОТ-чем либо...
Типа задания по расписанию в Виндах...(в пределах работающего комплекса)

Вот я и пытаюсь прикрутить к существующему классу...(кое-че прикрутил :) )
А то терзают меня смутные сомнения, что ЭТИ навороты в скором времени отпадут...
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35201819
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorProgrammer
2) Функции постоянно добавляются...
Ну и оформляй их сразу в объекты. Нет?

IgorProgrammer3) Кроме меня ЭТ фигней НИкто заниматся НЕбудет...
Да и у меня на ЭТ фигню нет времени...
Как говорится: "Лучше день потерять, зато потом за час долететь"

По себе знаю что полурешения из серии некогда, но надо чтобы было, в определенный момент создают очень много проблем. Когда надо добавить что-то что никак не вписывается, и тогда приходится переделать все ранее сделанное.

Решай сам что тебе лучше.
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35201872
IgorProgrammer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TНу и оформляй их сразу в объекты. Нет?
Проблема в том, что я не один варю эту кашу...
А переубедить всех что так лучше...
И заставлять завсевдатых ЛИСИЦ что-то делать НЕ-ПО-ПРИВЫЧКЕ...

Да у меня здоровья не хватит...
...
Рейтинг: 0 / 0
Фича ли ЭТО с Evaluate
    #35202914
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorProgrammerВы не знаете где можно почитать/преобрести что-либо где б были описаны тонкости фичи и баги Лисы-9ой...
Собранные в одну кучу, видимо, нигде.

Есть упоминание отдельных вещей разбросанные тут и там. Как собственно в HELP по FoxPro, так и в разных книгах и журналах. Например, в журнале FoxTalk года два назад начали вести рубрику о разных "хитростях" FoxPro.

Однако проблема в том, что, по большому счету, это и не нужно. Если ты чем-то не пользуешся в своей работе, то упоминание в книге или статье будет, конечно, интересно, но, быстро забудется.

Максимум, что можно было бы написать - это некие рекомендации самого общего плана, по оформлению кода. Некий Best Practices. Но это имело бы смысл только для новичков.

Если же код уже написан и работает, мало найдется желающих его переписывать "просто так". Только если в этом будет какая-то необходимость.
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Фича ли ЭТО с Evaluate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]