|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Dugar Bayartuev 2:5008/26.21 09 Oct 2001 20:54:44 To : All Subject : проблема с поиском --------------------------------------------------------------------------------
Мне хочется онеметь!
А в небе танцует золото -
Приказывает мне петь.
(Осип Мандельштам)
Добрых дней и ночей вам, All!
Установил готовый скрипт, несколько его модифицировал... Hо есть одна трабла - в
скрипте устроен поиск по своей базе. Он работает только с латиницей, т.е. если
ищешь русское слово, то ничего как бы не находиться... Поскольку в перле я еще
не силен на столько, посмотрите исходник и может быть вам захочется мне
помочь...
ДДД=> Выдеpнул из Windows Clipboard <=ДДД
sub keyword_search {
my($r_super_cat,$r_keywords,$r_in) = @_;
my($output);
# For each database, we need to scan for key word hit
my $yeshits = "";
foreach $file (values %$r_super_cat) {
# Initialize
require "$datadir/$file.setup";
my $anyhit = "";
my $datafile = "$datadir/$file.txt";
my $r_data = readdata($datafile);
my $buffer;
$r_in->{'database'} = $file;
$j=0;
foreach (@category) {
$j++;
$category_list{$_} = $j;
}
# Get rid of the first line of database
# which just contains field names
my $fields = shift(@{$r_data});
chomp($fields);
my @link_fields = split(/\|/,$fields);
foreach $line (@{$r_data}) {
chomp $line;
my $hit = "";
foreach (@{$r_keywords}) {
if ($line =~ /\b$_\b/i) {
$hit = "yes";
$anyhit = "yes";
$yeshits = "something";
last;
}
}
if ($hit) {
&toggle_color();
my($r_rowdata) = {};
my @row = split(/\|/,$line);
foreach ($k=0; $k<@row; $k++) {
$r_rowdata->{$link_fields[$k]} = $row[$k];
}
$buffer .= "<tr bgcolor=\"$bgcolor\">\n";
$buffer .= list_record($r_rowdata,\@link_fields,\@list_fields,$r_in);
$buffer .= "</tr>\n";
}
}
if ($anyhit) {
my $temp_buffer .= qq~
<table border="0" cellspacing="2" cellpadding="3" width="100%">
<tr bgcolor="$bg_color{1}"><th colspan="4"><font face="$font_face{1}"
color="$font_color{1}" size="$font_size{1}">Поиск в категории $file</font>
</th></tr>
<tr bgcolor="$bg_color{1}">~;
foreach (@list_fields) {
$temp_buffer .= qq~
<th><font face="$font_face{1}"
color="$font_color{1}" size="$font_size{1}">$_</font></th>~;
}
$temp_buffer .= "<th> </th></tr>\n";
$buffer = $temp_buffer . $buffer . "</table>\n";
}
$output .= $buffer;
}
unless ($yeshits) {
$output = "<h3 align=\"center\">Вхождений не найдено. Попробуйте другое
ключевое слово.</h3>";
}
$output;
}
ДДД=> Game Over Windows Clipboard <=ДДД
За сим все, All...
...искренне ваш St.BURn,
бYе'ньки.
... люди как блохи, все чернеьнкие, все прыгают (c) М.Горький
---
* Origin: приветик всем (2:5008/26.21)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/32973bc364f2.html, оценка из 5, голосов 10
|