<?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=96612&amp;view=findpost&amp;p=729798</guid>
        <pubDate>Thu, 26 May 2005 09:58:23 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729798</link>
        <description><![CDATA[Romtek: Я же написал, печатает 0 (ноль) без галки в обеих программах. Проверял 5 раз: то есть <em class='tag-i'>никаких</em> отклонений не было найдено.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=729789'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>volvo877 &#064; <time class="tag-quote__quoted-time" datetime="2005-05-26T09:50:04+00:00">26.05.05, 09:50</time></span><div class='quote '>А сколько по-твоему НЕсовпадений должно быть?</div></div>Наверно зависит от того, насколько переполнен стек...не хочу гадать. <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="2005-05-26T14:19:19+04:00">26.05.05, 10:19</time></span></span><br>
Я считаю, что проверки компилятора нужны только на этапе отладки программы, а в релизе программист должен учесть все варианты.]]></description>
        <author>Romtek</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729789</guid>
        <pubDate>Thu, 26 May 2005 09:50:04 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729789</link>
        <description><![CDATA[volvo877: Я не о том, что есть или нет проблемы :) Сколько она тебе печатает? У меня без директивы {&#036;M} (и без галочки, естественно) печатает число 24, то есть 24 (&#33;&#33;&#33;) несовпадения 1-го элемента с последующими, а с директивой {&#036;M} несовпадений нет...<br><br>А сколько по-твоему НЕсовпадений должно быть?]]></description>
        <author>volvo877</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729772</guid>
        <pubDate>Thu, 26 May 2005 09:41:42 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729772</link>
        <description><![CDATA[Romtek: Без галочки:<br>0 - твоя (проблем нет)<br>0 - моя (проблем нет)<br><br>С галочкой:<br>0 - твоя (проблем нет)<br>Stack overflow error (понятное дело&#33; Вопрос: &quot;на что это может повлиять?&quot;)]]></description>
        <author>Romtek</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729665</guid>
        <pubDate>Thu, 26 May 2005 08:21:58 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729665</link>
        <description><![CDATA[volvo877: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=729637'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Romtek &#064; <time class="tag-quote__quoted-time" datetime="2005-05-26T08:03:01+00:00">26.05.05, 08:03</time></span><div class='quote '>Buffer Overflow? :D</div></div><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">{$m 60000, 0, 0}</div><div class="code_line">procedure test;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;a, b: array[1..100] of string;</div><div class="code_line">&nbsp;&nbsp;s: string;</div><div class="code_line">&nbsp;&nbsp;i, count: byte;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;s := &#39;&#39;;</div><div class="code_line">&nbsp;&nbsp;for i := 1 to 255 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;s := s + chr(i);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for i := 1 to 100 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;a[i] := s;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for i := 1 to 100 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;if a[1] &#60;&#62; a[i] then inc(count);</div><div class="code_line">&nbsp;&nbsp;writeln(count);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;a := b;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;test;</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><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">procedure test;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;a, b: array[1..100] of string;</div><div class="code_line">&nbsp;&nbsp;s: string;</div><div class="code_line">&nbsp;&nbsp;i, count: byte;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;s := &#39;&#39;;</div><div class="code_line">&nbsp;&nbsp;for i := 1 to 255 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;s := s + chr(i);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for i := 1 to 100 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;a[i] := s;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for i := 1 to 100 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;if a[1] &#60;&#62; a[i] then inc(count);</div><div class="code_line">&nbsp;&nbsp;writeln(count);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;a := b;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;test;</div><div class="code_line">end.</div></ol></div></div></div></div><br>
И посмотри на результаты  :blink: Чувствуешь разницу?]]></description>
        <author>volvo877</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729637</guid>
        <pubDate>Thu, 26 May 2005 08:03:01 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729637</link>
        <description><![CDATA[Romtek: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=729625'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>volvo877 &#064; <time class="tag-quote__quoted-time" datetime="2005-05-26T07:54:40+00:00">26.05.05, 07:54</time></span><div class='quote '>&quot;Options -&gt; Compiler -&gt; Stack Checking&quot; включен?</div></div>...выключен.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=729625'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>volvo877 &#064; <time class="tag-quote__quoted-time" datetime="2005-05-26T07:54:40+00:00">26.05.05, 07:54</time></span><div class='quote '>ам понимаешь, чем это может кончиться</div></div>Buffer Overflow?  :D]]></description>
        <author>Romtek</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729625</guid>
        <pubDate>Thu, 26 May 2005 07:54:40 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729625</link>
        <description><![CDATA[volvo877: &quot;Options -&gt; Compiler -&gt; Stack Checking&quot; включен? При выключенном и у меня работает, но ... Сам понимаешь, чем это может кончиться  ;)]]></description>
        <author>volvo877</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729617</guid>
        <pubDate>Thu, 26 May 2005 07:49:09 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729617</link>
        <description><![CDATA[Romtek: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=729481'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>volvo877 &#064; <time class="tag-quote__quoted-time" datetime="2005-05-26T06:13:41+00:00">26.05.05, 06:13</time></span><div class='quote '>Ты хочешь сказать, что вот это:<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">procedure test;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;a, b: array[1..100] of string;</div><div class="code_line">&nbsp;&nbsp;s: string;</div><div class="code_line">&nbsp;&nbsp;i: byte;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;s := &#39;&#39;;</div><div class="code_line">&nbsp;&nbsp;for i := 1 to 255 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;s := s + chr(i);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for i := 1 to 100 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;a[i] := s;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;a := b;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;test;</div><div class="code_line">end.</div></ol></div></div></div></div><br>
у тебя компилируется и отрабатывает без ошибок? :wacko: В Турбо-Паскале?</div></div> :yes: <br>
В настройках ничего не менял, стоит 16384 :unsure:]]></description>
        <author>Romtek</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729481</guid>
        <pubDate>Thu, 26 May 2005 06:13:41 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729481</link>
        <description><![CDATA[volvo877: Ты хочешь сказать, что вот это:<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">procedure test;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;a, b: array[1..100] of string;</div><div class="code_line">&nbsp;&nbsp;s: string;</div><div class="code_line">&nbsp;&nbsp;i: byte;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;s := &#39;&#39;;</div><div class="code_line">&nbsp;&nbsp;for i := 1 to 255 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;s := s + chr(i);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for i := 1 to 100 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;a[i] := s;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;a := b;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;test;</div><div class="code_line">end.</div></ol></div></div></div></div><br>
у тебя компилируется <strong class='tag-b'>и отрабатывает</strong> без ошибок? :wacko: В Турбо-Паскале? У меня при входе в процедуру - &quot;Stack Overflow&quot;. Может в FPC это и сработает, но в TP - нет... Кстати, возможно дело в этом: зайди в &quot;Options -&gt; Memory Sizes&quot; и посмотри установленный по умолчанию размер стека. Может ты его переустанавливал. У меня он равен 16384...]]></description>
        <author>volvo877</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729340</guid>
        <pubDate>Wed, 25 May 2005 22:49:23 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729340</link>
        <description><![CDATA[Romtek: Я пробовал также и с локальными переменными в процедуре, и тоже не было проблем (только если не больше двух переменных).<br>
В программе <strong class='tag-b'>Ash</strong> только 2 переменные.]]></description>
        <author>Romtek</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729215</guid>
        <pubDate>Wed, 25 May 2005 06:59:35 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729215</link>
        <description><![CDATA[volvo877: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=729195'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Romtek &#064; <time class="tag-quote__quoted-time" datetime="2005-05-25T06:49:09+00:00">25.05.05, 06:49</time></span><div class='quote '>Почему тогда здесь такой ошибки не возникает?</div></div><br>
здесь <strong class='tag-b'>a</strong> и <strong class='tag-b'>b</strong> - глобальные переменные, следовательно размещаются они в сегменте данных, а не в стеке... А размер DS = 64К. Но попробуй сделать так:<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">var</div><div class="code_line">&nbsp;&nbsp; a, b, c: array[1..100] of string;</div><div class="code_line">...</div></ol></div></div></div></div><br>
Что будет? Сегмент данных переполняется и ... &quot;Too many variables&quot;  :whistle: В случае же локальных переменных - переполняется стек. Кстати, попробуй в исходной программе добавить {&#036;M 65520, 0, 0} и переполнения уже не будет.]]></description>
        <author>volvo877</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729195</guid>
        <pubDate>Wed, 25 May 2005 06:49:09 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=729195</link>
        <description><![CDATA[Romtek: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728878'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>#MadCat# &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T20:01:01+00:00">24.05.05, 20:01</time></span><div class='quote '>2*100*255=51000 байт, а 51000/1024=49,8kb... &lt; 50kb</div></div><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728892'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>volvo877 &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T20:28:19+00:00">24.05.05, 20:28</time></span><div class='quote '>Смысл от этого не изменился. Это все равно больше значения по умолчанию.</div></div>А по-моему ошибка не из-за этого.<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">var</div><div class="code_line">&nbsp;&nbsp; a, b: array[1..100] of string;</div><div class="code_line">&nbsp;&nbsp; s: string;</div><div class="code_line">&nbsp;&nbsp; i: byte;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; s := &#39;&#39;;</div><div class="code_line">&nbsp;&nbsp; &nbsp; for i := 1 to 255 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; s := s + chr(i);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; for i := 1 to 100 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; a[i] := s;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; a := b;</div><div class="code_line">end.</div></ol></div></div></div></div>Почему тогда здесь такой ошибки не возникает?]]></description>
        <author>Romtek</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728892</guid>
        <pubDate>Tue, 24 May 2005 20:28:19 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728892</link>
        <description><![CDATA[volvo877: Смысл от этого не изменился. Это все равно больше значения по умолчанию.]]></description>
        <author>volvo877</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728878</guid>
        <pubDate>Tue, 24 May 2005 20:01:01 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728878</link>
        <description><![CDATA[#MadCat#: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728256'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>volvo877 &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T10:54:38+00:00">24.05.05, 10:54</time></span><div class='quote '><br>
<strong class='tag-b'>#MadCat#</strong>, массивы<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">a, b:array[1..100] of string;</div></ol></div></div></div></div><br>
занимают в стеке 2 * 100 * 255 байт... Это больше 50Кб.</div></div><br>
2*100*255=51000 байт, а 51000/1024=49,8kb... &lt; 50kb]]></description>
        <author>#MadCat#</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728446</guid>
        <pubDate>Tue, 24 May 2005 12:40:20 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728446</link>
        <description><![CDATA[#MadCat#: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728379'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>volvo877 &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T12:13:37+00:00">24.05.05, 12:13</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728363'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>#MadCat# &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T12:03:15+00:00">24.05.05, 12:03</time></span><div class='quote '>Можно просто, как String и переполнений не будет?</div></div><br>
 :no: Не меняй на String... Опять получишь &quot;Stack Overflow&quot;, у тебя же опять размер локальных переменных увеличится...<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">Procedure Sort (Var bookfile:tipfile);</div><div class="code_line">Var</div><div class="code_line">&nbsp;&nbsp;tmps: RecBook;</div><div class="code_line">&nbsp;&nbsp;arr: array[1..100] Of RecBook;</div><div class="code_line">Begin</div><div class="code_line">&nbsp;&nbsp;...</div><div class="code_line">&nbsp;&nbsp;Count := 0;</div><div class="code_line">&nbsp;&nbsp;While not Eof(bookfile) Do Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Inc(count);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Read(bookFile, arr[count]);</div><div class="code_line">&nbsp;&nbsp;End;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for i:=1 to pred(count) do</div><div class="code_line">&nbsp;&nbsp; &nbsp;for j:=i+1 to count do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if arr[i].vardas &#62; arr[j].vardas then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;tmps := arr[i]; arr[i] := arr[j]; arr[j] := tmps;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;reset(bookfile);</div><div class="code_line">&nbsp;&nbsp;For i:=1 To count do</div><div class="code_line">&nbsp;&nbsp; &nbsp;write(bookfile, arr[i]);</div><div class="code_line">&nbsp;&nbsp;...</div></ol></div></div></div></div></div></div><br>
А понятно всё. Тоже вариант неплохой.<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>
Ты сначала закрываешь файл, потом снова открываешь. Зачем?<br>
Можно просто установить указатель файла на нулевую запись (начало) с помошью Seek (bookfile, 0);</div></div><br>
Точно.Попробую.]]></description>
        <author>#MadCat#</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728406</guid>
        <pubDate>Tue, 24 May 2005 12:23:23 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728406</link>
        <description><![CDATA[Romtek: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>#MadCat#</span><div class='quote '><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">&nbsp;&nbsp; close(bookfile);</div><div class="code_line">&nbsp;&nbsp; reset(bookfile);</div><div class="code_line">&nbsp;&nbsp; For i:=0 To filesize(bookfile)-1 Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; With work Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vardas := a[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;phone := b[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write(bookfile,work);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; End;</div><div class="code_line">&nbsp;&nbsp; close(bookfile);</div></ol></div></div></div></div></div></div>Ты сначала закрываешь файл, потом снова открываешь. Зачем?<br>
Можно просто установить указатель файла на нулевую запись (начало) с помошью<strong class='tag-b'> Seek (bookfile, 0);</strong><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">&nbsp;&nbsp; close(bookfile);</div><div class="code_line">&nbsp;&nbsp; reset(bookfile);</div></ol></div></div></div></div>можно удалить. <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="2005-05-24T12:27:46+00:00">24.05.05, 12:27</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728363'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>#MadCat# &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T12:03:15+00:00">24.05.05, 12:03</time></span><div class='quote '>А кто мне мешает переменную Work использовать в процедуре? Ну и что, что она глобальная, она как вспомогательная идет и в разных процедурах принимает разные значения типа списка. </div></div>Чтобы по ошибке не подумать, что она имеет то же значение, что и в глобальной переменной.<br>
<br>
Кстати, значения полей записи не нужно менять, т.к. ТП7 допускает присвоение записи значения другой записи, т.е.<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">temp := work1;</div><div class="code_line">work1 := work2;</div><div class="code_line">work2 := temp;</div></ol></div></div></div></div>]]></description>
        <author>Romtek</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728379</guid>
        <pubDate>Tue, 24 May 2005 12:13:37 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728379</link>
        <description><![CDATA[volvo877: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728363'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>#MadCat# &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T12:03:15+00:00">24.05.05, 12:03</time></span><div class='quote '>Можно просто, как String и переполнений не будет?</div></div><br>
 :no: Не меняй на String... Опять получишь &quot;Stack Overflow&quot;, у тебя же опять размер локальных переменных увеличится...<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">Procedure Sort (Var bookfile:tipfile);</div><div class="code_line">Var</div><div class="code_line">&nbsp;&nbsp;tmps: RecBook;</div><div class="code_line">&nbsp;&nbsp;arr: array[1..100] Of RecBook;</div><div class="code_line">Begin</div><div class="code_line">&nbsp;&nbsp;...</div><div class="code_line">&nbsp;&nbsp;Count := 0;</div><div class="code_line">&nbsp;&nbsp;While not Eof(bookfile) Do Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;Inc(count);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Read(bookFile, arr[count]);</div><div class="code_line">&nbsp;&nbsp;End;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;for i:=1 to pred(count) do</div><div class="code_line">&nbsp;&nbsp; &nbsp;for j:=i+1 to count do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if arr[i].vardas &#62; arr[j].vardas then begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;tmps := arr[i]; arr[i] := arr[j]; arr[j] := tmps;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;reset(bookfile);</div><div class="code_line">&nbsp;&nbsp;For i:=1 To count do</div><div class="code_line">&nbsp;&nbsp; &nbsp;write(bookfile, arr[i]);</div><div class="code_line">&nbsp;&nbsp;...</div></ol></div></div></div></div>]]></description>
        <author>volvo877</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728363</guid>
        <pubDate>Tue, 24 May 2005 12:03:15 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728363</link>
        <description><![CDATA[#MadCat#: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728309'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Romtek &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T11:26:55+00:00">24.05.05, 11:26</time></span><div class='quote '>Файл не компилируется - неполная версия.<br>
Что значит &quot;белибрда&quot; ? <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="2005-05-24T11:29:22+00:00">24.05.05, 11:29</time></span></span><br>
Почему work описана как глобальная переменная, а ты вводишь её ещё как локальную в Sort ?</div></div><br>
Белиберда - это я имел ввиду, что там пишет какие-то неясные символы.<br>
<br>
А кто мне мешает переменную Work использовать в процедуре? Ну и что, что она глобальная, она как вспомогательная идет и в разных процедурах принимает разные значения типа списка. <br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>
Если уж на то пошло, то я бы делал немного иначе (использовал бы счетчик, и при сортировке не привязывался к размеру файла, не нужно это никому...) :</div></div><br>
Да этот способ куда лучше, теперь нормально, т.е. теперь я могу не задавать в масиве String[20]? Можно просто, как String и переполнений не будет? <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="2005-05-24T12:06:02+00:00">24.05.05, 12:06</time></span></span><br>
А, нет ругается все все-таки  надо задавать ограничение.]]></description>
        <author>#MadCat#</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728329</guid>
        <pubDate>Tue, 24 May 2005 11:37:57 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728329</link>
        <description><![CDATA[volvo877: <strong class='tag-b'>#MadCat#</strong>,<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">Procedure Sort (var bookfile:tipfile);</div><div class="code_line">var</div><div class="code_line">...</div><div class="code_line">&nbsp;&nbsp;a,b:array[1..100] of string[20];</div><div class="code_line">begin</div><div class="code_line">...</div><div class="code_line">&nbsp;&nbsp;for i:=0 to filesize(bookfile)-1 do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;read(bookfile,work);</div><div class="code_line">&nbsp;&nbsp; &nbsp;a[i]:=work.vardas; { &#60;--- Вот тут проблема }</div><div class="code_line">&nbsp;&nbsp; &nbsp;b[i]:=work.phone;</div><div class="code_line">&nbsp;&nbsp;end;</div></ol></div></div></div></div><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">var count: integer;</div><div class="code_line">...</div><div class="code_line">count := 0;</div><div class="code_line">while not eof(bookfile) do begin</div><div class="code_line">&nbsp;&nbsp;read(bookfile,work); inc(count);</div><div class="code_line">&nbsp;&nbsp;a[count]:=work.vardas;</div><div class="code_line">&nbsp;&nbsp;b[count]:=work.phone;</div><div class="code_line">end;</div><div class="code_line">for i:=1 to pred(count) do</div><div class="code_line">&nbsp;&nbsp;for j:=i+1 to count do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;...</div><div class="code_line">&nbsp;&nbsp;end;</div></ol></div></div></div></div>]]></description>
        <author>volvo877</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728309</guid>
        <pubDate>Tue, 24 May 2005 11:26:55 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728309</link>
        <description><![CDATA[Romtek: Файл не компилируется - неполная версия.<br>
Что значит &quot;белибрда&quot; ? <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="2005-05-24T11:29:22+00:00">24.05.05, 11:29</time></span></span><br>
Почему work описана как глобальная переменная, а ты вводишь её ещё как локальную в Sort ?]]></description>
        <author>Romtek</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728288</guid>
        <pubDate>Tue, 24 May 2005 11:11:29 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728288</link>
        <description><![CDATA[#MadCat#: <strong class='tag-b'>volvo877</strong> тут что-то с выводом теперь нето.<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">Program Book;</div><div class="code_line">uses crt;</div><div class="code_line">&nbsp;</div><div class="code_line">Type</div><div class="code_line">&nbsp;&nbsp; &nbsp;RecBook = Record</div><div class="code_line">&nbsp;&nbsp; &nbsp; vardas: string[20];</div><div class="code_line">&nbsp;&nbsp; &nbsp; phone: string[10];</div><div class="code_line">&nbsp;&nbsp; &nbsp;End;</div><div class="code_line">&nbsp;&nbsp; &nbsp;tipfile = file Of RecBook;</div><div class="code_line">&nbsp;</div><div class="code_line">Var</div><div class="code_line">&nbsp;&nbsp;bookfile: tipfile;</div><div class="code_line">&nbsp;&nbsp;work: RecBook;</div><div class="code_line">&nbsp;&nbsp;vid: byte;</div><div class="code_line">&nbsp;&nbsp;End_Menu: boolean;</div><div class="code_line">&nbsp;&nbsp;name: string[12];</div><div class="code_line">&nbsp;</div><div class="code_line">Procedure Name_File;</div><div class="code_line">&nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&#39;Введите имя файла данных телефонного справочника &#62; &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;readln(name);</div><div class="code_line">&nbsp;End;</div><div class="code_line">&nbsp;</div><div class="code_line">Procedure Sort (Var bookfile:tipfile);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;Var </div><div class="code_line">&nbsp;&nbsp; i,j: integer;</div><div class="code_line">&nbsp;&nbsp; tmps: string[20];</div><div class="code_line">&nbsp;&nbsp; a,b: array[1..100] Of string[20];</div><div class="code_line">&nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; Name_File;</div><div class="code_line">&nbsp;&nbsp; assign(bookfile, name);</div><div class="code_line">&nbsp;&nbsp; reset(bookfile);</div><div class="code_line">&nbsp;&nbsp; For i:=0 To filesize(bookfile)-1 Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; read(bookfile,work);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; a[i] := work.vardas;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; b[i] := work.phone;</div><div class="code_line">&nbsp;&nbsp; &nbsp; End;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;For i:=0 To filesize(bookfile)-2 Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;For j:=i+1 To filesize(bookfile)-1 Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If a[i] &#62; a[j] Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tmps := a[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;a[i] := a[j];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;a[j] := tmps;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tmps := b[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;b[i] := b[j];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;b[j] := tmps;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End;</div><div class="code_line">&nbsp;&nbsp; close(bookfile);</div><div class="code_line">&nbsp;&nbsp; reset(bookfile);</div><div class="code_line">&nbsp;&nbsp; For i:=0 To filesize(bookfile)-1 Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; With work Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vardas := a[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;phone := b[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write(bookfile,work);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; End;</div><div class="code_line">&nbsp;&nbsp; close(bookfile);</div><div class="code_line">End;</div><div class="code_line">&nbsp;</div><div class="code_line">Procedure Create_book_Phone;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;Var Ind,Count: integer;</div><div class="code_line">&nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; Name_File;</div><div class="code_line">&nbsp;&nbsp; Assign(Bookfile,name);</div><div class="code_line">&nbsp;&nbsp; Rewrite(Bookfile);</div><div class="code_line">&nbsp;&nbsp; writeln(&#39;Создание записей файла &#39;, name);</div><div class="code_line">&nbsp;&nbsp; write(&#39;Введите число записей в справочнике &#39;);</div><div class="code_line">&nbsp;&nbsp; readln(count);</div><div class="code_line">&nbsp;&nbsp; For Ind:=1 To count Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Addrec;</div><div class="code_line">&nbsp;&nbsp; writeln(&#39;Создание файла данных телефонного справочника завершено&#39;);</div><div class="code_line">&nbsp;&nbsp; writeln(&#39;Файл данных имеет &#39;,Filesize(bookfile),&#39; записи&#39;);</div><div class="code_line">&nbsp;&nbsp; close(bookfile);</div><div class="code_line">&nbsp;End;</div><div class="code_line">&nbsp;</div><div class="code_line">Procedure Outputrec;</div><div class="code_line">&nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; read(bookfile,work);</div><div class="code_line">&nbsp;&nbsp; With work Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; write(&#39;Запись No &#39;, Filepos(bookfile),&#39; : &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; writeln(&#39;ФИО: &#39;,vardas,&#39; телефон: &#39;,phone);</div><div class="code_line">&nbsp;&nbsp; &nbsp; End;</div><div class="code_line">&nbsp;&nbsp;End;</div><div class="code_line">&nbsp;</div><div class="code_line">Procedure OutputAllrec;</div><div class="code_line">&nbsp;Begin</div><div class="code_line">&nbsp;&nbsp; Name_file;</div><div class="code_line">&nbsp;&nbsp; Assign(bookfile,name);</div><div class="code_line">&nbsp;&nbsp;{$I-}</div><div class="code_line">&nbsp;&nbsp; Reset(bookfile);</div><div class="code_line">&nbsp;&nbsp;{$I+}</div><div class="code_line">&nbsp;&nbsp; If IOresult = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; Begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; seek(bookfile, 0);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; writeln(&#39;*** Вывод телефонного справочника из файла &#39;,name,&#39;***&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; while not Eof(bookfile) Do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Outputrec;</div><div class="code_line">&nbsp;&nbsp; &nbsp; End</div><div class="code_line">&nbsp;&nbsp; Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; writeln(&#39;Файла с именем &#39;,name,&#39; на диске нет&#39;);</div><div class="code_line">&nbsp;End;</div><div class="code_line">&nbsp;</div><div class="code_line">Begin</div><div class="code_line">&nbsp;&nbsp;Clrscr;</div><div class="code_line">&nbsp;&nbsp;End_menu := false;</div><div class="code_line">&nbsp;&nbsp;Repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp;writeln(&#39;*** Телефонный справочник ***&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;writeln(&#39; Выберите вид работы: &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;writeln(&#39; 1 - создание нового файла&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;writeln(&#39; 2 - просмотр&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;writeln(&#39; 3 - изменение записи&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;writeln(&#39; 4 - дополнение&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;writeln(&#39; 5 - сортировка&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;writeln(&#39; 6 - поиск&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;writeln(&#39; 0 - exit&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;write(&#39;Ваш выбор &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;readln(vid);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Case vid Of</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;1: &nbsp;Create_book_phone;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;2: &nbsp;Outputallrec;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;3: &nbsp;Updaterec;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;4: &nbsp;Addrectoend;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;5: &nbsp;sort(bookfile);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;6: &nbsp;search_pavarde;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;0: &nbsp;end_menu := true;</div><div class="code_line">&nbsp;&nbsp; &nbsp;End;</div><div class="code_line">&nbsp;&nbsp; &nbsp;writeln(&#39;для продолжения нажмите Enter&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp;readln;</div><div class="code_line">&nbsp;&nbsp; &nbsp;clrscr;</div><div class="code_line">&nbsp;&nbsp;Until end_menu;</div><div class="code_line">&nbsp;End.</div></ol></div></div></div></div>]]></description>
        <author>#MadCat#</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728266</guid>
        <pubDate>Tue, 24 May 2005 11:00:32 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728266</link>
        <description><![CDATA[Romtek: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728241'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Romtek &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T10:48:57+00:00">24.05.05, 10:48</time></span><div class='quote '>Romtek, все проще</div></div>Это первое, что мне пришло в голову, т.к. и никогда не использую стек и когда у меня такая ошибка, значит я случайно вызвал процедуру внутри самой себя... <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="2005-05-24T11:03:54+00:00">24.05.05, 11:03</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728256'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>volvo877 &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T10:54:38+00:00">24.05.05, 10:54</time></span><div class='quote '>Это как &quot;не используются&quot; ? А где же локальные переменные хранятся?</div></div>Это я знаю. Я имел в виду саму структуру данных типа стек.]]></description>
        <author>Romtek</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728256</guid>
        <pubDate>Tue, 24 May 2005 10:54:38 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728256</link>
        <description><![CDATA[volvo877: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728241'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Romtek &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T10:48:57+00:00">24.05.05, 10:48</time></span><div class='quote '>Я так понимаю, что стеки здесь не используются.</div></div> Это как &quot;не используются&quot; ? А где же локальные переменные хранятся?<br>
<br>
<strong class='tag-b'>#MadCat#</strong>, массивы<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">a, b:array[1..100] of string;</div></ol></div></div></div></div><br>
занимают в стеке 2 * 100 * 255 байт... Это больше 50Кб. Стек по умолчанию устанавливается в 16384 байта. Так что одно из двух: либо уменьшать размер локальных переменных (что и было сделано), либо увеличивать размер стека...]]></description>
        <author>volvo877</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728241</guid>
        <pubDate>Tue, 24 May 2005 10:48:57 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728241</link>
        <description><![CDATA[Romtek: Я так понимаю, что стеки здесь не используются. Остаётся вариант  - <strong class='tag-b'>бесконечная </strong>рекурсия в программе (процедура вызвывает саму себя беск. кол-во раз).]]></description>
        <author>Romtek</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728240</guid>
        <pubDate>Tue, 24 May 2005 10:48:47 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728240</link>
        <description><![CDATA[#MadCat#: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728163'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>volvo877 &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T10:12:18+00:00">24.05.05, 10:12</time></span><div class='quote '><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="2005-05-24T10:15:00+00:00">24.05.05, 10:15</time></span></span><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">Procedure Sort (var bookfile:tipfile);</div><div class="code_line">var</div><div class="code_line">...</div><div class="code_line">&nbsp;&nbsp;a, b:array[1..100] of string[20]; { &#60;--- 20 вместо 255 !!! }</div></ol></div></div></div></div><br>
Тогда в стеке будет заниматься гораздо меньший объем, а тебе строка длиннее 20 символов и не нужна...</div></div><br>
Во, точно, ты прав. Все теперь работает, спасибо. Ну, почему все-таки происходило переполнение, я несовсем понял?]]></description>
        <author>#MadCat#</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728163</guid>
        <pubDate>Tue, 24 May 2005 10:12:18 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728163</link>
        <description><![CDATA[volvo877: <strong class='tag-b'>#MadCat#</strong>,<br>
как вызываешь Sort, покажи... А лучше - приаттачь всю программу ;)<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=96612&view=findpost&p=728141'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>#MadCat# &#064; <time class="tag-quote__quoted-time" datetime="2005-05-24T10:00:59+00:00">24.05.05, 10:00</time></span><div class='quote '>Что значит эта 202 ошибка &quot;Stack overflow&quot;?</div></div><br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Эта ошибка генерируется на входе в процедуру или функцию, скомпилированную в режиме {&#036;S+} в случае, если нет достаточной области памяти для размещения локальных переменных подпрограммы...</div></div><br>
Так что если с вызовом все в порядке - придется играть с директивой {&#036;M a, b, c} Конкретнее - с первым параметром, определяющим размер стека. Можно, конечно, просто отключить контроль переполнения стека через {&#036;S-}, но это как раз крайне нежелательно делать... <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="2005-05-24T10:15:00+00:00">24.05.05, 10:15</time></span></span><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">Procedure Sort (var bookfile:tipfile);</div><div class="code_line">var</div><div class="code_line">...</div><div class="code_line">&nbsp;&nbsp;a, b:array[1..100] of string[20]; { &#60;--- 20 вместо 255 !!! }</div></ol></div></div></div></div><br>
Тогда в стеке будет заниматься гораздо меньший объем, а тебе строка длиннее 20 символов и не нужна...]]></description>
        <author>volvo877</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728141</guid>
        <pubDate>Tue, 24 May 2005 10:00:59 +0000</pubDate>
        <title>Ошибка &amp;quot;Stack overflow&amp;quot;</title>
        <link>https://forum.sources.ru/index.php?showtopic=96612&amp;view=findpost&amp;p=728141</link>
        <description><![CDATA[#MadCat#: Что значит эта 202 ошибка &quot;Stack overflow&quot;?<br>
Я никак не могу понять, написал процедуру и вставил в программу, отдельно это процедура как программа работает, но не хочет работать как процедура в другой программе. Выдает ошибку 202. Вчера что-то помучился она работала, седня опять не работает.<br>
Выкладываю саму процедуру. Её задача открывать уже существующий файл нетекстовой, а двоичный, считывать данные и их сортировать и снова записывать в этот же файл. Доичный файл типа сисок.<br>
Вот типы чтобы легче было разобраться в конструкции.<br>
{type<br>
            RecBook = record<br>
                            name:string[20];<br>
                            phone:string[10];<br>
                       end;<br>
        tipfile = file of RecBook;}<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">Procedure Sort (var bookfile:tipfile);</div><div class="code_line">&nbsp;var</div><div class="code_line">&nbsp;&nbsp;work:recbook; </div><div class="code_line">&nbsp;&nbsp;i,j:integer;</div><div class="code_line">&nbsp;&nbsp;tmps:string[20];</div><div class="code_line">&nbsp;&nbsp;a,b:array[1..100] of string;</div><div class="code_line">&nbsp;begin</div><div class="code_line">&nbsp;&nbsp;Name_File; {еще одна процедура, я ее внизу написал}</div><div class="code_line">&nbsp;&nbsp;assign(bookfile, name);</div><div class="code_line">&nbsp;&nbsp;reset(bookfile);</div><div class="code_line">&nbsp;&nbsp; for i:=0 to filesize(bookfile)-1 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;read(bookfile,work);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;a[i]:=work.vardas;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;b[i]:=work.phone;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;for i:=0 to filesize(bookfile)-2 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; for j:=i+1 to filesize(bookfile)-1 do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if a[i] &#62; a[j] then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tmps:=a[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; a[i]:=a[j];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; a[j]:=tmps;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tmps:=b[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; b[i]:=b[j];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; b[j]:=tmps;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; end;</div><div class="code_line">close(bookfile);</div><div class="code_line">reset(bookfile);</div><div class="code_line">&nbsp;for i:=0 to filesize(bookfile)-1 do</div><div class="code_line">&nbsp;&nbsp;with work do</div><div class="code_line">&nbsp;&nbsp; &nbsp; begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vardas:=a[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;phone:=b[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;write(bookfile,work);</div><div class="code_line">&nbsp;&nbsp; &nbsp; end;</div><div class="code_line">close(bookfile);</div><div class="code_line">end;</div></ol></div></div></div></div><br>
<br>
Процедура File_Name:<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">Procedure Name_File;</div><div class="code_line">&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;write(&#39;Vvedite imia faila dannih telefonnogo spravo4nika &#62; &#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;readln(name);</div><div class="code_line">&nbsp;end;</div></ol></div></div></div></div><br>
Зарание спасибо.]]></description>
        <author>#MadCat#</author>
        <category>Pascal</category>
      </item>
	
      </channel>
      </rss>
	