Зацените

Тема в разделе "WASM.HEAP", создана пользователем trr, 17 ноя 2008.

  1. axe_roma

    axe_roma New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2004
    Сообщения:
    93
    Адрес:
    Russia
    давно так не смеялся:lol: :lol: :lol: над коментами
     
  2. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    Создайте одинаковые файлы/ярлыки в папках \Documents and Settings\All users\Desktop\ и \Documents and Settings\[User]\Desktop\ и вы увидите абсолютно одинаковые имена на десктопе.
     
  3. trr

    trr New Member

    Публикаций:
    0
    Регистрация:
    26 дек 2006
    Сообщения:
    52
    может быть дело в этом- http://wasm.ru/forum/attachment.php?item=2651
    :)
     
  4. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    trr, проверил - работает, причем как надо!

    Еще предложения:
    1. Сделать по DblClick просмотр файла по ShellExecute. Так сказать, чтобы зрительно/на слух убедиться, что будешь потом удалять дубликаты.
    2. Позволить пользователю вручную удалить/оставить выбранные дубликаты. Сделать кнопки "выбрать всё", "снять выделение", "инвертировать выделение" и "удалить избранное".
    3. Сделать опцию рекурсивного обхода файлов во всех вложенных директориях. Тогда файлы надо показывать с их относительным/абсолютным путем. На случай длительного обхода проверку лучше бы выделить в отдельный поток и в ходе выполнения показывать прогресс. Либо можно сравнивать файлы в двух разных папках, как это сделано в Total Commander.
    4. Можно выводить результат сравнения в log-файл, либо в stdout.

    А так каркас вышел для вполне полезной утилитки - нашел у меня все дубликаты обоев в папке с тысячами файлов. Проверял - все корректно.

    Интересно, а проверка идет только по размеру, или по контрольным суммам в том числе (я не посмотрел код)? Просто если бы была проверка контрольных сумм, то не оставалось бы никаких сомнений, а это надо знать наверняка.
     
  5. Atlantic

    Atlantic Member

    Публикаций:
    0
    Регистрация:
    22 июн 2005
    Сообщения:
    322
    Адрес:
    Швеция
    Код (Text):
    1. mkdir \\?\C:\Windows\con
     
  6. trr

    trr New Member

    Публикаций:
    0
    Регистрация:
    26 дек 2006
    Сообщения:
    52
    mc black
    Обязательно сделаю все 4 пункта.
    C 3-им будут некоторые проблемы (к примеру,сейчас нельзя искать файлы с двух дисков, только во всех папках одного).
    хмм. Если бы файлов было больше 36297 (найденные файлы с выбранным расширением), то вылезла бы ошибка о невоможности записи в память, т.к программа выделяет только 9mb памяти и нет никаких проверок :lol: . Но не думаю, что у кого то есть столько фото или музыки.
    Сначала по размеру, потом crc по Adler32 (первые 75kb).
     
  7. oxcc

    oxcc New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2008
    Сообщения:
    51
    >oxcc
    >А ты попробуй. Соберись с силами, сконцентрируйся на поставленной цели, если не получается - спроси совета у >старших товарищей, все в твоих руках )

    я боусь.. а от этого материнская карта не сгорит? ведь если она сгорит я потеряю все свои сохранения от GTA III, а я уже прошел 3 миссии без читов!
     
  8. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    trr
    3-й пункт самый объёмный, его стоит оставить на последок или на новые версии утилитки. Насчет ограничения по кол-ву файлов - память можно выделять динамически небольшими блоками - столько, сколько требуется. Почитай про выделение памяти, это просто. По 3-му пункту самое основное пока - это выделить обработку в отдельный процесс, чтоб в папке с 36297 файлами окно программки ни на секунду не подвисло.

    Могу предложить ещё:
    5. Кустомный тип файлов для сравнения, т.е. например комбобокс или радиокнопки + текстбокс или как-то типа того. Чтобы можно было самостоятельно задать шаблон для сканирования.
     
  9. driver

    driver New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    302
    хорошая прога..., в смысле - окошко, кнопочки...

    вопрос автору, он должен разбираться уже, или к тем, кто знает - как сделать, чтобы листвьев показывал файлы только с определёнными расширениями - из какого-то списка...
     
  10. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    ListView не умеет показывать файлы, он показывает только текст, определенный приложением. Этот вопрос не по ListView. Обход файлов в этой программе реализован через FindFirstFile/FindNextFile. Выбор файлов для поиска может осуществляться по маске (с использованием '*' и '?').
     
  11. driver

    driver New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    302
    mc black - спасибо

    вот код, который, наверное, ищет файлы ..

    Код (Text):
    1. ReadTheFile  proc  uses edi
    2. LOCAL    FindData:WIN32_FIND_DATA
    3. LOCAL    hFind:DWORD
    4. LOCAL    szBuff[256]:BYTE
    5.  
    6. invoke lstrcpy, addr szBuff, addr szPath
    7. invoke lstrcat, addr szBuff, addr szAll
    8. and Cnt, 0
    9.  
    10. invoke FindFirstFile, addr szBuff, addr FindData
    11.                              .if eax != INVALID_HANDLE_VALUE
    12. mov hFind, eax
    13.                              .while (eax)
    14. inc  Cnt
    15. invoke  FindNextFile, hFind, addr FindData
    16.     .endw
    17.     .endif
    18. invoke  FindFirstFile, addr szBuff, addr FindData
    19.                                 .if eax != INVALID_HANDLE_VALUE
    20. mov  hFind, eax
    21. xor  edi, edi
    22.                                 .while eax != 0
    23.                                 .if byte ptr FindData.cFileName != '.'
    24. invoke  LoadListView, edi, addr FindData
    25. inc edi
    26.  
    27.    .endif
    28. invoke FindNextFile, hFind, addr FindData
    29.    .endw
    30. invoke  FindClose, hFind
    31.    .endif
    32.   ret
    33. ReadTheFile endp
    допустим, мне нужно показывать только .exe
    нужно искать в имени файла .exe? не нашёл такой функции, придётся самому писать ...
     
  12. trr

    trr New Member

    Публикаций:
    0
    Регистрация:
    26 дек 2006
    Сообщения:
    52
    Да просто в "szBuff" помести "c:\*.exe" , если ищешь в одной папке.

    Или проверять так:

    Код (Text):
    1. lea edi,[FindData.cFileName]
    2. invoke lstrlen,edi
    3. mov ebx,[edi+eax-4]
    4.         mov ecx,2
    5. @asdf1:
    6.         cmp bl,41h
    7.         jb @asdf2
    8.         cmp bl,5Ah
    9.         jnb @asdf2
    10.         add bl,20h
    11. @asdf2:
    12.         cmp bh,041h
    13.         jb @asdf3
    14.         cmp bh,05Ah
    15.         jnb @asdf3
    16.         add bh,020h
    17. @asdf3:
    18.         bswap ebx
    19.         loop @asdf1
    20. cmp     ebx,'exe.'
    21. jne     _asdfg
    22. ....
    23. _asdfg:
     
  13. driver

    driver New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    302
    trr - ty...

    в "szBuff" помести "c:\*.exe" - прога умирает...

    код работает ... непонятно (мне) - почему нужно писать 'exe.' ?
     
  14. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    Возможно потому что порядок байт в памяти прямой, а в 16/32-битном регистре обратный.
     
  15. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Жжете.
    По поводу папки с именем con:)

    На линуксовом сервере создал папку con, расшарил по самбе. Захожу с винды через сетевое окружение чтоб посмотреть на con и гыыы сами попробуйте:)
     
  16. Johnikum

    Johnikum Member

    Публикаций:
    0
    Регистрация:
    6 июн 2003
    Сообщения:
    97
    и еще раз по поводу con
    вообще существует такая команда
    copy con 1.txt
    далее набираем:
    blabla
    и жмем ^Z (ctrl-Z), enter

    так что возможно это слово зарезервировано
     
  17. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Johnikum
    con - это консоль, copy con xxx - вводит с консоли, copy xxx con - выводит на консоль.
     
  18. HuXTUS

    HuXTUS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2007
    Сообщения:
    240
    вот и выросло поколение программистов, не заставших времена DOS...
     
  19. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    Ёще вроде как aux есть