Имя: Пароль:
1C
 
Как быстро посчитать CRC-файла
0 Гений 1С
 
гуру
01.02.07
19:03
Хочется в 1С быстро посчитать CRC файла, причем желательно CRC подлиннее, чтобы проверить, менялся файл или нет и искать дубли файлов.
1 Neco
 
01.02.07
21:51
Перечисления.НаборПравПользователей
2 Neco
 
01.02.07
21:52
(1) Тьфу ошибка ;-) Не в ту ветку
3 shuhard
 
01.02.07
22:35
(0) кроме vbs есть и другие скрипты:
ставим в каталог c:\php PHP под винду, пишем махонький скриптик:
echo md5_file("c:\inna.txt");

толкаем под шелом:
C:\php>php -f crc.php
тащимся от  хэша:
4e633321cd63d08038e0d3ab83f3a794

передачу аргументов,возврат значения и вызов из 1СV8.0 на твое усмотрение.
P.S.
хэлпик http://www.php.net/get/php_manual_ru.chm/from/a/mirror
дистрибутив http://www.php.net/downloads.php
4 Гений 1С
 
гуру
02.02.07
18:08
(3) а может не надо из пушки по воробьям???
В винде есть встроенный метод подсчета CRC или может у кого библиотека для подсчета CRC (путем чтения файла и вычисления хэш-функции)?
5 smaharbA
 
02.02.07
18:13
(4) было реализовано полностью на языке 1С, но если бинарники, придется ОЛЕ цеплять...
6 Гений 1С
 
гуру
02.02.07
18:38
(5) именно, бинарники. Неужели в винде нет готовой функции для CRC???
7 shuhard
 
02.02.07
18:58
(6) тебе с шашечками или ехать ?
8 MMF
 
02.02.07
19:00
(6) Есть внешние компоненты
9 Гений 1С
 
гуру
02.02.07
19:12
(7) Мне ехать с шашечками. Мне нужно сравнивать версии файлов.
10 Гений 1С
 
гуру
02.02.07
19:12
(8) А какие?
11 Гений 1С
 
гуру
02.02.07
19:12
для восьмерки!
12 Aka Лёвыч
 
02.02.07
19:27
(4) какие пушки? Если сделаешь, как в (3), то можно легко и просто scriptlet нацарапать, который будет считать CRC
13 MMF
 
02.02.07
19:28
не помню точно, кажись на проктоклубе была Crc32. Я писал МД5, но на 8-ке не взлетит - использован IExtWindowsSupport. Ну да фигли там делать, готовые реализации каких-угодно хешей на любом языке есть, сделать ее запросто (проще, чем твое управление светофорами :-) )
14 Гений 1С
 
гуру
02.02.07
19:34
(12) Левыч, я пишу конфу, которую будут юзать на стандартных вынь-машинах. PHP там не предусмотрен. Поэтому это из пушек по воробьям.
15 Гений 1С
 
гуру
02.02.07
19:35
(13) НЕУЖЕЛИ НЕТ ТИПОВОЙ ВИНДОВОЙ? я в ауте
16 Aka Лёвыч
 
02.02.07
19:45
(15) три дня тому назад я задался тем же вопросом (надо было сравнить два каталога и идентичные файлы казнить) только безотносительно к 1с.
Поковырял msdn и на тему CRC нашел только какую-то хрень, которая вместе с офисом устанавливается и может из командной строки создавать и проверять убогие сертификаты. Как называется - не помню к сожалению
17 Aka Лёвыч
 
02.02.07
19:49
Из ситуации вышел тупо и без затей - поскольку мне нужно было такой фокус срочно и один раз в жизни провернуть, я натравил на оба каталога DC++ взял получившуюся хml и уже из нее взял хэши файлов.
18 FCIV
 
02.02.07
19:49
19 Гений 1С
 
гуру
02.02.07
19:51
(18) мдя...
20 Aka Лёвыч
 
02.02.07
19:55
(19) а что делать?... Лень - двигатель прогресса, но не всегда :)
21 smaharbA
 
02.02.07
20:10
(6)

Перем Массив[256];

Функция Сдвиг(а,н,куда)
   Перем Ат;
   Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
   Скрипт.language="javascript";
   Математика=Скрипт.Eval("Math");
   Если а=0 Тогда
       Возврат 0;
   Иначе
       Ат=Математика.pow(2,Цел(Лог(а)/Лог(2)))+1
   КонецЕсли;
   Если Ат<65535 Тогда
       Ат=65535;
   КонецЕсли;
   Если куда=1 Тогда
       Возврат а/Математика.pow(2,н);
   Иначе
       Возврат а*Математика.pow(2,н)%Ат;
   КонецЕсли;
КонецФункции

Функция Расчет(Знач НачСумма,Сп)
   Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
   Скрипт.language="vbscript";
   Для к=1 По Сп.РазмерСписка() Цикл
       НачСумма=Массив[Скрипт.Eval("("+Сдвиг(НачСумма,8,1) +" AND 255) XOR "+Сдвиг(НачСумма,8,0)+" XOR "+Сдвиг(НачСумма,8,0)+" XOR "+Сп.ПолучитьЗначение(к))+1];
       НачСумма=Скрипт.Eval(НачСумма+" AND 65535");
   КонецЦикла;
   Возврат НачСумма;
КонецФункции

//*******************************************
Процедура Сформировать()
   Перем Рез,Имя,Каталог;
   Массив[1]=0;
   Для к=2 По 256 Цикл
       Массив[к]=Массив[к-1]+4129;
   КонецЦикла;
   Рез=12504;
   Если ФС.ВыбратьФайл(0,Имя,Каталог,"","Файл|*.*","")=0 Тогда
       Возврат;
   КонецЕсли;
   ФСО=СоздатьОбъект("Scripting.FileSystemObject");
   Файл=ФСО.OpenTextFile(Каталог+Имя);
   Сп=СоздатьОбъект("СписокЗначений");
   Пока Файл.AtEndOfStream=0 Цикл
       Сп.ДобавитьЗначение(КодСимв(Файл.Read(1)));
   КонецЦикла;
   Рез=Расчет(Рез,Сп);
   Сообщить(Рез);
КонецПроцедуры

лень было заморачиваться с AND/XOR/POW применил скрипт, но это не очч быстрый метод...
22 Гений 1С
 
гуру
02.02.07
20:50
(21) медленно
23 shuhard
 
02.02.07
21:06
(15) - MSDN поюзать в лом ?
MD5 Class
Namespace: System.Security.Cryptography
Assembly: mscorlib (in mscorlib.dll)

Simple Name
Algorithm Implementation

SHA
SHA1CryptoServiceProvider

SHA1
SHA1CryptoServiceProvider

System.Security.Cryptography.SHA1
SHA1CryptoServiceProvider

System.Security.Cryptography.HashAlgorithm
SHA1CryptoServiceProvider

MD5
MD5CryptoServiceProvider

System.Security.Cryptography.MD5
MD5CryptoServiceProvider

SHA256
SHA256Managed

SHA-256
SHA256Managed

System.Security.Cryptography.SHA256
SHA256Managed

SHA384
SHA384Managed

SHA-384
SHA384Managed

System.Security.Cryptography.SHA384
SHA384Managed

SHA512
SHA512Managed

SHA-512
SHA512Managed

System.Security.Cryptography.SHA512
SHA512Managed

RSA
RSACryptoServiceProvider

System.Security.Cryptography.RSA
RSACryptoServiceProvider

System.Security.Cryptography.AsymmetricAlgorithm
RSACryptoServiceProvider

DSA
DSACryptoServiceProvider

System.Security.Cryptography.DSA
DSACryptoServiceProvider

DES
DESCryptoServiceProvider

System.Security.Cryptography.DES
DESCryptoServiceProvider

3DES
TripleDESCryptoServiceProvider

TripleDES
TripleDESCryptoServiceProvider

Triple DES
TripleDESCryptoServiceProvider

System.Security.Cryptography.TripleDES
TripleDESCryptoServiceProvider

System.Security.Cryptography.SymmetricAlgorithm
TripleDESCryptoServiceProvider

RC2
RC2CryptoServiceProvider

System.Security.Cryptography.RC2
RC2CryptoServiceProvider

Rijndael
RijndaelManaged

System.Security.Cryptography.Rijndael
RijndaelManaged
24 smaharbA
 
02.02.07
21:17
(23) Да, слушай, только надо фреймворк, а так да
http://msdn.microsoft.com/library/rus/default.asp?url=/library/rus/cpref/html/frlrfsystemsecuritycryptographymd5classtopic.asp
25 shuhard
 
02.02.07
21:34
(21) твое(Ваше) решение изящнее, к своему стыду про Math не знал
(24) пусть Гений определит входит ли .NET Framework 1.1 в  понятие стандартной машинки

в догон - возможно в RAR библиотеках есть,ведь RAR смело можно считать стандартным доя России офисным ПО ?
26 k23
 
02.02.07
21:46
ну вы блин, и даёте. классика.
лет эннадцать назад ещё к фокспро подцепил.
crc32test.cpp
#include <stdio.h>
#include <string.h>

