Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Sortowanie po kolei wg długości
Beniooo
post 21.07.2012, 16:54:50
Post #1





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

Ostrzeżenie: (0%)
-----


Witam, jak posortować dane z pliku txt aby były posortowane rosnąco co do ich długości, każde słowo jest w innym wierszu
Dodam że plik ma ~36MB i 2777114 wierszy biggrin.gif


--------------------
Mój post rozwiązał Twój problem? Naciśnij co Ci szkodzi? ;-)
Go to the top of the page
+Quote Post
lobopol
post 21.07.2012, 17:06:09
Post #2





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


Akcja ma być wywołana jeden raz albo rzadko przez automat? Jeżeli tak to najprostsza metoda to przelecenie freadem po całym pliku i dodać je do plików zawierających konkretną długość plików. Jak to zrobimy połączyć pliki zaczynając od plików zawierających najkrótsze wyrazy. Po całej operacji usunąć pliki zawierające poszczególne długości.


--------------------
Go to the top of the page
+Quote Post
wNogachSpisz
post 21.07.2012, 17:21:25
Post #3





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Mysle ze warto wrzucić kazdy wiersz do bazy danych
Go to the top of the page
+Quote Post
CTRL
post 21.07.2012, 23:41:04
Post #4





Grupa: Zarejestrowani
Postów: 133
Pomógł: 8
Dołączył: 23.09.2011
Skąd: Stromiec

Ostrzeżenie: (0%)
-----


Popieram powyższego kolegę, możesz wtedy dodać sobie dodatkową komórkę czy już wykorzystałeś wyraz.


--------------------
Go to the top of the page
+Quote Post
toaspzoo
post 22.07.2012, 00:13:50
Post #5





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Nie ma takiej potrzeby

Otwierasz plik, dzielisz explodem na części, następnie sprawdzasz długości wyrazów i wrzucasz je do innej zmiennej tablicowej - sortujesz i wypisujesz.

Zaraz napiszę coś niecoś smile.gif

Napisałem, mimo, że to nie dział gotowców. proszę smile.gif

http://znajomek.unixstorm.org/sorter.php

Mam nadzieję, że wszystko jest jasne


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
sobol6803
post 22.07.2012, 00:22:02
Post #6





Grupa: Zarejestrowani
Postów: 115
Pomógł: 13
Dołączył: 19.06.2011
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


Cytat
Czwarty wyraz
Siódmy wyraz


Coś nie tak. smile.gif Polskie znaki FTW! tongue.gif


--------------------
  1. mysql_query("DROP DATABASE $_GET['dbname']");
Go to the top of the page
+Quote Post
toaspzoo
post 22.07.2012, 00:23:25
Post #7





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


?
Oba wyrazy mają taką samą długość, więc nie wiem o co chodzi sciana.gif


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
sobol6803
post 22.07.2012, 00:27:37
Post #8





Grupa: Zarejestrowani
Postów: 115
Pomógł: 13
Dołączył: 19.06.2011
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


Cytat(toaspzoo @ 22.07.2012, 01:23:25 ) *
?
Oba wyrazy mają taką samą długość, więc nie wiem o co chodzi sciana.gif


"wyraz" i "wyraz" może tak, ale "czwarty" i "siódmy" raczej nie. smile.gif


--------------------
  1. mysql_query("DROP DATABASE $_GET['dbname']");
Go to the top of the page
+Quote Post
toaspzoo
post 22.07.2012, 00:29:09
Post #9





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Poprawione, polskie znaki

Ten post edytował toaspzoo 22.07.2012, 00:30:24


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
sobol6803
post 22.07.2012, 00:31:36
Post #10





Grupa: Zarejestrowani
Postów: 115
Pomógł: 13
Dołączył: 19.06.2011
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


Cytat
Najdłuższy wyraz jaki kiedykolwiek zapisano na klawiaturze komputera.
to 69 znaków (ze spacjami i kropką), a nie 71. Widać polskie znaki mają długość 2.


--------------------
  1. mysql_query("DROP DATABASE $_GET['dbname']");
Go to the top of the page
+Quote Post
toaspzoo
post 22.07.2012, 00:41:36
Post #11





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Tak smile.gif

Okej, teraz działa - plik ANSI


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
sobol6803
post 22.07.2012, 00:49:00
Post #12





Grupa: Zarejestrowani
Postów: 115
Pomógł: 13
Dołączył: 19.06.2011
Skąd: Ruda Śląska

Ostrzeżenie: (0%)
-----


Cytat(toaspzoo @ 22.07.2012, 01:41:36 ) *
Tak smile.gif

Okej, teraz działa - plik ANSI


Pozostał tylko tag meta do ustawienia i będzie git. smile.gif


--------------------
  1. mysql_query("DROP DATABASE $_GET['dbname']");
Go to the top of the page
+Quote Post
toaspzoo
post 22.07.2012, 01:21:07
Post #13





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Dobra, dopisze już go sobie user biggrin.gif


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
lobopol
post 22.07.2012, 08:14:14
Post #14





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


toaspzoo genialne rozwiązanie tylko bardzo niewydajne wymagające sporo większej mocy niż podane przeze mnie. Nie ma to jak zrobić tablice z 2777114 wierszy i na niej puścić sortowanie i dodatkowo
  1. for($i=0;$i<count($file_lines);$i++)

Nie wiem czy można to zrobić w gorszy sposób


--------------------
Go to the top of the page
+Quote Post
redeemer
post 22.07.2012, 09:04:13
Post #15





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Kod
cat input.txt | awk '{print length,$0}' | sort -n | cut -d " " -f 2 > output.txt


--------------------
Go to the top of the page
+Quote Post
wNogachSpisz
post 22.07.2012, 12:09:46
Post #16





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Pragnę zauważyć, że w MySQL od 17 lat zespól wspaniałych fachowców pracuje nad tworzeniem i optymalizowaniem między innymi funkcji sortujących. Wy chcecie to przebić w 15 minut przy pomocy explode..
Łatwo zgadniąć co się lepiej sprawdzi.
Go to the top of the page
+Quote Post
toaspzoo
post 22.07.2012, 12:13:13
Post #17





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Tylko, załóżmy, że użytkownik będzie edytował plik bezpośrednio na maszynie, nie przez skrypt...
Ponowne wgrywanie do bazy mija się z celem


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
wNogachSpisz
post 22.07.2012, 12:20:27
Post #18





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Co rozumiesz przez "mija się z celem"?

Myśle że to w ogóle dziwna sprawa aby przetwarzać plik tekstowy o rozmiarze 36MB wiersz po wierszu łącznie blisko 3 miliony. Chciałbym wiedzieć czemu to ma służyć w szerszej perspektywie.

Strzelam że tym plikiem jest słownik skrabli tongue.gif

Ten post edytował wNogachSpisz 22.07.2012, 12:24:44
Go to the top of the page
+Quote Post
Beniooo
post 22.07.2012, 14:15:42
Post #19





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

Ostrzeżenie: (0%)
-----


Taa, plik ze słowami, bedzie mi służył do programu na stronie wink.gif


--------------------
Mój post rozwiązał Twój problem? Naciśnij co Ci szkodzi? ;-)
Go to the top of the page
+Quote Post
wNogachSpisz
post 22.07.2012, 14:17:11
Post #20





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Dlaczego zatem nie umieścić go do bazie danych?
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 14.07.2025 - 14:13