Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sortowanie plików
SonGoace
post 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 ?
Go to the top of the page
+Quote Post
Majdan
post 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%)
X----


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ę.


--------------------
Go to the top of the page
+Quote Post
SonGoace
post 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 sad.gif mozecie mi cos takiego napisać - jeśli to nie duży problem - prosze to dla mnie ważne !


--------------------
co chciałes tu znalezc ?
Go to the top of the page
+Quote Post
BzikOS
post 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 smile.gif
Go to the top of the page
+Quote Post
SonGoace
post 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 sad.gif


--------------------
co chciałes tu znalezc ?
Go to the top of the page
+Quote Post
Liko
post 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.
Go to the top of the page
+Quote Post
SonGoace
post 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 smile.gif


--------------------
co chciałes tu znalezc ?
Go to the top of the page
+Quote Post
Majdan
post 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%)
X----


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]


--------------------
Go to the top of the page
+Quote Post
Liko
post 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]
Go to the top of the page
+Quote Post
SonGoace
post 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 smile.gif

[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 smile.gif

ps. konkretnie to dodałem 27 i 29 linijke smile.gif


--------------------
co chciałes tu znalezc ?
Go to the top of the page
+Quote Post
Majdan
post 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%)
X----


A mój kod jest zły? Krótki i praktyczny.


--------------------
Go to the top of the page
+Quote Post
SonGoace
post 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 smile.gif Moze i działa ale juz za puźno, zainstalowałem tamten i działa ok smile.gif


--------------------
co chciałes tu znalezc ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 09:25