static const unsigned long crc_table[256] = {
 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
 0x2d02ef8dL
};


unsigned long crc32(unsigned long crc, const unsigned char * buf, unsigned short len)
{
   crc ^= 0xffffffffL;
   while (len)
   {
     crc = crc_table[(crc ^ (*buf++)) & 0xff] ^ (crc >> 8);
     len--;
   }
   return crc ^ 0xffffffffL;
}

#define BUFSIZE (1 << 20)

void main(int argc, char ** argv)
{

   char * buf = new char[BUFSIZE];
   if (buf == NULL)
   {
       puts("Out of memory");
       return;
   }

   unsigned long dwCrc = 0;

   size_t cnt = 0;
   while(gets(buf))
   {
       if ((cnt & 1) == 0) {
             dwCrc = crc32(dwCrc, (unsigned char *)buf, strlen(buf));
             printf("%s\n%.3f\n", buf, (double)(long)dwCrc);
       }
         cnt++;

   }
   printf("CRC: %x\n", dwCrc);
   delete [] buf;
}
27 smaharbA
 
02.02.07
21:48
(26) смотри (21)
28 k23
 
02.02.07
21:55
(27) любители вайсиков потом и открывают подобные темы. мОзги тренеруйте товарищи, жизнь проще будет.
29 shuhard
 
02.02.07
22:03
(26) дык при наличии булевых   >> N  и XOR  c  AND  CRC посчитать можно всякими способами.
Я циклический контроль на  ТМ8+ЛА2+ЛП5  паял в  году этак  1987
30 k23
 
02.02.07
22:10
я же говорю, классика это.
не моё.
это алгоритм, всеобщий, мировой, все это юзают. и вайсик тоже так делает.
гугль спросите.
31 shuhard
 
02.02.07
22:14
(30) и без гугля все за , осталось заставить Гения написать dll  , язык не важен.
32 Neco
 
02.02.07
22:20
(30) Классно! Теперь тоже самое на 1С
ЗЫ: Любитель не любитель, а задачу нужно решить здесь и сейчас
33 shuhard
 
02.02.07
22:30
(32) написать булеву арифметику можно , но сделать ее производительной мне не удалось, если знаешь ходы - код в студию
34 Neco
 
02.02.07
22:53
(33) Исключающее ИЛИ в 1С и лучшего пока не придумали:

Function XOR(Val ParA, Val ParB)
 Res = 0;
 Koef = 1;
 For BitNumber = 1 To 8 Do
   BitA = ParA % 2;
   BitB = ParB % 2;
   ParA = Int(ParA / 2);
   ParB = Int(ParB / 2);
   BitC = (BitA + BitB) % 2;
   Res = Res + BitC * Koef;
   Koef = Koef * 2;
 EndDo;
 Return Res;
EndFunction

Книга знаний: Кислотно-щелочной баланс или сбор информации об окружении
35 Gepard
 
02.02.07
23:58
(0) сейчас добавил сюда http://d01-soft.ru/soft-vk1c.htm MD5 - попробуйте пожалуйста
36 Gepard
 
03.02.07
00:16
(35) правда тестировал пока только на двух файлах...
37 Immortal
 
03.02.07
00:41
что же ниу кого рука не поднялась то..
веточку в Бз и мну в архив.
38 shuhard
 
03.02.07
08:30
(34) 72  операции с плавучкой вместо:
     mov ax,123h    
     mov bx,0ffh
     XOR ax,bx

не взлетит
39 Ковычки
 
03.02.07
09:18
(28) друх извини, моск тебе надо тренировать, ты заметил в каком разделе ветка ?
Да и нах ВК если есть (23)(24), ком объект (достаточно шустрый) напишу и в блокноте и даже без (23), такчто бросаться копипастом не стоИт...
40 Gepard
 
03.02.07
10:06
(0) .Net Framework входит в стандартный набор приложений рабочей станции?
41 Гений 1С
 
гуру
05.02.07
18:13
(40) неа, XP & W2k
42 Ковычки
 
05.02.07
18:15
(41) еще актуально ?
43 Гений 1С
 
гуру
05.02.07
18:17
(42) а то...
44 Gepard
 
05.02.07
22:06
(43) не пробовали (35)?
45 Ковычки
 
06.02.07
00:20
А че делать с файлами -> 1 Мб и более ?
46 smaharbA
 
06.02.07
11:56

