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

  • Автор темы Stan777
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

Stan777

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

Stan777

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

мда опять пришлось делость по сишному.
$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' в конце что делать ?
мне нужно удалять все до символа если он не последний и сам символ если он последний как это сделать ? Может кто знает ?
 
Z

zugr

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

Stan777

#4
Код:
$multiline = "";
while(<>) {
if (/^\s*ARGS=\S/ .. /\"\s*$/) {
$multiline .= $_
} else {
if ($multiline) {
push @MASS, $multiline;
$multiline = "";
}
}
}
if ($multiline) {
push @MASS, $multiline;
а я к предыдущему коду еще это дописал :).

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

Stan777

#5
Код:
$multiline = "";
while(<>) {
if (/^\s*ARGS=\S/ .. /\"\s*$/) {
$multiline .= $_
} else {
if ($multiline) {
push @MASS, $multiline;
$multiline = "";
}
}
}
if ($multiline) {
push @MASS, $multiline;
а я к предыдущему коду еще это дописал :).

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

_serg_

#6
Не могу вытащить строки начинающиеся с ARGS='... и зканчивающиеся ' как это сделать ?
Код:
while(<FILE>) {
next if $_ !~ /^\s*ARGS='/;
next if $_ !~ /'\s*$/s;
# сделать что-нить с $_ - она ща начинается с /\s*ARGS='/ и заканчивается '\s*$
}

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