eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingzadanieRe: zadanie
  • Data: 2012-02-13 14:00:32
    Temat: Re: zadanie
    Od: "slawek" <h...@s...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Użytkownik napisał w wiadomości grup
    dyskusyjnych:jh6dp3$km6$...@i...gazeta.pl...

    >ktos umialby napisac prostego toola, program
    >ktory dla podanego katalogu i podanego rozszerzenia plikow
    >wyszukalby pliki ktore maja binarne duplikaty i duplikaty
    >te przerenamowal np na koncu dodajac ciag np ".duplicate"

    Swego czasu był opublikowany program (tekst źródłowy w C, okienka MS w
    czystym API) o dźwięcznej nazwie "dupless".

    Algorytm był do wyboru: albo porównywanie nazw plików, albo długości (i ew.
    zawartości, daty). Program był "prościutki", ale nie pozwalał sam w sobie na
    masowe rename czy delete itp. - choć można wyeksportować listę duplikatów. Z
    lenistwa polecam gawk do przetworzenia takiej listy - i sprawa rozwiązana.

    W sensie teoretycznym: co oznacza, że dwa pliki są jednakowe? Mają taką samą
    zawartość? Ale muszą mieć różne nazwy (tzn. przynajmniej inna ścieżka)...
    inaczej nie mówilibyśmy o dwóch plikach. Ale pliki o tej samej zawartości
    mogą mieć znaczenie (dla systemu, dla kogoś), np. ktoś może wstawiać do
    katalogów plik "audit_ok.txt" o długości zero bajtów... Z drugiej strony dwa
    pliki, np. file1.c i file2.c mogą mieć różną zawartość w sensie np. CRLF vs.
    LF - ale i tak będzie to "ten sam" kod źródłowy (czyli co? różne czy takie
    same?)

    W sensie praktycznym - wystarczy sprawdzać długość pliku (pliki o różnych
    długościach są różne, te mające 0 bajtów są wszystkie jednakowe), potem
    jeżeli długości są takie same to sprawdzać pierwsze n bajtów (tanie, nie
    zajmuje wiele czasu), potem liczyć sumę kontrolną (CRC, MD5 do wyboru, pliki
    z różnym MD5 są różne i rzadko kiedy, bardzo rzadko, będzie potrzebne
    dokładniejsze sprawdzenie, a MD5 ma koszt liniowy)... jeżeli to zawiedzie
    sprawdzać bajt po bajcie zgodność (przy m bajtach i k plikach koszt m*k,
    ewentualnie można od końca czy jakoś losowo).

    slawek



Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: