Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

выделение случайной строки из большого файла. (alt)
Author Message
alt
Заглянувший



Joined: 25 Sep 2005
Posts: 6
Карма: 0
   поощрить/наказать

Location: internet

PostPosted: Fri Mar 24, 2006 6:03 pm (написано за 4 минуты 25 секунд)
   Post subject: выделение случайной строки из большого файла.
Reply with quote

такой вопрос.
есть большой (около 5 мб, точнее не известно)файл. надо выделить из файла 1 СЛУЧАЙНУЮ строку которая подходит по некому условию(если точнее, то по длине).
может кто может пособветовать как это реализовать?
может народ придумал какую то библиотеку на php для работы с большими файлами?

спасибо.
Back to top
View user's profile Send private message
Владимир Хоменко
Участник форума



Joined: 11 Jun 2004
Posts: 427
Карма: 42
   поощрить/наказать

Location: Николаев, Украина

PostPosted: Fri Mar 24, 2006 6:29 pm (спустя 25 минут; написано за 56 секунд)
   Post subject:
Reply with quote

что есть строка?

последовательность символов, заканчивающийся переводом каретки (\n), или просто последовательность символов?
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Fri Mar 24, 2006 7:06 pm (спустя 37 минут; написано за 1 минуту 12 секунд)
   Post subject:
Reply with quote

alt
кажется, на этом форуме (или на xPoint ? ) была тема как раз по вашему вопросу.
Back to top
View user's profile Send private message
alt
Заглянувший



Joined: 25 Sep 2005
Posts: 6
Карма: 0
   поощрить/наказать

Location: internet

PostPosted: Fri Mar 24, 2006 7:10 pm (спустя 3 минуты; написано за 1 минуту 22 секунды)
   Post subject:
Reply with quote

Владимир Хоменко wrote:
последовательность символов, заканчивающийся переводом каретки (\n), или просто последовательность символов?
\r\n
простой ANSI текстовик.
Back to top
View user's profile Send private message
y0prst
Участник форума



Joined: 20 May 2004
Posts: 101
Карма: 9
   поощрить/наказать

Location: Вологда

PostPosted: Fri Mar 24, 2006 9:39 pm (спустя 2 часа 29 минут; написано за 4 минуты 57 секунд)
   Post subject:
Reply with quote

alt
Если строки в файле короткие, то такой алгоритм:
Храним одну выбранную строку. Она по ходу цикла будет меняться.
1) с вероятностью 100% выбираем первую строку
2) с вероятностью 50% выбираем вторую строку
...
k) с вероятностью 1/k выбираем k-ю строку.
...
n) с вероятностью 1/n выбираем n-ю строку.

В результате вероятности будут ровно "размазаны" по всем строкам. Тут еще нужно написать функцию, читающую одну строку из файла.

Если же в файле может быть какая-нибудь вредная строка на полфайла, то лучше при первом чтении считать количество строк (читай - последовательностей \r\n), выбирать случайный номер строки, при втором чтении - искать выбранную строку.
Back to top
View user's profile Send private message
Владимир Хоменко
Участник форума



Joined: 11 Jun 2004
Posts: 427
Карма: 42
   поощрить/наказать

Location: Николаев, Украина

PostPosted: Sat Mar 25, 2006 2:07 am (спустя 4 часа 27 минут; написано за 7 минут 13 секунд)
   Post subject:
Reply with quote

y0prst wrote:
altТут еще нужно написать функцию, читающую одну строку из файла.
Есть такая функция fgets называется.

Вот я тут вот начертал некое подобие алгоритма, однако не буду выкладывать до завтра, надеюсь на ваше трудолюбие : алгоритм простой.
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Sat Mar 25, 2006 2:23 pm (спустя 12 часов 15 минут; написано за 7 секунд)
   Post subject:
Reply with quote

alt
вот, нашел: xpoint.ru/forums/programming/theory_algorythms/thread/25194.xhtml
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML