sortowanie plików |
sortowanie plików |
16.05.2004, 10:55:04
Post
#1
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 13.05.2002 Skąd: Sanok Ostrzeżenie: (0%) |
Mam następujący problem. mam w danym katalogu 100 plików txt o nazwach od 1 do 100 czyli 1.txt 2.txt itd. W każdym z tych plików jest jakaś wartość (jakaś liczba) Jak zrobić zeby skrypt pobierał dane wartości z plików sortował je od największej do najmniejszej i wyświetlał tylko 10 największych wartości. Ale żeby wyświetlał to w ten sposób.
plik nr. 1 = 45 plik nr. 7 = 42 plik nr. 99 = 40 plik nr. 30 = 22 itd. Bardzo prosze o pomoc !!! -------------------- co chciałes tu znalezc ?
|
|
|
16.05.2004, 11:04:50
Post
#2
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Tomaszów Lubelski Ostrzeżenie: (10%) |
Robisz pętlę otwierającą każden z plików i zapisującą jego wartości w tablicy o indexie pliku. Później tylko sortujesz tablicę.
-------------------- Don't worry, be happy!
Gadu-Gadu: 1687784 Darmowe komponenty na stronę WWW - licznik księga gości shoutbox chat kalendarz data godzina imieniny IP host przeglądarka odwiedzającego ankieta sonda |
|
|
16.05.2004, 11:28:24
Post
#3
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 13.05.2002 Skąd: Sanok Ostrzeżenie: (0%) |
próbowałem ale mi nie wychodzi mozecie mi cos takiego napisać - jeśli to nie duży problem - prosze to dla mnie ważne !
-------------------- co chciałes tu znalezc ?
|
|
|
16.05.2004, 11:50:12
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 660 Pomógł: 0 Dołączył: 28.08.2002 Skąd: Starachowice Ostrzeżenie: (0%) |
Pamiętam, że kiedyś na forum było takie pytania i chyba cośtam komuś nabazgrałem - spróbuj poszukać, chociaż przyznaję, że może być problem ze znalezieniem
|
|
|
16.05.2004, 12:23:37
Post
#5
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 13.05.2002 Skąd: Sanok Ostrzeżenie: (0%) |
jest problem, znajduje ale nie ma nic co by mi pomogło
-------------------- co chciałes tu znalezc ?
|
|
|
16.05.2004, 18:24:07
Post
#6
|
|
Grupa: Zarejestrowani Postów: 436 Pomógł: 6 Dołączył: 8.11.2003 Skąd: Szczecin Ostrzeżenie: (0%) |
[php:1:a580e67164]
<?php $dir = "./dir"; // katalog w ktorym sa te pliki $file_data = array(); if( !( $d = opendir( $dir ) ) ) { die( "Nie mogę otworzyc katalogu" ); } while( $txt = readdir( $d ) ) { if( $txt != "." && $txt != ".." ) { $file_open = file( $dir."/".$txt ); $file = explode( ".txt", $txt ); $file = $file[0]; $file_open = $file_open[0]; $file_data[$file] = $file_open; } } closedir( $d ); arsort( $file_data ); foreach( $file_data as $key => $value ) { if( $i != 10 ) { echo "Plik nr. <b>$key</b> = <b>$value</b><br>"; $i++; } } ?> [/php:1:a580e67164] Mam nadzieję, że o to Ci chodziło. Nie wiem czy można to zrobić w szybszy sposób, ale ja to zrobilem tak. |
|
|
16.05.2004, 19:08:18
Post
#7
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 13.05.2002 Skąd: Sanok Ostrzeżenie: (0%) |
działą bardzo dobrze ale czegos mi w tym brakuje. bo chodzi o to, mam te rzeczone pliki txt z zawartymi liczbami. te liczby są licznikami otwierania danych plików graficznych. chce zrobić cos takiego zeby tylko pierwsze 10 rekordów było wyświetlanych. najlepiej żeby ten skrypt twożył zmienne typu
obraz[1]="nr.pliku" wartosc[1]="jakaswartosc" obraz[2]="nr.pliku" wartosc[2]="jakaswartosc" obraz[3]="nr.pliku" wartosc[3]="jakaswartosc" obraz[4]="nr.pliku" wartosc[4]="jakaswartosc obraz[5]="nr.pliku" wartosc[5]="jakaswartosc" obraz[6]="nr.pliku" wartosc[6]="jakaswartosc" obraz[7]="nr.pliku" wartosc[7]="jakaswartosc" obraz[8]="nr.pliku" wartosc[8]="jakaswartosc" obraz[9]="nr.pliku" wartosc[9]="jakaswartosc" obraz[10]="nr.pliku" wartosc[10]="jakaswartosc" mam nadzieje ze to nie bedzie wymagało dużych zmian -------------------- co chciałes tu znalezc ?
|
|
|
16.05.2004, 19:13:56
Post
#8
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Tomaszów Lubelski Ostrzeżenie: (10%) |
Dane uzsykujesz tak:
[php:1:6befa314e3]<?php $file_data[1] = "cos"; // 1 - numer pliku // "cos" jego zawartosc ?>[/php:1:6befa314e3] Nie wiem, po co chcesz to zmieniać, bo tak jest wygodnie i praktycznie. Ale skoro chcesz: [php:1:6befa314e3]<?php $obraz[0] = ""; wartosc[0] = ""; foreach( $file_data as $key => $value ) { obraz[] = $key; wartosc[] = $value; } ?>[/php:1:6befa314e3] -------------------- Don't worry, be happy!
Gadu-Gadu: 1687784 Darmowe komponenty na stronę WWW - licznik księga gości shoutbox chat kalendarz data godzina imieniny IP host przeglądarka odwiedzającego ankieta sonda |
|
|
16.05.2004, 19:19:04
Post
#9
|
|
Grupa: Zarejestrowani Postów: 436 Pomógł: 6 Dołączył: 8.11.2003 Skąd: Szczecin Ostrzeżenie: (0%) |
[php:1:a7e2b4c22a]<?php
$dir = "./dir"; $file_data = array(); $obraz = array(); $wartosc = array(); if( !( $d = opendir( $dir ) ) ) { die( "Nie mogę otworzyc katalogu" ); } while( $txt = readdir( $d ) ) { if( $txt != "." && $txt != ".." ) { $file_open = file( $dir."/".$txt ); $file = explode( ".txt", $txt ); $file = $file[0]; $file_data[$file] = $file_open[0]; } } closedir( $d ); arsort( $file_data ); echo "Tablica "file_data"<br><br>"; while( list( $key, $value ) = each( $file_data ) ) { if( $i != 10 ) { echo "Plik nr. <b>$key</b> = <b>$value</b><br>"; $i++; $obraz[] = $key; $wartosc[] = $value; } } unset( $i ); echo "<br><br>Tablica "obraz"<br><br>"; while( list( $key, $value ) = each( $obraz ) ) { if( $i != 10 ) { echo "Klucz: <b>$key</b> ma wartosc <b>$value</b><br>"; $i++; } } unset( $i ); echo "<br><br>Tablica "wartosc"<br><br>"; while( list( $key, $value ) = each( $wartosc ) ) { if( $i != 10 ) { echo "Klucz: <b>$key</b> ma wartosc <b>$value</b><br>"; $i++; } } ?>[/php:1:a7e2b4c22a] To jest wersja co nic nie wyświetla tylko tworzy tablice. [php:1:a7e2b4c22a] <?php $dir = "./dir"; $file_data = array(); $obraz = array(); $wartosc = array(); if( !( $d = opendir( $dir ) ) ) { die( "Nie mogę otworzyc katalogu" ); } while( $txt = readdir( $d ) ) { if( $txt != "." && $txt != ".." ) { $file_open = file( $dir."/".$txt ); $file = explode( ".txt", $txt ); $file = $file[0]; $file_data[$file] = $file_open[0]; } } closedir( $d ); arsort( $file_data ); while( list( $key, $value ) = each( $file_data ) ) { if( $i != 10 ) { $i++; $obraz[] = $key; $wartosc[] = $value; } } ?> [/php:1:a7e2b4c22a] |
|
|
16.05.2004, 19:22:38
Post
#10
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 13.05.2002 Skąd: Sanok Ostrzeżenie: (0%) |
dzieki wielkie ale dodałem do twojego poprzedniego skryptu małe conieco i działa teraz jak nalezy.
mysle ze jak wam pokaze o co mi chodziło to zrozumiecie [php:1:661684b08b]<?php $dir = "./liczniki"; // tu wpisujesz katalog w ktorym sa te pliki $file_data = array(); if( !( $d = opendir( $dir ) ) ) { die( "Nie mogę otworzyc katalogu" ); } while( $txt = readdir( $d ) ) { if( $txt != "." && $txt != "..") { $file_open = file( $dir."/".$txt ); $file = explode( ".txt", $txt ); $file = $file[0]; $file_open = $file_open[0]; $file_data[$file] = $file_open; } } closedir( $d ); arsort( $file_data ); foreach( $file_data as $key => $value ) { if( $i != 10 ) { echo "Plik nr. <b>$key</b> = <b>$value</b><br>"; $obraz[$i]=$key; $wartosc[$i]=$value; $i++; } } echo("<br><img src=obraz$obraz[1]><br>otwierany = = $wartosc[1] "); <br><img src=obraz$obraz[2]><br>otwierany = = $wartosc[2] <br><img src=obraz$obraz[3]><br>otwierany = = $wartosc[3] <br><img src=obraz$obraz[4]><br>otwierany = = $wartosc[4] <br><img src=obraz$obraz[5]><br>otwierany = = $wartosc[5] <br><img src=obraz$obraz[6]><br>otwierany = = $wartosc[6] <br><img src=obraz$obraz[7]><br>otwierany = = $wartosc[7] <br><img src=obraz$obraz[8]><br>otwierany = = $wartosc[8] <br><img src=obraz$obraz[9]><br>otwierany = = $wartosc[9] <br><img src=obraz$obraz[10]><br>otwierany = = $wartosc[10] ?>[/php:1:661684b08b] Wielkie dzięki ps. konkretnie to dodałem 27 i 29 linijke -------------------- co chciałes tu znalezc ?
|
|
|
16.05.2004, 20:16:50
Post
#11
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Tomaszów Lubelski Ostrzeżenie: (10%) |
A mój kod jest zły? Krótki i praktyczny.
-------------------- Don't worry, be happy!
Gadu-Gadu: 1687784 Darmowe komponenty na stronę WWW - licznik księga gości shoutbox chat kalendarz data godzina imieniny IP host przeglądarka odwiedzającego ankieta sonda |
|
|
16.05.2004, 20:37:21
Post
#12
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 13.05.2002 Skąd: Sanok Ostrzeżenie: (0%) |
Nie wiem, nawet nie sprawdzałem, od początku wydał mi sie za krutki Moze i działa ale juz za puźno, zainstalowałem tamten i działa ok
-------------------- co chciałes tu znalezc ?
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 09:25 |