Schrift
[thread]7476[/thread]

Textdatei auslesen und filtern

Leser: 1


<< >> 3 Einträge, 1 Seite
Gast Gast
 2005-11-16 09:25
#60195 #60195
Hallo,

ich hoffe ihr könnt mir als Perl Anfänger bei meinem Problem helfen:

Ich habe einige mehrzeilige Textdatein mit Output.
Eine Zeile sieht z.B. so aus:

Software Version: x.yz (Release blabla) mehr Text

Die Zeile sieht bei allen Textdateien genau gleich aus, bis auf das "x.yz". Und genau diesen Wert möchte ich in eine Variable schreiben.

Ich kann den Wert ja anhand des "Software Version: " finden, da dies ja überall gleich ist..

Ich hoffe ihr versteht was ich euch zu erklären versuche :-)

Kann mir jemand helfen?

Gruß
rag
lichtkind
 2005-11-16 11:12
#60196 #60196
User since
2004-03-22
5679 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
also wenn der zeilenanfang immer Software Version ist dann ist doch die sache leicht. du könntest noch genauer angeben wie die versionsnummern aussehen können aber du kannst ganz einfach datei mit open öffnen, dann mit diamant operator <> zeilenweise auslesen und dann:

$_ =~ m/Software Version:\s+(\d+\.\d+)/;

deine gesuchte zahl ist dann in $1 drin.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Crian
 2005-11-17 16:52
#60197 #60197
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Falls auch mehrstellige Versionsnummern oder Versionsnummern mit kleinen Buchstaben vorkommen können, kannst du den Ausdruck abwandeln:
Code: (dl )
m~Software Version:\s+([.\d]+)~;

oder
Code: (dl )
m~Software Version:\s+([.\da-z]+)~;


btw. schreibt man $_ =~ nicht hin, dazu verwendet man ja gerade $_.\n\n

<!--EDIT|Crian|1132239200-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 3 Einträge, 1 Seite



View all threads created 2005-11-16 09:25.