Hirdetés

2024. április 25., csütörtök

Gyorskeresés

Hozzászólások

(#1) Jim-Y


Jim-Y
veterán

Open

(#2) lapa


lapa
veterán

17.000 fájlon fut 45 percig és csak méretet meg nevet vizsgál? nem lett volna egyszerűbb egy dir rekurzívan, aztán excelben sorrendezni összesen 3 perc alatt?

valami nem stimmel ott. amúgy erősebb vizsgálat csak azoknál kéne, amik egyeztek, szóval ez szerintem nem befolyásolná nagyon.

[ Szerkesztve ]

(#3) Dluinet válasza Jim-Y (#1) üzenetére


Dluinet
nagyúr

van erre egy csomó ingyenes program:
Duplicate Cleaner
AllDup
DiskBoss

vagy hordozható verzióba:
DoubleKiller, Easy Duplicate Finder, Duplicate File Finder, DirComp

"Mindig is első szerettem volna lenni!" - II. János Pál pápa

(#4) Jim-Y válasza lapa (#2) üzenetére


Jim-Y
veterán

nem a név és méretvizsgálat miatt fut ennyi ideig, hanem mert ciklus van a ciklusban, ez 17.000 adatnál ilyen lassú sajnos :/

Az Excelt én elvből nem nyitom meg ;] Amúgy igen, biztos egyszerűbb úgy, de tudod azért szerkesztettem ilyenre a bejegyzést, illetve raktam a végére Címke felhőt, hogy kereshető legyen, mert valakinek még szüksége lehetne valamire a kódból:)

A Programozós fórumban jelenleg is folyik az eszmecsere, hogy mivel lehetne gyorsítani a dolgokon.

(#5) Jim-Y válasza Dluinet (#3) üzenetére


Jim-Y
veterán

Köszi, ezeket majd mindenképp beteszem a Hasznos Linkek közé, de jelenleg nem az volt a célom, hogy megszüntessem a duplikációkat, hanem inkább, hogy a hozzám hasonló programozó palántákhoz eljuthasson a szösszenet, ezer, meg ezer ehhez hasonló szösszenet van a neten, nagyon helyesen, ha valami komplex dolgot akar megvalósítani az ember, akkor az ilyen kis kódrészletek nagyon jól tudnak jönni, tapasztalatból mondom:)

(#6) F34R


F34R
nagyúr

Jo ez ;] nekem zeneim kozt van duplikatum egy par, de nem vallalom a megkereseset mert par ezer van. A nevuk nem ugyan az (marmint a struktura ahogy el van nevezve) igy kicsit masabb. Meg van ami webshopbol van azoknak meg nincs is rendes id3 tag-se azokat csak sajnos hallas alapjan tudom beazonositani.

(#7) lapa válasza Jim-Y (#4) üzenetére


lapa
veterán

én a powershellt elvből nem nyitom meg, de szerintem csak lehetne valami tömböt létrehozni, és csak a végén sorrendezni, hogy kijöjjön a való. azért ahogy nézegettem régebben a ps elég erőteljes (mármint winhez képest mérve). azt értem, hogy a kód a lényeg, csak eszerint a példa nem túl szerencsés.

az excel a második (harmadik) legfontosabb dolog, amit megtanulhatsz angol meg német nyelv után.

[ Szerkesztve ]

(#8) Jim-Y válasza F34R (#6) üzenetére


Jim-Y
veterán

Alapból van olyan PowerShell lehetőség, hogy diff $a $b ami megnyitja a fájlt, végigmegy benne soronként, és ha ugyanaz akkor hamissal, ha van benne különbség akkor igazzal tér vissza, nyílván ezt a sort:
if($tempj.Name -eq $tempi.Name -and $tempj.Length -eq $tempi.Length){

simán le lehetne cserélni egy diff-esre, de akkor már tényleg nagyon sok ideig tartana az összehasonlítás egy egész partícióra :(
Na mindegy, legalább elfoglaltam magam ^^

(#9) Jim-Y válasza lapa (#7) üzenetére


Jim-Y
veterán

A rendezéssel az a baj, hogy ha lekéred a fájlokat akkor egy fájl valahogy így fog kinézni:

D:\User\Zenék\ABBA\zeneszam.mp3
ez egy tök más helyen is lehet, például
D:\Dokumentumok\Mintazenék\Régiek\zeneszam.mp3

Most a fentieket hogy rendezed lexiografikusan úgy, hogy egymás mellé kerüljenek? :/
Aprobléma azzal van, hogy az algoritmus 1500 fájl esetén 1500x1500-szor fog végigmenni egy tömbön, ami lassú, erre kéne megoldást találni.

Hát nem tudom, tisztában vagyok vele, hogy sokaknak tesz jó szolgálatot az Excel, és méltán híres, de én mint programozó nem nagyon csípem. De ez csak azért lehet, mert még tanulom a szakmát, erősen, mint a fentiekből is látszik. Ha a fő érv az lenne, hogy a problémát gyorsan oldjam meg, és az excel lenne a legalkalmasabb erre, akkor nyílván azt használnám, és nem érdekelne, hogy mennyire puritán dolog azt használni :D

Puritán alatt azt értettem, hogy míg egyik munkatársam a nagy adathalmazt excellel szerette volna beolvasni/rendezni/feldolgozni, addig én egyből írtam volna rá egy PHP kódot, ami egyből az adatbázisra csatlakozik, így az dinamikusan dolgozta volna fel az adatokat, egyszer kell megírni, és utána teszi a dolgát, míg a munkatárs vélhetően előbb végzett volna az adathalmazzal excelt használva, de semmi olyat nem csinált volna ami utána automatizálta volna a folyamatot.

[ Szerkesztve ]

(#10) F34R válasza Jim-Y (#9) üzenetére


F34R
nagyúr

Nalam egy helyen vannak a zenek azzal nincs baj, a mappan belul vannak duplicatumok.
Egy bash scriptel talan meglehetne oldani....

(#11) Jim-Y válasza F34R (#10) üzenetére


Jim-Y
veterán

Hát, ha csak névben különböznek, akkor
$loc = get-location
$files = get-childitem -Path $loc -Recurse *.mp3 | where {$_.Length -gt 0}
$length = $files.length
$multiples = @()
for($i=0;$i -lt $length;++$i){
$ismultiple = 0
$tempi = $files[$i]
if($multiples -contains $tempi.FullName){ } else {
for($j=$i+1;$j -lt $length;++$j){
$tempj = $files[$j]
if($tempj.Length -eq $tempi.Length){
if(diff $(Get-Content $tempi) $(Get-Content $tempj)) {
# egyenlo hosszu, de nem ugyanaz, pl mas ID3
} else {
$multiples += $tempj.FullName
$rows++
$ismultiple = 1
}
}
}
if($ismultiple){
$multiples += $tempi.FullName
$multiples += "`n"
}
}
}
$multiples

Az a baj, hogy ha már más az ID3 tag akkor különbözőnek veszi őket :/

(#12) F34R válasza Jim-Y (#11) üzenetére


F34R
nagyúr

Akkor marad a bogaraszas en ebbe nem akorok belemerulni nagyon (amugy is elvannak a hdd-n ) ;]

(#13) lapa válasza Jim-Y (#9) üzenetére


lapa
veterán

az excelnél hatékonyabb nemigen leszel semmilyen php kóddal, tekintve hogy az adatbázis-elérés eleve be van építve (grafikusan látod akár a táblákat is, nem csak az sql-t), a query paraméterezését meg cellákból is megadhatod. van benne auto refresh meg az összes excel függvény. azt az 1%-ot, amit ezekkel nem tudsz megoldani, arra ott van benne a visual basic, egy ilyen cuccot nagyjából ugyanennyi kódból megírsz benne, mint powershellben. ha most azt mondanád csináljam meg húznám a számat, de meglenne. egy fia cellába nem kéne írni közben...

nemtom, olyat, hogy 2d-s tömb tud a ps? mert ugye path + név + méret lenne a 3 oszlop. de az utóbbi kettőt akár konszolidálni is lehetne, ha nagyon favágni akar az ember. mondom, nekem ez nagyon régen volt, még akkor néztem, mikor kijöttek vele, active directoryhoz voltak sortolós scriptek...

[ Szerkesztve ]

(#14) Jim-Y válasza lapa (#2) üzenetére


Jim-Y
veterán

Na, közben sikerült megoldani a problémát, már csak 15mp-ig tart ami előtte 45 percig :)
UPDATE-eltem a posztot.

(#15) Sk8erPeter


Sk8erPeter
nagyúr

http://prohardver.hu/tema/programozas_forum/hsz_6404-6425.html

Sose felejtsd el, honnan jöttél... :DDD

Sk8erPeter

(#16) Jim-Y válasza Sk8erPeter (#15) üzenetére


Jim-Y
veterán

Igen köszi, ez is hasznos lehet, mert azért nem saját kútfőből jött a megoldás ^^

Copyright © 2000-2024 PROHARDVER Informatikai Kft.