Schrift
[thread]8567[/thread]

wie durchsuche ich einen text (Seite 2)

Leser: 1


<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten
fraggs
 2006-12-11 11:43
#72412 #72412
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
guten morgen erstmals !

so habe nun die neue regex eingebaut und schmeist auch keine errors BIS ich versuche den typ und die values auszugegen ... die sollte ich doch in dem while loop mit print einfach in die commmand line ausgeben koenne oder :rock:

den error den ich bekomme wenn ich print in der while loop benutze ist:
Code: (dl )
Use of uninitialized value in print at z:\tla\Scripts\Emmaparser\emmaparser2.pl line 18, <$xmlfile>

die "line" in dem error ist spezifisch zu wo print type value etc stehen dh es kommen 4 stueck von diesen mit line 18 19 20 und 21.

tip wie ich das fixe waere super

danke !
mmm twix
renee
 2006-12-11 12:20
#72413 #72413
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Also das hier funktioniert einwandfrei:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!perl

use strict;
use warnings;

my $dataxml = './index.xml';
my $xmlfile;

open($xmlfile,'<',$dataxml) or die $!;

while(my $line = <$xmlfile>)
{
if(my ($type, $value1, $value2, $value3)=$line=~m!<\s*coverage\s+type="(block|line)\s*,\s*\%\s*"\s+value="(\d+)\%\s+\(([\d\.]+)/([\d\.]+)\)"\s*/>!s){
print sprintf("%s -- %s -- %s -- %s\n",$type,$value1,$value2,$value3);
}
}

close ($xmlfile);
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/
fraggs
 2006-12-11 13:13
#72414 #72414
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
k ich weis was ich flasch gemacht habe. ich wollte die verschiedenen values seperat ausprinten obwohl das nicht ging :( danke nun leaufts.

noch eine letze frage ... wie wuerde man die RegEx biegen so das er nur einmal die informationen rausholt ? dh. nur aus dem All Name ? denn nach dem All Name kommen noch 2 oder so mehr branches info die nicht benoetigt werden .... also nach dem die info einmal rausgezogen worden ist printen und das wars.
mmm twix
renee
 2006-12-11 13:35
#72415 #72415
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie "seperat ausprinten"?

Das entscheidende ist das if. Dann wird nur etwas ausgegeben, wenn es auch tatsächlich einen Match gegeben hat. Ansonsten versuchst Du, bei jeder Zeile des XML-Dokuments etwas auszugeben. Wenn es dann aber keinen Match gibt, sind die Variablen nicht initialisiert - und das gibt dann die Warnung...
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/
renee
 2006-12-11 13:36
#72416 #72416
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=fraggs,11.12.2006, 12:13][...]

noch eine letze frage ... wie wuerde man die RegEx biegen so das er nur einmal die informationen rausholt ? dh. nur aus dem All Name ? denn nach dem All Name kommen noch 2 oder so mehr branches info die nicht benoetigt werden .... also nach dem die info einmal rausgezogen worden ist printen und das wars.[/quote]
Kannst Du das etwas genauer erläutern? Am Besten mit einem entsprechenden Stück XML...
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/
fraggs
 2006-12-11 15:11
#72417 #72417
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
ok sagen wir das xml is so aufgebaut.
Code: (dl )
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
  <?xml version="1.0" encoding="UTF-8" ?> 
- <!--  EMMA v2.0.5312 report, generated Wed Nov 01 16:14:54 CET 2006
 -->
- <report>
- <stats>
 <packages value="5" />
 <classes value="80" />
 <methods value="589" />
 <srcfiles value="57" />
 <srclines value="3469" />
 </stats>
- <data>
- <all name="all classes">
 <coverage type="class, %" value="96% (77/80)" />
 <coverage type="method, %" value="66% (391/589)" />
 <coverage type="block, %" value="70% (11659/16578)" />
 <coverage type="line, %" value="70% (2421.3/3469)" />
- <package name="vdo.e60.media.protocol.external.audio.mp3">
 <coverage type="class, %" value="93% (14/15)" />
 <coverage type="method, %" value="53% (52/98)" />
 <coverage type="block, %" value="62% (1435/2322)" />
 <coverage type="line, %" value="59% (279.9/475)" />
- <srcfile name="Coding.java">
 <coverage type="class, %" value="100% (2/2)" />
 <coverage type="method, %" value="30% (3/10)" />
 <coverage type="block, %" value="25% (36/143)" />
 <coverage type="line, %" value="20% (7/35)" />

dies kann vorkommen muss aber nicht. so nach dem "all name" dh "coding.java" oder "vdo.e60.media.protocol.external.audio.mp3" stehen nochmals block und line drinn. diese interesieren mich aber nicht unbedingt. dh nach dem all name block kann oder sollte eigentlich schluss gemacht werden.

kann man dort vielleicht einbauen in die regex das sobalt nach der letzen value in dem ersten match von der line schluss gemacht wird ?

also psydo code:
Code: (dl )
1
2
if match 
then quit matching

dh nach dem ersten match einfach nicht mehr matchen

edit pq: code-tags hinzugefügt\n\n

<!--EDIT|pq|1165845364-->
mmm twix
renee
 2006-12-11 15:15
#72418 #72418
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
nach dem
Code: (dl )
       print sprintf("%s -- %s -- %s -- %s\n",$type,$value1,$value2,$value3);
machst Du einfach ein
Code: (dl )
last if $type eq 'line'
...
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/
fraggs
 2006-12-11 16:03
#72419 #72419
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
:rock: das sieht ja richtig super aus jetzt kann ich das endlich einbauen. danke nochmals meine online lehrer :p
mmm twix
fraggs
 2006-12-12 13:16
#72420 #72420
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
eine letze frage !
Quote
<?xml version="1.0" encoding="UTF-8" ?>
- <!-- EMMA v2.0.5312 report, generated Wed Nov 01 16:14:54 CET 2006

wie kann ich seperate Wed Nov 01 16:14:54 2006 rausziehen ? dh koennte mir jemand eine regex basteln ? den rest schreibe ich mir zusammen mit den regexs hab ichs noch nicht so.
mmm twix
nepos
 2006-12-12 14:18
#72421 #72421
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
So?
Code (perl): (dl )
my ($timestamp) = $line =~ /(\w{3} \w{3} \d{2} \d{2}:\d{2}:\d{2}) \w{3,} \d{4}/

Wobei ich mir nicht 100% sicher bin, ob das für die Zeitzone so passt. Eventuell kann die auch mehr als 3 Zeichen haben.\n\n

<!--EDIT|nepos|1165925937-->
<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten



View all threads created 2006-12-08 16:06.