<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2241481</guid>
        <pubDate>Mon, 13 Apr 2009 07:32:25 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2241481</link>
        <description><![CDATA[Kugeod: Поменяю индексы и что получится? Если имеете ввиду поменять местами циклы то это не возможно ввиду условий:( Написал бы ктонить что НИКАК я б и голову не ломал]]></description>
        <author>Kugeod</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2240373</guid>
        <pubDate>Sat, 11 Apr 2009 05:20:06 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2240373</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=269521&view=findpost&p=2240314'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Kugeod &#064; <time class="tag-quote__quoted-time" datetime="2009-04-10T21:24:40+00:00">10.04.09, 21:24</time></span><div class='quote '>А меня то как раз интересует изменение первого измерения, так как мне оно не известно пока не закончится цикл</div></div><br>
Поменяйте местами индексы  :D]]></description>
        <author>Akina</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2240314</guid>
        <pubDate>Fri, 10 Apr 2009 21:24:40 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2240314</link>
        <description><![CDATA[Kugeod: Да вот ReDim Preserve мне не помог никак:( Потому как Akina посоветовал мне почитать книгу и я прочел что можно изменять только последнее измерение многомерного массива. А меня то как раз интересует изменение первого измерения, так как мне оно не известно пока не закончится цикл, в этом же цикле вы предлагаете копировать массив в массив. За циклом его не скопировать а в цикле не переопределить первое измерение массива :(:(]]></description>
        <author>Kugeod</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2240037</guid>
        <pubDate>Fri, 10 Apr 2009 14:00:04 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2240037</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=269521&view=findpost&p=2240003'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>GDK &#064; <time class="tag-quote__quoted-time" datetime="2009-04-10T13:12:45+00:00">10.04.09, 13:12</time></span><div class='quote '>Для многомерных массивов данные, хранящиеся в &quot;2-м, 3-м, ...&quot; измерениях &quot;обнуляются&quot;.</div></div><br>
Что??? никогда не было такого&#33;]]></description>
        <author>Akina</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2240003</guid>
        <pubDate>Fri, 10 Apr 2009 13:12:45 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2240003</link>
        <description><![CDATA[GDK: Осторожнее с ReDim Preserve&#33; Используйте только для одномерных массивов&#33; Для многомерных массивов данные, хранящиеся в &quot;2-м, 3-м, ...&quot;  измерениях &quot;обнуляются&quot;.   Твоё безобразие - не безобразие. <br>Если не требуется высокое быстродействие могу посоветовать вместо массива использовать коллекции или ещё лучше объекты vbscript.Dictionary (вроде бы правильно написал). Но коллекциями можешь пользоваться сразу,  а вот для чтобы был &quot;доступ&quot; к диктионари надо подключить библиотеку microsoft scripting runtime c помощью Tools-references....   Короче с ними работать намного удобнее. Особенно с dictionary. Но при его использовании по сравнению с коллекциями могут быть проблемы, т.к. на некоторых компах системные администраторы запрещают подключать некоторые библиотеки.]]></description>
        <author>GDK</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239631</guid>
        <pubDate>Fri, 10 Apr 2009 04:35:57 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239631</link>
        <description><![CDATA[Akina: ReDim Preserve<br><br>И вообще неплохо бы побольше читать.]]></description>
        <author>Akina</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239585</guid>
        <pubDate>Thu, 09 Apr 2009 21:05:46 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239585</link>
        <description><![CDATA[Kugeod: В принципе я с вашей помощью почти разобрался. Akina вы предлагаете <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">if i&#62;50 then newM(i-50,j)...</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
А если у меня сложнее условие и я хочу на выходе получить массив только с теми значениями которые мне нужны, это вообще возможно? Без нулей? Как автоматически уменьшит размер выходного массива чтоб он был размером только под те значения, которые отфильтруются?<br>
Я вот тут накатал какоето безобразие, не знаю на правильном ли пути. Подскажите<br>
к примеру <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Sub Massiv()</div><div class="code_line">Dim g As Integer</div><div class="code_line">Randomize Timer</div><div class="code_line">g = 1</div><div class="code_line">For i = 1 To 100</div><div class="code_line">&nbsp;&nbsp; &nbsp;For j = 1 To 10</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;oldM(i, j) = (Rnd + 0.6) * 2</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If (i &#62; 50 And i &#60; 60) Or (i &#62; 80 And i &#60; 90) Then newM(g, j) = oldM(i, j)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Next j</div><div class="code_line">&nbsp;&nbsp; &nbsp;If (i &#62; 50 And i &#60; 60) Or (i &#62; 80 And i &#60; 90) Then g = g + 1</div><div class="code_line">Next i</div><div class="code_line">Worksheets(1).Range(Cells(1, 1), Cells(g, 10)).Value = newM</div><div class="code_line">End Sub</div></ol></div></div></div></div><br>
ввел переменную g  чтобы вывести только те значения которые меня интересуют. Но все равно такое ощущение, что можно по другому, слишком нагромоздил.. Тем более что выходной массив при этом не уменьшается, а значит смысл теряется:(]]></description>
        <author>Kugeod</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239387</guid>
        <pubDate>Thu, 09 Apr 2009 13:18:06 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239387</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=269521&view=findpost&p=2239365'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Kugeod &#064; <time class="tag-quote__quoted-time" datetime="2009-04-09T12:43:31+00:00">09.04.09, 12:43</time></span><div class='quote '>Если первый комментарий в этом коде верный то почему итог выглядит как массив (1,1) (100,10) у которого значения до 50 заполнены нулями, а потом только выводится то что я хочу получить. </div></div><br>
При определении переменной типа Integer (неважно, одиночка или массив) ей присваивается значение &quot;ноль&quot;. Потом ты часть массива перезаписываешь - меняешь нули на значение, - а начало так и остаётся всё в нулях.<br>
<br>
Правильнее - так:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Dim oldM(1 to 100, 1 to 10) As Integer</div><div class="code_line">Dim newM(1 to 50, 1 to 10) As Integer</div><div class="code_line">&nbsp;</div><div class="code_line">Sub Massiv()</div><div class="code_line">Dim i As Integer, j As Integer</div><div class="code_line">Randomize Timer</div><div class="code_line">&nbsp;</div><div class="code_line">For i = 1 To 100</div><div class="code_line">&nbsp;&nbsp; &nbsp;For j = 1 To 10</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;oldM(i, j) = (Rnd + 0.6) * 2</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If i &#62; 50 Then newM(i-50, j) = oldM(i, j)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Next j</div><div class="code_line">Next i</div><div class="code_line">&nbsp;</div><div class="code_line">Worksheets(1).Range(Cells(1, 1), Cells(50, 10)).Value = newM</div><div class="code_line">End Sub</div></ol></div></div></div></div>]]></description>
        <author>Akina</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239365</guid>
        <pubDate>Thu, 09 Apr 2009 12:43:31 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239365</link>
        <description><![CDATA[Kugeod: Спасибо за ответы, почти разобрался с копированием. Вопрос возник.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Sub Massiv()</div><div class="code_line">Dim g As Integer</div><div class="code_line">Randomize</div><div class="code_line">&nbsp;</div><div class="code_line">For i = 1 To 100</div><div class="code_line">&nbsp;&nbsp; &nbsp;For j = 1 To 10</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;oldM(i, j) = Fix((Rnd + 0.6) * 2)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If i &#62; 50 Then newM(i, j) = oldM(i, j) &#39;это выражение присваивает новому массиву значения только с (50,1) до (100,10)??</div><div class="code_line">&nbsp;&nbsp; &nbsp;Next j</div><div class="code_line">Next i</div><div class="code_line">Worksheets(1).Range(Cells(1, 1), Cells(100, 10)).Value = newM &#39; это я гдето подсмотрел что так можно:)</div><div class="code_line">End Sub</div></ol></div></div></div></div><br>
<br>
Если первый комментарий в этом коде верный то почему итог выглядит как массив (1,1) (100,10) у которого значения до 50 заполнены нулями, а потом только выводится то что я хочу получить. Как сделать чтобы новый массив был только из 50 элементов по условию? и соответственно выводил 50 на 10.<br>
Заранее простите за тупость:(]]></description>
        <author>Kugeod</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239199</guid>
        <pubDate>Thu, 09 Apr 2009 09:24:42 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239199</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=269521&view=findpost&p=2239186'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>GDK &#064; <time class="tag-quote__quoted-time" datetime="2009-04-09T08:42:06+00:00">09.04.09, 08:42</time></span><div class='quote '>И вот ещё, обрати внимание. Объявляешь массив 0-1000, 0-100. Т.е. такой массив будет содержать 1001 &quot;строку&quot; и 101 &quot;колонку&quot;. А цикл начинаешь с номера 1. Т.е. не будет никаких действий с 0-й строкой и нулевой колонкой. </div></div><br>
Это при условии что выше нет незахваченного при копировании Option Base 1.  :D]]></description>
        <author>Akina</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239186</guid>
        <pubDate>Thu, 09 Apr 2009 08:42:06 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239186</link>
        <description><![CDATA[GDK: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Dim newM(1000, 100) As Integer</div><div class="code_line">Dim oldM(1000, 100) As Integer</div><div class="code_line">Dim i As Integer: Dim j As Integer</div><div class="code_line">&nbsp;</div><div class="code_line">Sub Massiv()</div><div class="code_line">Randomize</div><div class="code_line">For i = 1 To 1000</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;For j = 1 To 100</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;oldM(i, j) = Fix(Rnd + 0.5)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If i &#62; 500 Then newM(i, j) = oldM(i, j)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Next j</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;If i &#62; 500 Then newM(i, j) = oldM(i, j)</div><div class="code_line">Next i</div><div class="code_line">End Sub</div></ol></div></div></div></div><br>
<br>
Это надо было? <br>
<br>
И вот ещё, обрати внимание. Объявляешь массив 0-1000, 0-100. Т.е. такой массив будет содержать 1001 &quot;строку&quot; и 101 &quot;колонку&quot;.  А цикл начинаешь с номера 1.  Т.е. не будет никаких действий с 0-й строкой и нулевой колонкой. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2009-04-09T08:50:48+00:00">09.04.09, 08:50</time></span></span><br>
И зря ты для экспериментов пользуешься такими большими массивами. Проще было бы (0-10, 0-4 ) например. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2009-04-09T08:53:40+00:00">09.04.09, 08:53</time></span></span><br>
И лучше используй Long вместо Integer. Хоть памяти занимает больше, зато гимора в виде сообщений с ошибками намного меньше будет.]]></description>
        <author>GDK</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239139</guid>
        <pubDate>Thu, 09 Apr 2009 07:31:29 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239139</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=269521&view=findpost&p=2239113'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Kugeod &#064; <time class="tag-quote__quoted-time" datetime="2009-04-09T06:46:33+00:00">09.04.09, 06:46</time></span><div class='quote '>Почему не работает?</div></div><br>
Потому что с логикой косяк.<br>
Выполняется цикл по j. От 1 до 100. Завершяется он, когда на очередном витке j становится больше 100, т.е. 101. Но следующей строкой ты делаешь newM(i, j) = oldM(i, j) - при j=101 иной реакции программы ожидать не следовало.]]></description>
        <author>Akina</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239113</guid>
        <pubDate>Thu, 09 Apr 2009 06:46:33 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239113</link>
        <description><![CDATA[Kugeod: Я окончательно запутался :(<br><br>Dim newM(1000,100) As Integer<br>Dim oldM(1000, 100) As Integer<br>Dim i As Integer: Dim j As Integer<br> <br>Sub Massiv()<br>  Randomize<br>  For i = 1 To 1000<br>    For j = 1 To 100<br>      oldM(i, j) = Fix(Rnd + 0.5)<br>    Next j<br>    If i &gt; 500 Then newM(i, j) = oldM(i, j)<br>  Next i<br>End Sub<br><br>Выводит ошибку subscript out of range Почему не работает? :(]]></description>
        <author>Kugeod</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239022</guid>
        <pubDate>Wed, 08 Apr 2009 22:42:11 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239022</link>
        <description><![CDATA[MIF: Мож, стоит попробовать загрузить из старого массива в новый, а не наоборот: new(i,j)=old(i,j)]]></description>
        <author>MIF</author>
        <category>VB for Application</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239000</guid>
        <pubDate>Wed, 08 Apr 2009 21:05:29 +0000</pubDate>
        <title>копирование массива в массив</title>
        <link>https://forum.sources.ru/index.php?showtopic=269521&amp;view=findpost&amp;p=2239000</link>
        <description><![CDATA[Kugeod: Здравствуйте. Помогите начинающему советом:)<br>Неделю назад открыл для себя что такое макрос, применительно к Екселю. Сегодня книжку купил, но все равное не разберусь никак...<br>Смысл в том чтоб выгрузить  двумерный массив чисел-integer к примеру 1000 на 100, а далее по определенным условиям перегрузить, соответственно уже кусок этого массива в другой массив. Понял как массив создать, как его отфильтровать, а вот выгрузить полученные значения в новый массив не получается. Посоветуйте пожалуйста что-нибудь, желательно куском кода:) Спасибо заранее<br>з.ы. два цикла j=1 to 100 внутри i=1 to 1000;  отбор значений идет после цикла j и сравнивать хотел там же, по просто думал будет работать чтото типа old(i,j)=new(i,j) а почемуто нет:(]]></description>
        <author>Kugeod</author>
        <category>VB for Application</category>
      </item>
	
      </channel>
      </rss>
	