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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
toaspzoo
post
Post #21





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


Można umieścić, pod warunkiem, że jeśli plik będzie ulegał edycji i będzie automatycznie wrzucany do sql za każdym razem.
W innym wypadku, gdy plik nie będzie w ogóle modyfikowany, można wrzucić gotowy, posortowany smile.gif


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

LS Easter egg <
Go to the top of the page
+Quote Post
lobopol
post
Post #22





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

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


toaspzoo nie zaciemniaj mu. Skoro ma to być używane w jakimś skrypcie to zdecydowanie baza. Przecież nie będzie przy każdej akcji przeszukiwał albo nim manipulował. Wgrać do bazy i kolejne wyrazy pchać już bezpośrednio do bazy. Wiadomo przecież, że na stronie nie będzie wyświetlał ani nie będzie operował na wszystkich 3 milionach wyrazów.


--------------------
Go to the top of the page
+Quote Post
toaspzoo
post
Post #23





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


Tego nie wiemy, może chce posortować plik i zwrócić go w formie pliku...


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

LS Easter egg <
Go to the top of the page
+Quote Post
lobopol
post
Post #24





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

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


toaspzoo:
Cytat
Taa, plik ze słowami, bedzie mi służył do programu na stronie


--------------------
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 Aktualny czas: 20.08.2025 - 02:56