Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 15.09.2008, 01:38   #1
Эксперт
 
Регистрация: 27.01.2007
Сообщений: 1,573
Вес репутации: 281
polgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущее
По умолчанию Выборка однотипного из массива

Отдельного раздела по программам нет, поэтому в Курильню:

Имеем массив словосочетаний, нужен инструмент для сортировки (или перемещения в отдельный файл) всех словосочетаний с заданным словом, с удалением перемещаемого массива со словом из общей текстовой базы

Рад бы в поиске найти, но как запрос сформулировать, хз
polgete вне форума   Ответить с цитированием
Старый 15.09.2008, 01:44   #2
Особый статус
 
Регистрация: 23.03.2008
Адрес: localhost
Сообщений: 2,594
Вес репутации: 322
Ufaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущее
Отправить сообщение для Ufaweb с помощью ICQ
По умолчанию

$array - исходный массив.
$word - искомое слово
PHP код:
$tmp_arr= array();
for(
$i=0$i<sizeof($array); $i++){
    if(!
preg_match("~\b$word\b~si"$array[$i])){
        
array_push($tmp_arr$array[$i]);
    }
    
$array[$i]= null;
}
$array$tmp_arr;
$tmp_arrnull
Ufaweb вне форума   Ответить с цитированием
Старый 15.09.2008, 02:47   #3
Эксперт
 
Регистрация: 27.01.2007
Сообщений: 1,573
Вес репутации: 281
polgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущее
По умолчанию

о весч, спасибо, а доработать до версии мона, чтобы кидаешь со скриптом txt файлик со словосочетаниями задаешь ключевик, а на выходе получаешь один файл со словосочетаниями с ключевиком, а второй с оставшимися словосочетаниями (без отобранных в первый файл)

Может уже что есть в паблике, потому и спрашиваю...
polgete вне форума   Ответить с цитированием
Старый 15.09.2008, 03:03   #4
Особый статус
 
Регистрация: 23.03.2008
Адрес: localhost
Сообщений: 2,594
Вес репутации: 322
Ufaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущее
Отправить сообщение для Ufaweb с помощью ICQ
По умолчанию

Цитата:
Сообщение от polgete Посмотреть сообщение
чтобы кидаешь со скриптом txt файлик со словосочетаниями задаешь ключевик, а на выходе получаешь один файл со словосочетаниями с ключевиком, а второй с оставшимися словосочетаниями (без отобранных в первый файл)
Эээ... По порядку: что, откуда, куда, где и при каких обстоятельствах?
Ufaweb вне форума   Ответить с цитированием
Старый 15.09.2008, 06:51   #5
Злой модератор
 
Аватар для Wink
 
Регистрация: 25.03.2007
Адрес: Deep forest
Сообщений: 5,343
Вес репутации: 503
Wink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущее
По умолчанию

С файликом вот так можно:
PHP код:
$array split("\n"trim(file_get_contents("words.txt"))); 
А дальше перебор массива как Ufaweb написал или через foreach
Wink вне форума   Ответить с цитированием
Старый 15.09.2008, 10:51   #6
Особый статус
 
Регистрация: 23.03.2008
Адрес: localhost
Сообщений: 2,594
Вес репутации: 322
Ufaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущееUfaweb - прекрасное будущее
Отправить сообщение для Ufaweb с помощью ICQ
По умолчанию

Цитата:
Сообщение от Wink Посмотреть сообщение
$array = split("\n", trim(file_get_contents("words.txt")));
PHP код:
$array file("words.txt"); 
уж тогда
Ufaweb вне форума   Ответить с цитированием
Старый 15.09.2008, 11:06   #7
Злой модератор
 
Аватар для Wink
 
Регистрация: 25.03.2007
Адрес: Deep forest
Сообщений: 5,343
Вес репутации: 503
Wink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущее
По умолчанию

уж тогда
PHP код:
$array file("words.txt"FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES); 
Wink вне форума   Ответить с цитированием
Старый 15.09.2008, 11:57   #8
Эксперт
 
Регистрация: 27.01.2007
Сообщений: 1,573
Вес репутации: 281
polgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущееpolgete - прекрасное будущее
По умолчанию

кароче, устроили тут программистский батл

имеем файл 1.txt в нем куча словосочетаний:
ключ1ключ2
ключ1ключ2ключ3
ключ2ключ3
ключ3

задаю скрипту ключ1

на выходе должны получиться два файла:

2.txt - с искомыми словосочетаниями, где содержиться ключ1
ключ1ключ2
ключ1ключ2ключ3

и 3.txt в котором будут содержаться остатки без ключ1
ключ2ключ3
ключ3

Всем спасибо
polgete вне форума   Ответить с цитированием
Старый 15.09.2008, 12:06   #9
Специалист
 
Регистрация: 01.08.2007
Сообщений: 256
Вес репутации: 209
grey скоро станет известен
Отправить сообщение для grey с помощью ICQ
По умолчанию

Типа того?

<?php

$data = file("1.txt");

$key = "ключ1";

$data1 = $data2 = array();

foreach ($data as $v)
{
if (stristr($v, $key)==true) $data1[] = $v;
else $data2[] = $v;
}

$fp = fopen ("2.txt", "w+");
fwrite ($fp, implode($data1));
fclose ($fp);

$fp = fopen ("3.txt", "w+");
fwrite ($fp, implode($data2));
fclose ($fp);

?>
grey вне форума   Ответить с цитированием
Старый 15.09.2008, 15:44   #10
Эксперт
 
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 249
boric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущее
По умолчанию

Ох, как же ужасно выглядит код на ПХП.
Гляньте, как это выглядит, например, на Питоне:

Код:
key =  "ключ1"
inp_file  = open("1.txt", "rt")
out_file1 = open("2.txt", "wt")
out_file2 = open("3.txt", "wt")

for line in  inp_file.readlines():
    if key in line:
        out_file1.write("\n")
    else:
        out_file2.write("\n")

inp_file.close()
out_file1.close()
out_file2.close()
А если работать надо с массивами, то можно и короче:

Код:
key =  "ключ1"
inp_array   = ['ключ1ключ2', 'ключ1ключ2ключ3', 'ключ2ключ3', 'ключ3']

out1 = [line for line in inp_array if key in line]
out2 = [line for line in inp_array if key not in line]
boric вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка сайтов из каталога Яндекса polonnik Вопросы от новичков 2 15.09.2008 18:15
Повышение цены, выборка ссылок для подтверждения metton Пожелания пользователей системы 1 04.02.2008 02:42
Выборка страниц по УВ/ПР Sasa Пожелания пользователей системы 16 27.11.2007 01:53


Часовой пояс GMT +3, время: 19:58.