Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]3678[/thread]

information aus zeilen lesen unter bedingung

Leser: 1


<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Noisebreath
 2006-04-18 17:44
#34291 #34291
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
Ich lese aus einer Datei zeilenweise informationen aus und möchte dass aus diesen Zeilen einzelne Informationen rausgelesen werden.
die zeilen sind vom typ:
1.ergebnis[Zahl]
2.ergebnis_Zahl[Zahl]

Im ersten Fall möchte ich die Zahl, im zweiten brauch ich beide Zahlen. Ich hätte gern eine Bedingung die mir Testet ob die Zeile vom Typ 1 oder 2 ist und je nachdem die Zahlen speichert.

foreach(@Zeilen) {
# if (/ergebnis/){
# hier bedingung
# }
GwenDragon
 2006-04-18 17:53
#34292 #34292
User since
2005-01-17
14787 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
foreach(@Zeilen) {
  if ( /ergebnis\[(\d+)\]/ ){ # Typ 1
  # hier bedingung
  $zahl1 = $1;
  } elsif ( /ergebnis_(\d+)\[(\d+)\]/ ) {  # Typ 2
  $zahl1 = $1;
  $zahl2 = $2;
  }
\n\n

<!--EDIT|GwenDragon|1145368621-->
Noisebreath
 2006-04-18 18:25
#34293 #34293
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
\[(\d+)\]/  

steht das d für digit? und bedeutet dass dann praktisch ein "oder mehr zahlen"?

und kann ich anstatt $zahl1 = $1; auch $zahl1 = shift;

schreiben?\n\n

<!--EDIT|Noisebreath|1145370650-->
Dubu
 2006-04-18 18:32
#34294 #34294
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Noisebreath,18.04.2006, 16:25]\[(\d+)\]/  

steht das d für digit?
[/quote]
Ja.

Quote
und bedeutet dass dann praktisch ein "oder mehr zahlen"?

Dafür das ist "+" gut.

Siehe
perlreref,
perlrequick,
perlretut,
perlre.
Noisebreath
 2006-04-18 18:41
#34295 #34295
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
Global symbol "$zahl1" requires explicit package name at
Global symbol "$zahl1" requires explicit package name at
Global symbol "$zahl2" requires explicit package name at

kommt als fehlermeldung... (??)
GwenDragon
 2006-04-18 18:44
#34296 #34296
User since
2005-01-17
14787 Artikel
Admin1
[Homepage]
user image
Ich dachte, dein Code ist nur nur ein Ausschnitt.

Na, du musst $zahl1 und $zahl2 in deinem Skript definieren.

Code: (dl )
1
2
my $zahl1;
my $zahl2;
nepos
 2006-04-18 18:44
#34297 #34297
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
[ ] du hast grundlegende Kenntnisse von Perl?

Spass beiseite, wenn du das in einem Skript benutzt, das use strict nutzt, dann musst du deine Variablen natürlich mittels my deklarieren. Sonst kommt besagte Fehlermeldung.
Noisebreath
 2006-04-18 18:54
#34298 #34298
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
Danke sehr,

ne ehrlich gesagt hab ich noch keine ahnung von Perl. Hab bisher immer mit PHP gearbeitet.. naja.. hab schon mitbekommen dass es ganz schön anders läuft hier und da :-/
Noisebreath
 2006-04-18 20:03
#34299 #34299
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
noch eine frage:

wie schaffe ich es dass er in einer zeile nur einmal den suchstring am anfang der zeile ausliest zb:


45;Datum.von;Datum.von;45;0;-1;;;;DATE;10;0;0;;

diese zeile ist zu untersuchen


       if(/45\;(\w+)\;/){
       $header = $1;
       }
ich möchte aber nur datum in header stehn haben und nicht auch noch die später in der zeile kommende 0. möchte sozusagen nur die 45 untersuchen die am satzanfang kommt, da es sein kann dass auch in früheren zeilen mitten in den zeilen die zahl 45 auftaucht..
wie kann ich das erreichen?

P.S.: muss ich bei reg ausdrücken ein \ vor " setzen?mein editor färbt mir das komisch an aber das programm läuft richtig.bin unter windows am progen und weiss nicht ob das unter linux einen unterschied macht?!
zb: ( /dokuart = "(\w+)"/)\n\n

<!--EDIT|Noisebreath|1145378821-->
renee
 2006-04-18 21:09
#34300 #34300
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
if(/^45;([^;]+)/){
$header = $1;
}
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/
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2006-04-18 17:44.