//*******************************************
Процедура Сформировать()
   Текст=СоздатьОбъект("Текст");
   Текст.ДобавитьСтроку("<?xml version='1.0' encoding='windows-1251'?>
   |<component>
   |<registration
   |    description='ComCrc32_16'
   |    progid='ComCrc32_16.WSC'
   |    version='1.00'
   |    classid='{424ac2bc-5732-4dea-be17-0211af99cd7a}'
   | />
   |<public>
   |    <method name='получитьCRC' />
   |    <method name='getcrc'    />
   |</public>
   |<script language='vbscript'>
   |<![CDATA[
   |function getASC(c)
   |    getASC=AscB(c)
   |end function
   |]]>
   |</script>
   |<script language='javascript'>
   |<![CDATA[
   |var crc_tab;
   |function getcrcinsite(n,crc,basa32){
   |    if (basa32){
   |        crc = crc_tab[(crc ^ n) & 0xFF] ^ ((crc>>8)&0xFFFFFF);
   |        }
   |    else {
   |        crc = crc_tab[((crc>>8)^n)&0xFF]^((crc<<8)&0xFFFF);
   |        }
   |    return crc;
   |}
   |function create_table(basa32) {
   |    var i;
   |    var crctable = new Array();
   |    if (basa32) {
   |        poly=0xedb88320;
   |        for(i=0;i<256;i++) {
   |            j=i;
   |            for(k=0;k<8;k++) {
   |                l = ((j & 0xfffffffe)/2) & 0x7fffffff;
   |                j = (j & 1) ? l ^ poly : l;
   |                }
   |            crctable[i] = j & 0xffffffff;
   |            }
   |        }
   |    else {
   |        poly=0x1021;
   |        for (i=0;i<256;i++) {
   |            j=i << 8;
   |            for(k=0;k<8;k++) {
   |                j = (j & 0x8000) ? (j << 1) ^ poly  : j << 1;
   |                }
   |            crctable[i] = j & 0xFFFF;
   |            }
   |        }
   |        return crctable;
   |    }
   |function получитьCRC(data,basa32,typedata){
   |    return getcrc(data,basa32,typedata);
   |    }
   |function getcrc(data,basa32,typedata){
   |    crc_tab=create_table(basa32);
   |    if (basa32) {
   |        crc = 0xffffffff;
   |        }
   |    else {
   |        crc = 0;
   |        }
   |    if (typedata) {
   |        var fso = new ActiveXObject('Scripting.FileSystemObject');
   |        if (fso.fileexists(data)) {
   |            var stream=new ActiveXObject('ADODB.Stream');
   |            stream.Type=1;
   |            stream.Open();
   |            stream.LoadFromFile(data);
   |            while (!stream.EOS){
   |                crc=getcrcinsite(getASC(stream.Read(1)),crc,basa32);
   |                }
   |            stream.Close();
   |            }
   |        }
   |    else {
   |        for (i=0;i<data.length;i++) {
   |            crc=getcrcinsite(data.charCodeAt(i),crc,basa32);
   |            }
   |        }
   |    if (basa32) {
   |        crc=(crc ^ 0xffffffff < 0) ? (0x100000000-(crc ^ 0xffffffff)) : crc ^ 0xffffffff;
   |        }
   |    else {
   |        crc=crc & 0xffff;
   |        }
   |    return crc.toString(16).toUpperCase();
   |    }
   |]]>
   |</script>
   |</component>");
   Текст.Записать(КаталогИБ()+"crc32_16.wsc");
   Предупреждение("Без регистрации компоненты");
   Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
   Скрипт.language="javascript";
   ОбъектCRC=Скрипт.Eval(Шаблон("GetObject('script:[СтрЗаменить(КаталогИБ(),""\"",""\\"")]crc32_16.wsc')"));
   База32=-1;//-1 crc32; 0 crc16
   ТипДанных=-1;//-1 файл; 0 строка
   Сообщить(ОбъектCRC.получитьCRC(РасположениеФайла(),База32,ТипДанных));
   База32=0;//-1 crc32; 0 crc16
   ТипДанных=-1;//-1 файл; 0 строка
   Сообщить(ОбъектCRC.получитьCRC(РасположениеФайла(),База32,ТипДанных));
   Предупреждение("С регистрацией компоненты");
   КомандаСистемы("regsvr32 /s """+КаталогИБ()+"crc32_16.wsc""");
   ОбъектCRC=СоздатьОбъект("ComCrc32_16.WSC");
   База32=-1;//-1 crc32; 0 crc16
   ТипДанных=-1;//-1 файл; 0 строка
   Сообщить(ОбъектCRC.получитьCRC(РасположениеФайла(),База32,ТипДанных));
   База32=0;//-1 crc32; 0 crc16
   ТипДанных=-1;//-1 файл; 0 строка
   Сообщить(ОбъектCRC.получитьCRC(РасположениеФайла(),База32,ТипДанных));
КонецПроцедуры

(алгоритм crc32 как в (26))
47 Гений 1С
 
гуру
06.02.07
18:18
(26) гы, а что это за таблица такая? crc_table, по какому принципу строится?
48 Гений 1С
 
гуру
06.02.07
18:18
(45) читать порциями.
49 Гений 1С
 
гуру
06.02.07
18:20
А 1с умеет считывать порциями двоичные файлы???
50 smaharbA
 
06.02.07
18:20
(47) это полином от edb88320
51 Гений 1С
 
гуру
06.02.07
18:20
(46) чем так извращаться, лучше весь скрипт запихнуть в vbscriptig (один скрипт) и один раз его запустить, хотя все равно медленно наверное будет. ;-)
Но пофиг - большинство файлов не более 2-3 метров.
52 smaharbA
 
06.02.07
18:21
(49) смотри (46) там побайтно, но порциями ненамного сложнее
53 Гений 1С
 
гуру
06.02.07
18:22
все-таки через FileScripting? 1С не умеет двоичные читать?
54 smaharbA
 
06.02.07
18:22
(51) это не VBS скрипт - это ком объект, просто тут он вкуче с 1С, а так пожалуйста делай его отдельно и пользуй его методы
55 smaharbA
 
06.02.07
18:22
(53) там не через филескрипт, там через адодб.стрим
56 shuhard
 
06.02.07
20:31
(46) Браво
57 Эрвинс
 
06.02.07
20:34
в 1с можно dll юзать?
58 Neco
 
06.02.07
20:43
(57) COM и OLE объекты зарегистрированные в системе
59 Эрвинс
 
06.02.07
21:03
(58) что мешает написать dll для этих целей?
60 Neco
 
06.02.07
21:09
(59) Гм. ничего не мешает
61 Gepard
 
06.02.07
21:18
(59) тут просто тренировка мозгов идет...
62 Neco
 
06.02.07
22:19
Кстати о dll'ках. Накатал побырику ВК
http://proba1c.narod.ru/downloads/ExtCom_CRC.rar
63 ячссчы
 
07.02.07
00:37
Хотите знать, что о вас думают окружающие?
Как относится к вашей работе ваш босс?
Чем занимаются соседи?
Просматривать телевизор или слушать музыку при почти выключенном звуке (полезно если у Вас спит ребенок)
Или просто нужен необычный подарок? заходите сюда http://www.proslyshka.ru/index.php?refid=10306 ззз
64 smaharbA
 
07.02.07
06:42
(62) к семерке ее можно подцепить ?
65 Neco
 
07.02.07
17:35
(64) Легко, только обработку свою накалякать
66 Ковычки
 
07.02.07
17:54
(65) теперь давай мд5 только "взад" ))
67 Гений 1С
 
гуру
07.02.07
18:08
Господа, а вот это все коды для какого CRC?
Я бы для файлов хотел CRC, по длине аналогичный GUID, т.е. 16 байт.
Возможно сие счастье?
Чтобы более-менее надежно отфильтровывать одинаковые файлы. ;-)
В связке Размер файла + CRC должно по идее надежно работать.
68 Neco
 
07.02.07
18:12
(67) А зачем размер файла?
(66) Нихт ферштейн. Алгоритмы нашел в Инете, смысл алгоритмов не знаю, тупо вставил в ВК, как-то работает. Правильно-ли? Не знаю. Экспериментировал с разными файлами, вроде разные по размеру, но немного отличающиеся файлы отличает.
69 Гений 1С
 
гуру
07.02.07
18:31
(68) мне нужно быстро узнать, менялся файл или нет.
с нужной долей надежности об этом говорит размер файла и CRC, на дату модификации опираться не могу.
70 Гений 1С
 
гуру
07.02.07
18:31
Потому что проверяю не локальный файл, а файл на http
71 Ковычки
 
07.02.07
18:44
в (46) CRC16 и CRC32, а ты захотел аж CRC64, его тоже несложно реализовать
72 Гений 1С
 
гуру
07.02.07
18:45
16 байт это CRC 128
73 romix
 
модератор
07.02.07
19:57
А у меня кажется есть MD5
http://x-romix.narod.ru/Events.rar
74 Гений 1С
 
гуру
08.02.07
18:23
(73) эхъ, придется самому писать.
Не пойму этих 1снегов. вставили в систему географические схемы, а логическое и или и ксор забыли... мдя, пути 1цэ неисповедимы
Ошибка? Это не ошибка, это системная функция.