Schrift
[thread]13031[/thread]

ANFANG/ .. /ENDE in eine Variable

Leser: 1


<< >> 5 Einträge, 1 Seite
Gast Gast
 2009-01-21 12:51
#118204 #118204
Moin, moin,

ich steh momentan gerade auf dem Schlauch. Ich möchte eine Textdatei in einzelne Teile aufdröseln und in einzelne Variablen ziehen. Die Textdatei beinhaltet die Ausgabe verschiedener Befehlsausgaben, als Trenner steht nach jedem Befehl ist eine Reihe _. Die Befehle sind im Array @cmds und sind somit der anfangstrenner.

Momentan kann ich die Teilbereich in eigene Textdateien speichern und könnte sie auch aus diesen Dateien wieder in Variablen einlesen, aber ich bin mir sicher, dass es einen besseren Weg gibt.

Mein Code:

for (my $ii = 0; $ii <= $i; $ii++) {
open (GREP, "<", "$fileone") or die;
open (OUT_ONE, ">", "/home/script/Owndif/Out-One_$ii.txt") or die;
while (<GREP>) {
print OUT_ONE if (/$cmds[$ii]/ .. /______________________________________________________________________________________________/);
}
close OUT_ONE;
close GREP;
}

Mein Kernproblem ist das Unverständnis der Bereichsoperatoren / .. / bzw. / ... / und die Ergebnisse dieser, bzw die Verarbeitung selbiger.
Vermutlich wird die Lösung trivial sein, aber wie bereits geschrieben momentan stehe ich einfach auf dem Schlauch.

Ich bedanke mich schon mal im voraus. :-)

DirkS
renee
 2009-01-21 13:02
#118205 #118205
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Statt dem print OUT...-Befehl einfach an eine Variable hängen?

$var .= $_ if /../ .. /../

$var muss dann natürlich vor der for-Schleife deklariert werden.
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/
Gast Gast
 2009-01-21 13:16
#118206 #118206
Hallo renee,

neuer Ansatz *g* Ich hatte immer versucht, hinter dem if in der geschweiften Klammer die Varibale zu befüllen.

Wie ich es jetzt aber sehe, wird bei deinem Ansatz jeder Befehl und seine Ausgabe in ein und dieselbe Variable geschrieben, was in Endeffekt die Ursprüngliche Datei wieder herstellt, aber ich werde mal ein wenig mit diesem Ansatz rumspielen, dabei lernt man am meisten. ;-)
Der erste Versuch, statt deinem Skalar einen Array mit der hochzählenden Befehlsindexvariable $ii zu nehmen ( $out_two[$ii] .= .... ) schlug schon mal fehl.


Danke für deine Antwort DirkS
renee
 2009-01-21 13:49
#118207 #118207
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Die '..' in den '/../' musst Du natürlich durch Deine Anfangs- und End-Bedingung ersetzen!
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/
Gast Gast
 2009-01-25 14:51
#118305 #118305
Hallo renee,

die Bedingung hatte ich ersetzt, aber dennoch Tomaten auf den Augen. habe die $_ übersehen. Deine Antwort ist also die Lösung. Danke!

DirkS
<< >> 5 Einträge, 1 Seite



View all threads created 2009-01-21 12:51.