<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JS: автовывод размера]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=6308</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6308&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JS: автовывод размера».]]></description>
		<lastBuildDate>Wed, 12 Oct 2011 02:48:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: JS: автовывод размера]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=52394#p52394</link>
			<description><![CDATA[<p>Большое спасибо Вам. Свой просчет понял <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> и правильные коды получил от Вас.<br />Жаль, что я пока недорос до того уровня... некоторые конструкции еще для меня сложны, Rumata, нехватка опыта и малое время изучения сказываются, <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.<br />т.к. используется функция, то можно отказаться от этой строки и упростить код: var r = x;<br />сразу в код внести х вместо r .<br />/как говаривал один очень известный американец при создании сайтов (кодов) - Чем меньше, тем лучше!/</p>]]></description>
			<author><![CDATA[null@example.com (stir)]]></author>
			<pubDate>Wed, 12 Oct 2011 02:48:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=52394#p52394</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: автовывод размера]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=52374#p52374</link>
			<description><![CDATA[<p>Не надо завязывать общеупотребительные функции на один проект. Пусть функция делает что-то одно, но делает это хорошо в заданных рамках. Вынесите все команды проверки диапазона и вывода информации за пределы функции. </p><p>Тоже писал такую функцию, но пользовался ей раза два, не более. Вот ее аналог. Не пугайтесь - она с виду такая страшная, но делает тоже самое, плюс еще пример в конце : )<br /></p><div class="codebox"><pre><code>
Number.human = function(x, d)
{
	var n = Math.abs(x);

	var r = x;
	var s = &#039;&#039;;

	var divs = arguments.callee.divs;
	for (var i = divs.length - 1; i &gt;= 0; i--) {
		if ( n &gt;= divs[i].d ) {
			r /= divs[i].d;
			s = divs[i].s;
			break;
		}
	}

	return r.toFixed(d) + s;
};

Number.human.divs = [
	{ d: 1e3,  s: &#039; K&#039; }, 
	{ d: 1e6,  s: &#039; M&#039; }, 
	{ d: 1e9,  s: &#039; G&#039; }, 
	{ d: 1e12, s: &#039; T&#039; }
];

n = 1234567890;
WScript.Echo(Number.human(n));
WScript.Echo(Number.human(n, 3));</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Tue, 11 Oct 2011 14:23:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=52374#p52374</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: автовывод размера]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=52372#p52372</link>
			<description><![CDATA[<p>У Вас всё выполняется в соответствии с алгоритмом, который Вы НАПИСАЛИ.<br />То, что Вы ХОТИТЕ правильнее пишется так:</p><div class="codebox"><pre><code>function output(raz) {
//вывод авто по текущему размеру обекта в байтах и выше по ГОСТ
if (raz&lt;0) alert (&quot;По предварительным данным произошла ошибка в программе,&quot;+ &#039;\n&#039; +&quot;размер объекта не может быть отрицательным числом: &quot;+raz);
else if ((0&lt;=raz)&amp;&amp;(raz&lt;1000)) razmer=raz+&#039; B&#039;;
else if ((1000&lt;=raz)&amp;&amp;(raz&lt;1000000)) razmer=(raz/1000)+&#039; kB&#039;;
else if ((1000000&lt;=raz)&amp;&amp;(raz&lt;1000000000)) razmer=(raz/1000000)+&#039; MB&#039;;
else if ((1000000000&lt;=raz)&amp;&amp;(raz&lt;1000000000000)) razmer=(raz/1000000000)+&#039; GB&#039;;
else razmer=(raz/1000000000000)+&#039; TB&#039;;
window.razmer=razmer;
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Spy00000)]]></author>
			<pubDate>Tue, 11 Oct 2011 10:39:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=52372#p52372</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS: автовывод размера]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=52368#p52368</link>
			<description><![CDATA[<p>Похоже он исполняется только как ОДНО если - то или 1 иначе, т.е. только его чать:</p><p>if (1000000000&lt;=raz&lt;1000000000000) razmer=(raz/1000000000)+&#039; GB&#039;;<br />else razmer=(raz/1000000000000)+&#039; TB&#039;;</p><p>а все выше - просто отбрасывается..</p><p>можно конечно попробовать switch, но его конструкция в явном виде не годится...</p>]]></description>
			<author><![CDATA[null@example.com (stir)]]></author>
			<pubDate>Tue, 11 Oct 2011 09:31:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=52368#p52368</guid>
		</item>
		<item>
			<title><![CDATA[JS: автовывод размера]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=52367#p52367</link>
			<description><![CDATA[<p>Простой код собрал в функцию для автовывода сообщения о подсчете занимаемого места файлами и не вижу своего косяка в коде, помогите - почему он выдает вместо, например, 91 мегабайт - 0,091 гигабайт??</p><div class="codebox"><pre><code>&lt;script type=&quot;text/javascript&quot;&gt;
function output(raz) {
//вывод авто по текущему размеру обекта в байтах и выше по ГОСТ
if (raz&lt;0) alert (&quot;По предварительным данным произошла ошибка в программе,&quot;+ &#039;\n&#039; +&quot;размер объекта не может быть отрицательным числом: &quot;+raz);
if (0&lt;=raz&lt;1000) razmer=raz+&#039; B&#039;;
if (1000&lt;=raz&lt;1000000) razmer=(raz/1000)+&#039; kB&#039;;
if (1000000&lt;=raz&lt;1000000000) razmer=(raz/1000000)+&#039; MB&#039;;
if (1000000000&lt;=raz&lt;1000000000000) razmer=(raz/1000000000)+&#039; GB&#039;;
else razmer=(raz/1000000000000)+&#039; TB&#039;;
window.razmer=razmer;
}
&lt;/script&gt;</code></pre></div><p>применяю в теле проги, вот часть кода HTML:<br /></p><div class="codebox"><pre><code>]&lt;script type=&quot;text/javascript&quot;&gt;
//...
//подсчет размеров файлов для 99тхт файла и
var v99=new Array();
var s99=0;
var nnn99=tx99.length;
var fso99 = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);
for (var i = 0; i &lt; nnn99; i++)
    {
    var namev99=tx99[i];
    //alert(&#039;namev99= &#039;+namev99);    
    var ts=fso99.GetFile(namev99);
    v99[i]=ts.Size;
    s99=s99+v99[i];
    }
//отобразить автоматически в кило мега или гига байтах
alert(&quot;s99 = &quot;+s99);//для контроля значение
output(s99);    
alert(&quot;кол-во файлов в массиве v99 = &quot;+nnn99+&#039;, общим объемом &#039;+razmer);
//...</code></pre></div><p>Все вроде просто..но чего-то упускаю из вида..</p>]]></description>
			<author><![CDATA[null@example.com (stir)]]></author>
			<pubDate>Tue, 11 Oct 2011 09:12:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=52367#p52367</guid>
		</item>
	</channel>
</rss>
