PDA

Просмотр полной версии : нужна ваша помощь!


AviatorDaisy
06.08.2009, 16:12
Нужно написать программу или скрипт!
Чтобы убирала повротные строки в тхт документе
111"№дэ
111"№дэ
111"№дэ
нужно,чтобы в готовом варианте оставалась только одна строка!
Софт должен работать достаточно быстро
Отрабатывать надо по несколько лямов строк за раз,чтобы система при этом не висла
Ещё фукция
Ввёл символы и софт оставляет только те строки в которых содержатся эти символы!
Пример : ввожу №
111"вадэ
111"89дэ
111"№дэ

оставляет только 111"№дэ

Аська на аватаре!

Sharky
06.08.2009, 16:23
http://ru.php.net/manual/en/function.array-unique.php

rcc0023
06.08.2009, 16:33
$text='111"№дэ
111"№дэ
111"№дэ
131"№дэ
111"№дэ
161"№дэ';

$array=explode("\r\n",$text);

$array_nodubl=array_unique($array);

$finish_text= implode("\r\n", $array_nodubl);

echo $finish_text;

m0Hze
06.08.2009, 16:38
Есть готовые.Хоть Raptor :)

Sharky
06.08.2009, 16:45
Есть готовые.Хоть Raptor :)
тут проще написать чем готовые искать

AviatorDaisy
06.08.2009, 16:47
Есть готовые.Хоть Raptor :)

Ссылочку скинь плз,если не затруднит

AviatorDaisy
06.08.2009, 16:48
нужно что-то удобное,желательно десктоп

MaikTeeMan
06.08.2009, 16:53
Когда-то давно тоже нужен был 8)

<?php
#Вот этот скрипт очень шустро удаляет просто дубли.

$file="1.txt";
$_file=file($file);
$_file=array_values(array_unique($_file));

$fp=fopen($file,"w+");
for($i=0;$i<count($_file);$i++)
{
flush();
fputs($fp,$_file[$i]);
}

echo "done<br>"; flush();
fclose($fp);

?>

Pashkela
06.08.2009, 16:57
Возьмите словарь на два гига и вы сразу поймете, что все ваши проги - фуфло с дикими ограничениями

cupper
06.08.2009, 22:43
нельзя невкоем случа все данные из файла переносить в ОЗУ, ибо как сказал Pashkela
взять файл на 2гаги и плакали вы со своими 1г ОЗУ.
Можно например брать строчку из исходного файла, проверять нетли ее в выходном файле, если нет то писать туда. Но миллионная строчка будет в худшем случа сравниваться 99999 строчками в выходном файле... короче факториал будет у вас, время работы такова приложение будет O(n)=n! где n число сточек в исходном файле. Зато ограничения на оперативку и входной файл нету. Ничего более умней придумать несмог.
Выкладываем свои идеи. Думаю если найдеться хороший алгоритм, многие его закодят, ибо полезная штука будет.

ErrorNeo
06.08.2009, 22:56
cupper - в теории это работает, на практике - слишком медленно.
Гиговый файл будет обрабатываться несколько лет.
Это если на Си писать. Если на пыхе то несколько десятков лет xD

Если кому-то реально нужно удаление дублей из многогиговых файлов - стукните в аську - скину свою прогу на делфи.
Работает немного через жопу - потому что лень доделывать, но 5 гигабайт текстовиков превращает в один гиговый текстовик без дублей за 10-15 часов.

Писал для себя и друзей для объединения и создания мегсловарей под брут.
Хотя, прямо скажем, не думаю, что она кому-то особо нужна.

cupper
06.08.2009, 23:13
алгоритм ?

ErrorNeo
06.08.2009, 23:30
800+ строк кода.
http://cs4116.vkontakte.ru/g10796561/a_93784ded.jpg

картинка примерно отображает суть алгоритма.
минихайд 500+ на сурсы, прогу кину любому кому реально нужна.
Ни плюсоф нифига ненадо, просто в паблик кидать желания нет)
Слишком долго я с ней *ался)
А все равно знаю, что почти никто не заценит.

cupper
07.08.2009, 12:23
да мне не прога нужна, мне алгоритм интересен. Хоть 10000 строк кода, в основе все равно должен лежать какойто алгоритм. А из исходников я наврядли смогу что либо понять, так что мне их ненадо

mailbrush
07.08.2009, 13:28
Хм.. Аж самому интерестно стало :) Через часик попробуй написать.