Что нового

[Массивы] Использование Eval в FOR

kristow13

Новичок
Сообщения
76
Репутация
0
Запутался и не пойму что не так.... :stars:
Код:
For $i=0 To 7 Step 1
	  Eval('res'&$i) = Eval('fr'&$i).Resources
	  Eval('res'&$i).LoadLanguageResourcesFromFile($sLanguage)
	  Eval('fr'&$i).LoadReportFromFile($FR3[$i])
   Next

Так при отладке выдает ошибку:
Код:
Eval('res'&$i) = Eval('fr'&$i).Resources
Eval('res'&$i) ^ ERROR
В итоге хочу получить чтобы у меня сгенерировались переменные res0,fr0,res1,fr1 и так далее...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
kristow13 [?]
при отладке выдает ошибку
А что ожидалось при попытке присвоить значение функции?
Код:
Assign('res'&$i, Eval('fr'&$i).Resources)
 
Автор
kristow13

kristow13

Новичок
Сообщения
76
Репутация
0
Спасибо! Да, такую функцию я проглядел...
С первой строкой все отлично, но вот дальше хотел тем же методом, и не получилось... Кидает ошибку.
Код:
Assign('res'&$i, Eval('fr'&$i).Resources) ; это строка работает
	  Assign('res'&$i.LoadLanguageResourcesFromFile($sLanguage)) ; эта нет
	  Assign('fr'&$i.LoadReportFromFile($FR3[$i])) ; эта нет

Подскажите как будет правильно написать вторую третью строку :-[
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код:
Assign('res' & $i, Eval('fr'& $i).Resources) ; это строка работает
Assign('res' & $i, Eval('fr'& $i).LoadLanguageResourcesFromFile($sLanguage))
Assign('res' & $i, Eval('fr'& $i).LoadReportFromFile($FR3[$i]))



Добавлено:
Сообщение автоматически объединено:

OffTopic:
Сдаётся мне что Вы бездумно копируете куски кода которые вам пишут.
Вы хотите уметь программировать?
Если да, то начинайте думать!!!
 
Автор
kristow13

kristow13

Новичок
Сообщения
76
Репутация
0
Garrett сказал(а):
Код:
Assign('res' & $i, Eval('fr'& $i).Resources) ; это строка работает
Assign('res' & $i, Eval('fr'& $i).LoadLanguageResourcesFromFile($sLanguage))
Assign('res' & $i, Eval('fr'& $i).LoadReportFromFile($FR3[$i]))
Вы написали не верно...
Из вашего кода поидее получится:
Код:
$res1 = $fr1.LoadLanguageResourcesFromFile($sLanguage)
$res1 = $fr1.LoadReportFromFile('123.ffr')


А должно получаться вот так:
Код:
$res1.LoadLanguageResourcesFromFile($sLanguage)
$fr1.LoadReportFromFile('123.ffr')


При отладке приведенного части кода от Garrett не выполняется...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
kristow13,
Предупреждение За нарушение общих правил (пункт В.2):
Старайтесь избегать “Over quoting” (преувеличенное цитирование) - цитируйте только необходимую часть сообщения, которая наилучшим образом подчеркнёт суть цитируемого.


С уважением, ваш Глобальный модератор.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
kristow13 [?]
А должно получаться вот так
Как, так?

Лично мне, проще сделать всё за вас, чем пытаться овладеть телепатией.
Если хотите получить грамотный ответ, учитесь задавать грамотно вопрос, и прилагайте логически завершённый код.

P.S. Кстати, ваша прошлая тема.


Добавлено:
Сообщение автоматически объединено:

Код:
Local $aRepName[3] = ['Report1.fr3', 'Report2.fr3', 'Report3.fr3']

For $i = 1 To 3
   Assign('Report'& $i, ObjCreate('FastReport.TfrxReport'))
   With Eval('Report' & $i)
	  .Resources.LoadLanguageResourcesFromFile('Russian.frc')
	  .LoadReportFromFile($aRepName[$i-1])
   EndWith
Next
 
Автор
kristow13

kristow13

Новичок
Сообщения
76
Репутация
0
Спасибо за вашу телепатию :-[
Я просто подумал что не столь важна используемая библиотека.
Протестил, все заработало как я хотел.

P.S. Про упомянутую вторую тему я там отписался тоже.
 
Верх