Не могу вытащить строки.

Тема в разделе "Perl программирование", создана пользователем Stan777, 23 янв 2007.

Статус темы:
Закрыта.
  1. Stan777

    Stan777 Гость

    Не могу вытащить строки начинающиеся с ARGS='... и зканчивающиеся ' как это сделать ?
    делал так
    $flag=0;
    while (<Стрим_ФАЙЛ>){
    chomp($_);
    if($_ =~ /(ARGS=)\S/){
    $flag=1;
    push @MASS, $';
    }
    if($flag=1){
    push @MASS, $_;
    }
    if($_ eq "'"){
    $flag=0;
    exit;
    }
    }
    Это Не работает почему ?
    в @MASS записывается все, а мне нужно только от ARGS='... до ' как это сделать, не пойму.
     
  2. Stan777

    Stan777 Гость


    мда опять пришлось делость по сишному.
    $flag=0;

    for($i=0;$i<=scalar(@R);$i++){
    if($R[$i] =~ /(ARGS=)\S/){
    $flag=2;
    }
    if($flag>0){
    push @MASS,$R[$i];
    if($R[$i] =~ /(')/){
    $flag--;
    print $i."here:".$R[$i]."\n";
    }
    }

    }

    И все в шоколаде. :), только осталась одна проблема как быть с
    ARGS=' aaaaaaaaaaa
    .............................
    ..............................
    wwwwwwwwwwwww'
    только меня не устраивает ARGS=' и wwwwwwwwwwwww' в конце что делать ?
    мне нужно удалять все до символа если он не последний и сам символ если он последний как это сделать ? Может кто знает ?
     
  3. zugr

    zugr Гость

    Код (Text):
    $multiline = "";
    while(<>) {
    if (/^\s*ARGS=\S/ .. /\"\s*$/) {
    $multiline .= $_
    } else {
    if ($multiline) {
    push @MASS, $multiline;
    $multiline = "";
    }
    }
    }
    if ($multiline) {
    push @MASS, $multiline;
     
  4. Stan777

    Stan777 Гость

    а я к предыдущему коду еще это дописал :).

    Код (Text):
    @tin= split(//,$MASS[$#MASS]);
    pop(@tin);                                         
    $MASS[$#MASS]= join "",@tin;
    Чтобы удалить последний симбол :).
     
  5. Stan777

    Stan777 Гость

    а я к предыдущему коду еще это дописал :).

    Код (Text):
    @tin= split(//,$MASS[$#MASS]);
    pop(@tin);                                         
    $MASS[$#MASS]= join "",@tin;
    Чтобы удалить последний симбол :).
     
  6. _serg_

    _serg_ Гость

    Код (Text):
    while(<FILE>) {
    next if $_ !~ /^\s*ARGS='/;
    next if $_ !~ /'\s*$/s;
    # сделать что-нить с $_ - она ща начинается с /\s*ARGS='/ и заканчивается '\s*$
    }

    Чтобы удалить последний пробельный символ:
    Код (Text):
    $str =~ s/\s+$//s;
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей