Author Topic: Массивы может косяк а может задумка автора  (Read 5984 times)

0 Members and 1 Guest are viewing this topic.

Gen345

  • Освоившийся
  • **
  • Posts: 27
    • View Profile
В массиве $arr_2 присуцтвуют строки из первого массива $arr_1 если индекс указать вручную больше чем размер $arr_2 число строк ограничено чем больше массив $arr_2  тем больше будет дополнительных строк из массива $arr_1
если $arr_1 меньше $arr_2 непроверял ничем не лечиться да и ваще подозреваю что Johnny сам так намутил  :)

Code: [Select]
TFREADARR("screens/масив.txt",$arr_1)
$fail=$arr_1[$index]
$index=0
$str=1
FOR($a=0,$a<9,1)
   $stroka=""
   $stroka=TFREAD($fail,$str)
   STRSEPARATE($stroka,"",$arr_2)
   inc($str,1)
END_CYC


print("Размер массива arr_2   ",ARRSIZE($arr_2))
print()
$i=0
WHILE($i<12)
   IF($i<ARRSIZE($arr_2))
      print($arr_2[$i])
   ELSE
      print("________")
     print($arr_2[$i]," строки первого массива")
   END_IF
   inc($i,1)
END_CYC

лог
Code: [Select]
16:53:56 Размер массива arr_2   9
16:53:56
16:53:56 index 0    arr_2
16:53:56 index 1    arr_2
16:53:56 index 2    arr_2
16:53:56 index 3    arr_2
16:53:56 index 4    arr_2
16:53:56 index 5    arr_2
16:53:56 index 6    arr_2
16:53:56 index 7    arr_2
16:53:56 index 8    arr_2
16:53:56 ________
16:53:56 index  9   arr_1 строки первого массива
16:53:56 ________
16:53:56 index  10  arr_1 строки первого массива
16:53:56 ________
16:53:56 index  11  arr_1  строки первого массива
« Last Edit: March 07, 2015, 06:16:40 PM by Gen345 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Раз пять перечитал, так ничего и не понял.
Что откуда куда. Какие нибудь запятые хоть, или точки на крайняк.


Gen345

  • Освоившийся
  • **
  • Posts: 27
    • View Profile
что непонятно посмотри что принтуеться во втором цикле ниже лог цикла принтуеться массив arr_2 размер массива 9 строк индекс распечатан условие если ($i<ARRSIZE($arr_2)) больше массива идет распечатка индекса массива arr_1 но на принте arr_2
размер массива arr_2 индекс 0-8 распечатывается 0-11 где 9-10-11 индекс массива arr_1 так понятно?)
задолбался не могу привыкнуть считать с нуля))
в массиве arr_2 последние 3 строки из масива arr_1
« Last Edit: March 07, 2015, 06:28:37 PM by Gen345 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
А что ты хочешь? Да в обычных языках ты бы сразу получил "index out range" за такой перебор.
Здесь ты получаешь мусор из памяти.
Пиши правильно и всё будет нормально.

Что ты хотел получить обращаясь по несуществующим индексам?

Непонятно - я писал про текст. Второй пост нп много прояснил.


Gen345

  • Освоившийся
  • **
  • Posts: 27
    • View Profile
Что ты хотел получить обращаясь по несуществующим индексам?
да согласен большинство вешается от моей писанины либо привыкайте либо не читайте  ;D
Индекс существует (строка) но в другом массиве непонятно почему он лезет куда не положено эта непонятка заставила меня перебирать часть кода на поиск ошибок которых не было должен был выдать ошибку но напечатал строку из другово массива непорядок  ;D