Автор Тема: Помогите плиzzzzzz....  (Прочитано 7585 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
Помогите плиzzzzzz....
« : 12 Сентября 2001, 19:25:52 »
Народ помогите я уже совсем запарился:
1 Нужно прочитать файлу построчно...
2 Потом найти строки удовлетворяющие одвум или более параметров
3 Записать в переменную все эти строки
Ну вроде и все...
:confused: :confused:
Помогите плиз...
А затем разобрать каждую строкус разделителем \'>>\' на слова и вывести в HTML форму :rolleyes:
.::dO_ob::.

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Помогите плиzzzzzz....
« Ответ #1 : 12 Сентября 2001, 23:35:14 »
в чем затруднение или ты хош чтоб за тебя это все написали?
ну, будем исповедоваться?

Оффлайн lodevar

  • Сеньор-Помидор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 757
  • +0/-0
  • 2
    • Просмотр профиля
    • http://lodevar.hut.ru
С наилучшими пожеланиями. LODEVAR

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
Да не ненадо
« Ответ #3 : 13 Сентября 2001, 17:27:00 »
Да не, за меня писать ненадо... :D Я уже сам решил проблему, :o у меня теперь новая - мне нужно создать временный файл из которого потом можно было бы прочитать построчно, а после его закрытия он удалялся (при нормальном и сбойном завершение программы)
А да у меня еще после заполнения формы новая страница не открываеться а появляеться на той же странице что и форма, только сверху.:eek:
.::dO_ob::.

Оффлайн Ilya

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
    • www.svd.ru
Помогите плиzzzzzz....
« Ответ #4 : 13 Сентября 2001, 17:33:01 »
Нефига не понял :confused:

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
Вроде понятно пишу...
« Ответ #5 : 13 Сентября 2001, 17:35:14 »
Какая именно часть моей писанины тебе непонятна?:D
.::dO_ob::.

Оффлайн Ilya

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
    • www.svd.ru
Помогите плиzzzzzz....
« Ответ #6 : 13 Сентября 2001, 18:02:30 »
Ты код сюда пиши, понятней будет о чем разговариваем.

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
Хмммм....
« Ответ #7 : 13 Сентября 2001, 23:26:00 »
Если бы я знал код я бы неспрашивал....:cool:
.::dO_ob::.

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
Вот вам и код.....
« Ответ #8 : 14 Сентября 2001, 08:52:41 »
:D
open IN,">new.lst";
@wrmess = ;
print IN $test;
close IN;
   
    open IN, "new.lst";
    my @mess=$test;
    my @mess=;
   close IN;

во вот вместо этого new.lst должен быть временный файл, который потом откроеться. А когда с ним закончат работать или будет прервана работа он удалялься . Да имя у него далжно быть уникальным  :mad:
.::dO_ob::.

Оффлайн Ilya

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
    • www.svd.ru
Re: Вот вам и код.....
« Ответ #9 : 14 Сентября 2001, 12:23:34 »
open (IN,">new.lst");
@wrmess = ; # Не получится, файл открыт только для записи, вернее для перезаписи.
print IN $test; # Заменяешь содержимое файла на $test
close IN;

# Теперь ты имеешь файл в котором находится содержимое $test и пустой масив @wrmess

open (IN, "new.lst");
my @mess=$test; # Зачем это :confused:
my @mess=; # В @mess содержимое твоего файла
close IN;

# Теперь ты имеешь:
Пустой масив @wrmess
Переменную $test
Файл в котором хранится переменная $test

Короче, ты сделал вот это:

@mess = $test;
open (IN,">new.lst");
print IN $test;
close(IN);

Опиши свою программу. Для чего она? Что это?
Мне кажеться, что все можно сделать намного проще;)

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
вот тебе и сома программа...
« Ответ #10 : 14 Сентября 2001, 14:13:20 »
#!c:/usr/local/bin/bin/perl.exe
###########################
# Аренда v1.0b            #
# Copyright 2001, nobody  #
# contacts:               #
#   meni@mail.ru          #
#   ICQ 71461805          #
###########################
print "Content-Type: text/html\\nPragma: no-cache\\nExpires: Tue, 1 Jan 1980 00:00:00 GMT\\n\\n";
print "\\n";
$config="conf";
&ReadCfg;
&getFORM;
&Check;

