HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ФИНАНСОВЫЕ ЗАДАЧИ/СОЦИАЛЬНЫЕ СЕТИ > Freelance - О Работе
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Заменить слова рандомно
  #1  
Старый 26.03.2010, 05:45
skagen2
Новичок
Регистрация: 09.03.2010
Сообщений: 18
С нами: 8513336

Репутация: 2
По умолчанию Заменить слова рандомно

Имеется текст, пример:

"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"
"двести килограмм картофеля сняли"

- именно с такими повторениями. Так вот, нужно чтобы каждое слово "картофеля" было заменено рандомно (произвольно)...
и должно получится что-то типо:

"двести килограмм картофеля сняли"
"двести килограмм фываавааа сняли"
"двести килограмм ывафыпрл сняли"
"двести килограмм упцуйцу сняли"
"двести килограмм ыпвпфыпвп сняли"
и т.п... думаю, смысл понятен=)))))))))


В общем, кто возьмётся и за какую плату=)) нужен такой вот автозаменщик-) или подскажите, где воспользоваться)
Благодарю!

ICQ#: 640-000-342

Последний раз редактировалось skagen2; 26.03.2010 в 05:49..
 
Ответить с цитированием

  #2  
Старый 26.03.2010, 09:09
KaE
Новичок
Регистрация: 27.09.2009
Сообщений: 28
С нами: 8747874

Репутация: 0
По умолчанию

Набросал тут на Perl немного:

#!/usr/bin/perl
use strict;

use Getopt::Long;
my $source_file = "";
my $set_of_world = "";
my $result_file;
my @set_of_world = ();

GetOptions("source=s" => \$source_file,
"set=s" => \$set_of_world,
"result=s" =>\$result_file);

unless ($source_file && $set_of_world ) {
Usage();
}

open(fd_set, "$set_of_world");
while(<fd_set>) {
chomp $_;
push @set_of_world, $_;
}
close(fd_set);

open(fd_source, "$source_file") or die "Can't open $source_file: $!\n";
if(defined($result_file)) {
open(fd_result, ">$result_file");
}
while(<fd_source>) {
chomp $_;
my($a, $b, $c, $d) = split(' ', $_);
if(defined($result_file)) {
print fd_result "$a $b ".$set_of_world[rand @set_of_world]." $d\n";
}
else {
print "$a $b ".$set_of_world[rand @set_of_world]." $d\n";
}
}
if(defined($result_file)) {
close(fd_result);
}
close(fd_source);

sub Usage() {
print "Usage: perl ./script.pl --source=source.txt --set=set.txt [--result=result.txt]";
exit 0;
}
 
Ответить с цитированием

  #3  
Старый 26.03.2010, 13:59
skagen2
Новичок
Регистрация: 09.03.2010
Сообщений: 18
С нами: 8513336

Репутация: 2
По умолчанию

А что скачать - не подскажете?
 
Ответить с цитированием

  #4  
Старый 26.03.2010, 14:01
TRX.new
Участник форума
Регистрация: 27.04.2009
Сообщений: 189
С нами: 8968720

Репутация: 69
По умолчанию

ActivePerl, скачай и установи.. потом создай файл name.pl .. и запускай Пуск -> Выполнить -> cmd .. там пиши путь до скрипта и жми enter
 
Ответить с цитированием

  #5  
Старый 26.03.2010, 14:07
KaE
Новичок
Регистрация: 27.09.2009
Сообщений: 28
С нами: 8747874

Репутация: 0
По умолчанию

Качаете ActivePerl . Ставите. Копируете скрипт отсюда. В файлике source.txt - то, что надо поменять. В файле set.txt - набор рандомных слов. Кладете все это файло в одну папку со скриптом и запускаете:

perl script.pl --source=source.txt --set=set.txt

На консоль выпадет результат.
Если хотите, чтобы резалт падал в файл, то запускаете вот так:
perl script.pl --source=source.txt --set=set.txt --result=result.txt

Все!)
 
Ответить с цитированием

  #6  
Старый 26.03.2010, 14:27
Fepsis
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
С нами: 9288386

Репутация: 536


По умолчанию

А зачем тут что-то заменять, если можно сразу генерировать то, что тебе нужно..?!
Код:
#!/usr/bin/perl   


$n = 20; 			# нужное количество строк
$txt_do = 'двести килограмм';	# текст до рандомного слова
$txt_posle = 'сняли';		# текст после рандомного слова


open(OUT, "> out.txt");

for($i = 1; $i <= $n; $i++)
     {
	$rndword = join('', map(('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ь','ы','ъ','э','ю','я')[rand(33)], (1..7)));
	print OUT $txt_do.' '.$rndword.' '.$txt_posle."\n";
     }

close(OUT);
Результат:
Код:
двести килограмм фцддонм сняли
двести килограмм мчемямц сняли
двести килограмм цьэфэтю сняли
двести килограмм иъашывс сняли
двести килограмм изщюциж сняли
двести килограмм вшдтькъ сняли
двести килограмм зуёцпфж сняли
двести килограмм юмьцёць сняли
двести килограмм сэёсорй сняли
двести килограмм бгхрчьх сняли
двести килограмм нвжншэв сняли
двести килограмм епюялди сняли
двести килограмм гысъпщг сняли
двести килограмм нзлшэжю сняли
двести килограмм ъчёлвъс сняли
двести килограмм нжздеыл сняли
двести килограмм нлвлъеъ сняли
двести килограмм геяуалю сняли
двести килограмм еъёъйоы сняли
двести килограмм шиийзюэ сняли
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Названы самые опасные слова Интернета 1ce666 Мировые новости. Обсуждения. 11 04.06.2009 22:13
В Рунете все в порядке со свободой слова dinar_007 Мировые новости. Обсуждения. 1 04.05.2006 11:29



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT ™ © 2001- Antichat Kft.