Font
[thread]9052[/thread]

Suchen von Unten nach Oben: Suchen von UNTEN nach OBEN



<< |< 1 2 3 4 ... 6 >| >> 58 entries, 6 pages
yasukatakaya
 2007-05-31 11:57
#77090 #77090
User since
2007-05-31
68 articles
BenutzerIn
[default_avatar]
Hallo,
kann mir jemand sagen, ob man mit Perl auch von unten nach oben eine Datei durchsuchen kann, denn ich will z.B. aus diesen Daten (siehe unten), die in einer bestimmten Datei gespeichert sind, den Text (auch Sonderzeichen, Ziffern enthalten) zwischen den letzten PASS und den FAIL!
Geht es, das ich von unten suche und einfach von FAIL bis zum ersten PASS alles rausfiltere?

12.12.06 PASS
ölaksjfdöljaf
13.12.06 PASS
asälöjaöslkf1
14.12.06 FAIL

GRUSS
vayu
 2007-05-31 12:32
#77091 #77091
User since
2005-01-13
782 articles
BenutzerIn
[default_avatar]
klar liess es in ein array ein und gehe von hinten nach vorne :)

Code: (dl )
1
2
3
4
my @file = <FILE>;
foreach($#file .. 0) {
#do something with $file[$_];
}


oder

Code: (dl )
1
2
3
4
my @file = reverse(<FILE>);
foreach(@file) {
#do something with $_;
}
\n\n

<!--EDIT|vayu|1180600415-->
pq
 2007-05-31 12:41
#77092 #77092
User since
2003-08-04
12204 articles
Admin1
[Homepage]
user image
[quote=vayu,31.05.2007, 10:32]
Code: (dl )
foreach($#file .. 0) {
[/quote]
nur dass das nicht geht...
Code: (dl )
foreach(reverse 0 .. $#file) {
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
yasukatakaya
 2007-05-31 13:00
#77093 #77093
User since
2007-05-31
68 articles
BenutzerIn
[default_avatar]
Hallo,
danke für die schnelle Antwort, aber irgendwie kriege ich es nicht gebacken, dieses in mein Code einzufügen?!

So sieht mein Kopfprog aus:

#~~~ Datei einlesen und TXT-Datei erzeugen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

open ($INPUT,"<$quelle") or die "konnte $ziel nicht oeffnen,$!\n";
undef $/;

open (OUTPUT,">$ziel.txt") or die "konnte $ziel nicht oeffnen,$!\n";
$_ = <$INPUT>;
close ($INPUT);

#~~~ Ende ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Nun versuche ich euren Tip zu implementieren:

@file = <$INPUT>;
foreach($#file .. 0)
{
#hier suche ich dann in der gleichen DATEI, die nun umgedreht
#wurde??????
#also z.B.
($fehler) = /(.*?)FAIL/gsm; #ODER geht das nicht so??
}
Sucher
 2007-05-31 13:02
#77094 #77094
User since
2007-03-26
47 articles
BenutzerIn
[default_avatar]
Hallo,

wenn die Datei groß ist, bietet sich auch CPAN:File::ReadBackwards an.



Grüße,
vayu
 2007-05-31 15:51
#77095 #77095
User since
2005-01-13
782 articles
BenutzerIn
[default_avatar]
[quote=pq,31.05.2007, 10:41][quote=vayu,31.05.2007, 10:32]
Code: (dl )
foreach($#file .. 0) {
[/quote]
nur dass das nicht geht...
Code: (dl )
foreach(reverse 0 .. $#file) {
[/quote]
upsi :0
PerlProfi
 2007-06-01 17:31
#77096 #77096
User since
2006-11-29
340 articles
BenutzerIn
[default_avatar]
@yasukatakaya, du hast es noch falsch mit einbebaut.
Nachdem du die Datei geöffnet hast, musst du ihren Inhalt in ein Array einlesen und dann von hinten nach vorne durch iterieren.

Also so:
Code: (dl )
1
2
3
4
5
6
7
8
open ($INPUT,"<$quelle") or die "konnte $ziel nicht oeffnen,$!\n";
my @content = <$INPUT>;
close($INPUT);

for my$i (reverse 0..$#content) {
# mach was mit $content[$i]
# die letzte zeile kriegst du hier zuerst
}


MfG
yasukatakaya
 2007-06-04 10:41
#77097 #77097
User since
2007-05-31
68 articles
BenutzerIn
[default_avatar]
Hallo Leute,
irgendwie klappt es nicht, da die Datei komplett gedreht wird, d.h.
aus

1: PERL1
2: Perl2

wird

2:2lreP
1:1LREP

wie soll ich das denn in meiner Ausgabedatei lesen können??????
renee
 2007-06-04 10:57
#77098 #77098
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Wie sieht Dein Code aus? Wie soll dann das Ergebnis aussehen?
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/
guest Gast
 2007-06-04 11:37
#77099 #77099
Ich würd wohl der Einfachheit halber ein `tac` zu Hilfe nehmen ...
<< |< 1 2 3 4 ... 6 >| >> 58 entries, 6 pages



View all threads created 2007-05-31 11:57.