-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.man.szczec
in.pl!not-for-mail
From: "slawek" <h...@s...pl>
Newsgroups: pl.comp.programming
Subject: Re: zadanie
Date: Mon, 13 Feb 2012 15:00:32 +0100
Organization: ACI - http://www.aci.com.pl
Lines: 38
Message-ID: <jhbbv9$g2b$1@zeus.man.szczecin.pl>
References: <jh6dp3$km6$1@inews.gazeta.pl>
NNTP-Posting-Host: ip-212-14-19-203.bjm.zut.edu.pl
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original
Content-Transfer-Encoding: 8bit
X-Trace: zeus.man.szczecin.pl 1329148713 16459 212.14.19.203 (13 Feb 2012 15:58:33
GMT)
X-Complaints-To: u...@n...man.szczecin.pl
NNTP-Posting-Date: Mon, 13 Feb 2012 15:58:33 +0000 (UTC)
In-Reply-To: <jh6dp3$km6$1@inews.gazeta.pl>
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Newsreader: Microsoft Windows Live Mail 15.4.3538.513
X-MimeOLE: Produced By Microsoft MimeOLE V15.4.3538.513
Xref: news-archive.icm.edu.pl pl.comp.programming:195299
[ ukryj 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
Następne wpisy z tego wątku
- 13.02.12 17:29 Michoo
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-16 Szczecin => Key Account Manager (ERP) <=
- 2024-12-16 Lublin => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-16 Gdańsk => Specjalista ds. Sprzedaży <=
- 2024-12-16 odpowiedzialnosc powodz
- 2024-12-16 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-12-16 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-12-16 Lublin => Programista Delphi <=
- 2024-12-16 Warszawa => Programista Dynamics 365 CRM <=
- 2024-12-15 (ino)wrocław
- 2024-12-15 Obcinaczki z łapaczem
- 2024-12-14 światła znów wlączyli
- 2024-12-14 nie lekceważ termostatu
- 2024-12-14 numer 112
- 2024-12-14 Pendrive, ale dysk
- 2024-12-12 Autocom CAN CDP+ wysokie kody błędów