($bpath,$_) = split(/;/,$CFG{\'bpath\'});

&Step1 if $FORM{\'ac\'} eq \'s1\';
&Search;

sub Search{
   open IN, $CFG{\'search1htm\'};
    print ;
    close IN;
};
 
sub CheckForm{
   my $serr=$CFG{\'joinwrong\'};
  my @swr=split(/->/,$CFG{\'searchwrongwords\'});
  $serr = $serr . " @swr[0] " if $FORM{\'OP\'} eq \'\';
  $serr = $serr . " @swr[1] " if $FORM{\'WHAT\'} eq \'\';
  $serr = $serr . " @swr[2] " if $FORM{\'REGION\'} eq \'\';
  $serr = $serr . " @swr[3] " if $FORM{\'PRICE_1\'} eq \'\';
  if($serr ne $CFG{\'joinwrong\'}){
     undef $/;
    open cfIN, $CFG{\'search1htm\'};
    my $mess = ;
    close cfIN;
     $/="\\n";
    $mess =~ s//$serr/g;
    foreach $i (keys %FORM){
      $mess =~ s/>/ value="$FORM{$i}">/g;
    };
    print $mess;
    exit;
  }
};
sub Step1{
   &CheckForm;
   open IN,$CFG{\'infosd\'};
    while(){
   foreach $pole ($_){
     $test .= $pole if ($pole =~ /$FORM{\'OP\'}/) && ($pole =~ /$FORM{\'WHAT\'}/);
   }
   }
   close (IN);
open IN,">new.lst";
@wrmess = ;
print IN $test;
close IN;
   
    open IN, "new.lst";
    my @mess=$test;
   my @mess=;
   close IN;
      foreach (@mess){
    $spl = $CFG{\'inforec\'};
      ($mrOP, $mrWHAT, $mrREGION, $mrTD, $mrADRES, $mrN_D, $mrK_D, $mrNKOM, $mrKOM, $mrET, $mrW_ET, $mrS, $mrKH, $mrMETRES, $mrTEL, $mrLIFT, $mrBAL, $mrGW, $mrSAN, $mrSTRADDR, $mrWISH, $mrNOTE, $mrPRICE, $mrSUBJ, $mrPHONE, $mrid) = split (/>>/, $_);
    $spl =~ s/--OP--/$mrOP/g;
   $spl =~ s/--WHAT--/$mrWHAT/g;
    $spl =~ s/--REGION--/$mrREGION/g;
    $spl =~ s/--TD--/$mrTD/g;
    $spl =~ s/--ADRES--/$mrADRES/g;
   $spl =~ s/--N_D--/$mrN_D/g;
    $spl =~ s/--K_D--/$mrK_D/g;
    $spl =~ s/--NKOM--/$mrNKOM/g;
    $spl =~ s/--KOM--/$mrKOM/g;
    $spl =~ s/--ET--/$mrET/g;
    $spl =~ s/--W_ET--/$mrW_ET/g;
    $spl =~ s/--S--/$mrS/g;
    $spl =~ s/--KH--/$mrKH/g;
    $spl =~ s/--METRES--/$mrMETRES/g;
    $spl =~ s/--TEL--/$mrTEL/g;
    $spl =~ s/--LIFT--/$mrLIFT/g;
    $spl =~ s/--BAL--/$mrBAL/g;
    $spl =~ s/--GW--/$mrGW/g;
    $spl =~ s/--SAN--/$mrSAN/g;
    $spl =~ s/--STRADDR--/$mrSTRADDR/g;
    $spl =~ s/--WISH--/$mrWISH/g;
    $spl =~ s/--NOTE--/$mrNOTE/g;
    $spl =~ s/--PRICE--/$mrPRICE/g;
    $spl =~ s/--SUBJ--/$mrSUBJ/g;
    $spl =~ s/--PHONE--/$mrPHONE/g;
    $spl =~ s/--id--/$mrid/g;
    $raitr = $raitr . $spl;
};
 
  open IN, $CFG{\'infohtml\'};
  my @rhtml = ;
  close IN;
  foreach (@rhtml){
    $_ =~ s//$raitr/g;
    print $_;
  };
};

sub Check {
  my ($i);
  foreach $i (keys %FORM){
   if ($i ne \'password\'){
    $FORM{$i} =~ s/    $FORM{$i} =~ s/>/>/g;
    $FORM{$i} =~ s/\\n//g;
   }
  }
}

sub ReadCfg {
  my (@cfg, $cfg);
  open IN, $config || die "trouble open $config";
  @cfg=;
  close IN;
  foreach $cfg (@cfg){
    if (substr($cfg,0,1) ne \'#\') {
      chomp ($cfg);
      ($name,$value) = split(/=/,$cfg,2);
      $CFG{$name}=$value;
    }
  }
};

sub getFORM {
   read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
   if (length($ENV{\'QUERY_STRING\'})>0) {$buffer = $buffer . "&". $ENV{\'QUERY_STRING\'} };
  @pairs = split(/&/, $buffer);
 
  foreach $pair (@pairs) {
      ($name, $value) = split(/=/, $pair);
      $value =~ tr/+/ /;
      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
      $FORM{$name} = $value;
  };
};;)
.::dO_ob::.

Оффлайн Ilya

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
    • www.svd.ru
Помогите плиzzzzzz....
« Ответ #11 : 14 Сентября 2001, 15:00:33 »
Файл конфигураций можно подключать так:
require "conf";

в sub getFORM замени на это, работать лучше будет ;)
------------------------------------------------
read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);
   $name =~ tr/+/ /;
   $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $name =~ s///g;
   $name =~ s/<([^>]|\\n)*>//g;
   $value =~ tr/+/ /;
   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $value =~ s///g;
   $value =~ s/<([^>]|\\n)*>//g;
   $FORM{$name} = $value;}
$act = $FORM{act};
------------------------------------------------

Она у тебя кроме Internal Server Error что-нибудь покзывала?
Попробй писать каждый \'sub\' отдельно, а после проверки включать его в основной код.

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
Она вроде как работает....
« Ответ #12 : 14 Сентября 2001, 15:23:06 »
Она рабочая, там только есть пара маленьких глюков и все....
Например когда нажимаешь субмит в форме, то она не открывает HTML с отчетом, а выводит его наверх...
http://www.razgulay.ru/cgi/leaze/info.pl :confused: Вот где этот глюк....
.::dO_ob::.

Оффлайн Ilya

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
    • www.svd.ru
Помогите плиzzzzzz....
« Ответ #13 : 14 Сентября 2001, 16:48:11 »
У меня getFORM выдает Internal Server Error.
Это означает, что твой скрипт не может получить и обработать переданные ему данные!

Оффлайн nobody

  • вроде как одушевленный
  • Постоялец
  • ***
  • Сообщений: 218
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.n0b0dy.ru
Странно
« Ответ #14 : 14 Сентября 2001, 17:16:46 »
Но он ведь работает....:rolleyes:
.::dO_ob::.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28