Schrift
[thread]12513[/thread]

Das erste Zeichen einer Zeile auslesen



<< >> 10 Einträge, 1 Seite
Gabriel
 2008-09-18 12:10
#114757 #114757
User since
2008-09-15
12 Artikel
BenutzerIn
[default_avatar]
Guten Morgen!

Hat jemand ne Idee, wie ich die erste Zeile einer Datei auf das erste Zeichen überprüfen kann?
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
my @lines = <READ>;
my $i = 1;
foreach my $x (@lines)
{
if ($x =~ m/\A\1\A/)
{
print "JJAAA....es sind zahlen da, man braucht keine Zeilennummern mehr \n";
exit;
}
else
{
print WRITE "$i $_";
$i++;
}

}


Wenn das erste Zeichen der ersten Zeile eine 1 ist, soll er nichts machen (exit), sonst soll er die Zeilennummern schreiben.

Irgendwie klappt das nicht...jemand ne Idee?

Vielen Dank
Gabriel
renee
 2008-09-18 12:29
#114760 #114760
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
if( $lines[0] =~ /^1/ ){
    exit;
}

# oder

if( substr( $lines[0], 0, 1 ) == 1 ){
    exit;
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gabriel
 2008-09-18 13:46
#114767 #114767
User since
2008-09-15
12 Artikel
BenutzerIn
[default_avatar]
Super renee, genau das habe ich gesucht.

Was mich jetzt noch interessiert ist, wie man eine Schleife sauber verlassen kann, damit der restliche Code ausgeführt wird? Beispiel:
Code: (dl )
1
2
3
4
5
6
7
8
if ($lines[0] = ~/^1/){
print "OK...";
}
else
{
#Hier soll er rausgehen (aus der Schleife springen und mit dem printbefehl "hier weitermachen" fortsetzen). mit "exit" beendet er ja das Programm, das soll er aber nicht!
}
print "hier weitermachen";


Hast du ne Idee?

Thanks
Gabriel
LanX-
 2008-09-18 14:01
#114768 #114768
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
LanX-
 2008-09-18 14:13
#114769 #114769
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
Wiki:PerlTutorials
So wie du fragst solltest du kein totaler Anfänger sein!
Warum nutzt du eigentlich nicht die Tutorials?
Gabriel
 2008-09-18 14:25
#114770 #114770
User since
2008-09-15
12 Artikel
BenutzerIn
[default_avatar]
Ich bin auch kein totaler Programmieranfänger...aber in Perl schon!

Gabriel
Struppi
 2008-09-18 14:43
#114771 #114771
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Wenn du sowieso nicht die ganze Datei brauchst, würd ich sie auch nicht komplett einlesen und du kannst die Zeilennummer direkt verwenden (sie steht in $.)

Code (perl): (dl )
1
2
3
4
5
6
7
while(<DATA>) {
if( m/^1/){
        print "JJAAA....es sind zahlen da, man braucht keine Zeilennummern mehr \n";
        last;
}
print WRITE "$. $_";
}
LanX-
 2008-09-18 15:13
#114772 #114772
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
@Struppi: eine 1 kann auch aus anderen Gründen erstes Zeichen sein, in der Abbruchbedingung sollte zumindest $. == 1 stehen.
Struppi
 2008-09-18 17:26
#114778 #114778
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Wenn ich das richtig verstanden habe war das aber seine Vorgabe?
LanX-
 2008-09-18 20:24
#114780 #114780
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
Struppi+2008-09-18 15:26:05--
Wenn ich das richtig verstanden habe war das aber seine Vorgabe?

auch war! ; )
<< >> 10 Einträge, 1 Seite



View all threads created 2008-09-18 12:10.