<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; HTA: Вычисление CRC32 строки или файла (обсуждение)]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8079</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8079&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «HTA: Вычисление CRC32 строки или файла (обсуждение)».]]></description>
		<lastBuildDate>Sat, 18 May 2013 23:45:56 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: HTA: Вычисление CRC32 строки или файла (обсуждение)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72249#p72249</link>
			<description><![CDATA[<p><strong>smaharbA</strong>, предложенное Вами изменение повысило быстродействие почти вдвое. Снимаю шляпу. Про элемент binObj не знал. Нет, теперь уже нашёл и почитал, а до этого просто не знал.</p><p><strong>mozers</strong>, я совсем не знаю бейсика, но визуально сам алгоритм вычисления CRC32 в последней версии мало отличается от более ранних. Поправьте меня, если это не так. Я использовал то, что было переведено на JScript.</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Sat, 18 May 2013 23:45:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72249#p72249</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Вычисление CRC32 строки или файла (обсуждение)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72231#p72231</link>
			<description><![CDATA[<p>2<strong>alexii</strong><br />Конечно так будет лучше.<br />Можно еще добавить ссылку на <a href="https://code.google.com/p/htapp/source/list?repo=crc32-calculator">историю версий</a>. И упомянуть о возможности получения из <a href="http://code.google.com/p/htapp/source/browse/?repo=crc32-calculator">репозитария</a> любой версии (с начальной до конечной).</p>]]></description>
			<author><![CDATA[null@example.com (mozers)]]></author>
			<pubDate>Fri, 17 May 2013 21:04:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72231#p72231</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Вычисление CRC32 строки или файла (обсуждение)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72198#p72198</link>
			<description><![CDATA[<div class="quotebox"><cite>mozers пишет:</cite><blockquote><p>Моя б воля - я бы верхний пост, с этой первой и не совсем удачной попыткой, давно бы стер. Чтобы он добрых людей с панталыги не сбивал.</p><p><strong>alexii</strong> может сотрешь?</p></blockquote></div><p>Особенность движка в том, что при удалении первого поста удаляется вся тема.</p><p>Можем сделать так: я перенесу содержимое второго поста в первый, первой же строкой, с указанием обязательного посещения ссылки для получения последней версии. Устроит?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 16 May 2013 22:41:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72198#p72198</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Вычисление CRC32 строки или файла (обсуждение)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72191#p72191</link>
			<description><![CDATA[<p>Serge Yolkin<br /></p><div class="codebox"><pre><code>var b=new ActiveXObject(&quot;Microsoft.XMLDOM&quot;).createElement(&quot;binObj&quot;); b.dataType=&#039;bin.hex&#039;;
var
 t1=new Date(),
 t2;

var
/* c={338:140,339:156,352:138,353:154,376:159,381:142,382:158,402:131,710:136,732:152,
  8211:150,8212:151,8216:145,8217:146,8218:130,8220:147,8221:148,8222:132,8224:134,
  8225:135,8226:149,8230:133,8240:137,8249:139,8250:155,8364:128,8482:153},    // UTF&gt;ANSI*/
 n=&#039;G:\\Case\\BookPages.zip&#039;,    // [путь\\]имя файла
 r=0xFFFFFFFF,            // здесь будет результат
 s,
 t=[];                // здесь будут табличные значения для алгоритма CRC

for(var i=0;i&lt;256;i++){        // вычисляем табличные значения для алгоритма CRC
  s=i;
  for(var j=0;j&lt;8;j++)s=(s&amp;1)?0xEDB88320^(s&gt;&gt;&gt;1):s&gt;&gt;&gt;1;
  t[i]=s;
}

try{                // пытаемся читать файл
  with(new ActiveXObject(&quot;ADODB.Stream&quot;)){
//    type=2,charset=&#039;ISO-8859-1&#039;;
    type=1;
    open(),loadFromFile(n);
//    s=readText();
    b.nodeTypedValue=read();
    s=b.text;
    close();
  }
}catch(e){
  WScript.echo(&#039;Не удалось получить файл\n&#039;+n);
  WScript.quit();
}

/*for(var i=0;i&lt;s.length;i++)    // собственно, вычисляем контрольную сумму
 r=t[(r^(s.charCodeAt(i)&lt;256?s.charCodeAt(i):c[s.charCodeAt(i)]))&amp;0xFF]^(r&gt;&gt;&gt;8);*/
for(var i=0;i&lt;s.length;i+=2)    // собственно, вычисляем контрольную сумму
 r=t[(r^(&#039;0x&#039;+s.substr(i,2)))&amp;0xFF]^(r&gt;&gt;&gt;8);

r=r^0xFFFFFFFF;
if(r&lt;0)r+=4294967296;

t2=new Date();
t1=t2-t1;

WScript.echo(r.toString(16)+&#039;\n&#039;+t1+&#039; mS&#039;);</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (smaharbA)]]></author>
			<pubDate>Thu, 16 May 2013 19:14:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72191#p72191</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Вычисление CRC32 строки или файла (обсуждение)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72174#p72174</link>
			<description><![CDATA[<p>2<strong>Serge Yolkin</strong><br />1) На свой вопрос &quot;в чем разница?&quot; ты сам уже ответил. (Просто charCodeAt работает с уникодом, а Asc - с ASCII).<br />Алгоритм на чистом js получается настолько замороченный, что даже я, большой его почитатель, решил отказаться.</p><p>2) Ниже моего поста в Коллекции написано </p><div class="quotebox"><blockquote><p>Последняя версия находится <a href="http://crc32-calculator.htapp.googlecode.com/hg/crc32.hta">тут</a></p></blockquote></div><p>Не зря так написано. Изменений - <a href="https://code.google.com/p/htapp/source/list?repo=crc32-calculator">полно</a>.<br />Моя б воля - я бы верхний пост, с этой первой и не совсем удачной попыткой, давно бы стер. Чтобы он добрых людей с панталыги не сбивал.<br /><strong>alexii</strong> может сотрешь?</p>]]></description>
			<author><![CDATA[null@example.com (mozers)]]></author>
			<pubDate>Thu, 16 May 2013 16:35:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72174#p72174</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Вычисление CRC32 строки или файла (обсуждение)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=72069#p72069</link>
			<description><![CDATA[<p>Всё же сделал, что хотел. Правда, замену некоторых символов юникодными пришлось побеждать тупой табличной заменой (благо их не так много)</p><div class="codebox"><pre><code>var
 t1=new Date(),
 t2;

var
 c={338:140,339:156,352:138,353:154,376:159,381:142,382:158,402:131,710:136,732:152,
  8211:150,8212:151,8216:145,8217:146,8218:130,8220:147,8221:148,8222:132,8224:134,
  8225:135,8226:149,8230:133,8240:137,8249:139,8250:155,8364:128,8482:153},    // UTF&gt;ANSI
 n=&#039;G:\\Case\\BookPages.zip&#039;,    // [путь\\]имя файла
 r=0xFFFFFFFF,            // здесь будет результат
 s,
 t=[];                // здесь будут табличные значения для алгоритма CRC

for(var i=0;i&lt;256;i++){        // вычисляем табличные значения для алгоритма CRC
  s=i;
  for(var j=0;j&lt;8;j++)s=(s&amp;1)?0xEDB88320^(s&gt;&gt;&gt;1):s&gt;&gt;&gt;1;
  t[i]=s;
}

try{                // пытаемся читать файл
  with(new ActiveXObject(&quot;ADODB.Stream&quot;)){
    type=2,charset=&#039;ISO-8859-1&#039;;
    open(),loadFromFile(n);
    s=readText();
    close();
  }
}catch(e){
  WScript.echo(&#039;Не удалось получить файл\n&#039;+n);
  WScript.quit();
}

for(var i=0;i&lt;s.length;i++)    // собственно, вычисляем контрольную сумму
 r=t[(r^(s.charCodeAt(i)&lt;256?s.charCodeAt(i):c[s.charCodeAt(i)]))&amp;0xFF]^(r&gt;&gt;&gt;8);

r=r^0xFFFFFFFF;
if(r&lt;0)r+=4294967296;

t2=new Date();
t1=t2-t1;

WScript.echo(r.toString(16)+&#039;\n&#039;+t1+&#039; mS&#039;);
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Mon, 13 May 2013 12:09:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=72069#p72069</guid>
		</item>
		<item>
			<title><![CDATA[HTA: Вычисление CRC32 строки или файла (обсуждение)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69470#p69470</link>
			<description><![CDATA[<div class="quotebox"><cite>Коллекция скриптов и идей пишет:</cite><blockquote><p><a href="http://forum.script-coding.com/viewtopic.php?id=3827">HTA: вычисление CRC32 строки или файла</a></p></blockquote></div><br /><br /><p><strong>mozers</strong>, прошу прощения, если вопрос глупый, но чем отличается</p><div class="codebox"><pre><code>vbASCII(str.charAt(i))</code></pre></div><p>от</p><div class="codebox"><pre><code>str.charCodeAt(i)</code></pre></div><p>?</p><p>Вот же ж. Оказывается, проблема с некоторыми юникодными символами. Текстовый файл разбирается нормально, даже с кириллицей (не уверен, что любой), а вот байты 0x80 - 0x9f возвращаются настолько забавно, что я даже закономерности не понял.</p>]]></description>
			<author><![CDATA[null@example.com (Serge Yolkin)]]></author>
			<pubDate>Thu, 14 Feb 2013 07:27:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69470#p69470</guid>
		</item>
	</channel>
</rss>
