Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 проблема с поиском   Dugar Bayartuev   09 Oct 2001 20:54:44 
Архивное /ru.perl/32973bc364f2.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional