Schrift
[thread]5780[/thread]

Dateien split

Leser: 1


<< >> 9 Einträge, 1 Seite
BrownWolf
 2003-09-30 03:16
#58805 #58805
User since
2003-08-15
308 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich hoffe bei diesem Problem könnt ihr mir helfen.
Also ich habe eine .txt Datei mit folgendem Inhalt:

Code: (dl )
Time|Nick|Subject|Text


Mein Code:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
open(DAT,"<./datei.txt") || die $!;
    my @read = <DAT>;
    close(DAT);
    @read = map {
               
  getDate((split /\|/, $_)[0])."|".
               
  (split /\|/, $_)[1]."|".
               
  (split /\|/, $_)[2]."|".
               
  (split /\|/, $_)[3]
    } sort { (split /\|/, $b)[0] <=> (split /\|/, $a)[0] } @read;


1. Ich möchte @read nach dem Timestamp in $read[0]
sortieren.
2. Im neuen Array muss der Timestamp mit der getDate Methode in ein Datum umgewandelt werden.
3. Ich möchte gerne im split 2 und 3 was ersetzen , blos das geht nicht weil ich dann ne Error Message bekomme:

Cant modify list slice in substitution ....

Geht das auch einfacher ? :)

BrownWolf
Code (perl): ()
1
2
3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&#36{{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};&#36{{}->{q{{{}}}}->[@{{}];}
&#36{{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;
BrownWolf
 2003-09-30 03:23
#58806 #58806
User since
2003-08-15
308 Artikel
BenutzerIn
[default_avatar]
Hmm mit Push würd das noch gehen ...

Code (perl): (dl )
1
2
3
4
5
6
foreach(sort { (split /\|/, $b)[0] <=> (split /\|/, $a)[0] } @read) {
        my($time,$nick,$subject,$text) = split /\|/, $_;
        $time = getDate($time);
        $subject =~ s/.../.../g;
        push(@newarray, "$time|$nick|$subject|$text|");
    }


Hmm mach ichs erstmal so ;)
Code (perl): ()
1
2
3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&#36{{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};&#36{{}->{q{{{}}}}->[@{{}];}
&#36{{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;
Geewiz
 2003-09-30 13:10
#58807 #58807
User since
2003-09-29
69 Artikel
BenutzerIn
[Homepage] [default_avatar]
TMTOWTDI:

Code: (dl )
1
2
3
4
5
6
7
map { 
$_->[0] = getDate($_->[0]);
$_->[2] =~ s/x/y/g;
join '|', @$_;
}
sort { $a->[0] <=> $b->[0] }
map { [ split /\|/ ] } @read;
BrownWolf
 2003-09-30 17:13
#58808 #58808
User since
2003-08-15
308 Artikel
BenutzerIn
[default_avatar]
Gibt es ne Seite wo man das lernen kann ? :)
Code (perl): ()
1
2
3
sub _{s;;xrqIpiql\\{}p{pl{R>rl{N{}gjwpkssq]>rl{N;;;*{{}=*{_};;
&#36{{}={q{{{}}}=>[reverse+split+reverse+q;}{;]};&#36{{}->{q{{{}}}}->[@{{}];}
&#36{{}=reverse+_(q{{}}=>q{{}})^chr(30)x+length&_(q{{}}=>,q{{}})and+print;
havi
 2003-09-30 17:58
#58809 #58809
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Schau mal hier: http://links.perl-community.de/
Dort findest du auch viele gute Seiten zu Tutorials...

Gruss
Geewiz
 2003-09-30 18:01
#58810 #58810
User since
2003-09-29
69 Artikel
BenutzerIn
[Homepage] [default_avatar]
Es handelt sich dabei um eine Art Schwartzscher Transformation. Perl-Guru Randal Schwartz hat dieses Idiom geprägt, eine Aktion (hier sort) zwischen zwei Transformationen mittels map einzubetten. Such mal nach "Schwartzian Transformation".

Ich werde demnächst einen kleinen Artikel dazu schreiben.
Strat
 2003-09-30 18:21
#58811 #58811
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
auf meiner HP habe ich unter Tips&Tricks -> Sortierungen ein klein wenig darueber geschrieben. Da fehlen zwar noch Algorithmen wie die GRT... wenn das neue Layout kommt, wird auch die behandelt...

@Geewiz: hast du Lust, den Artikel hier ins Wiki schreiben?\n\n

<!--EDIT|Strat|1064931781-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Geewiz
 2003-09-30 19:00
#58812 #58812
User since
2003-09-29
69 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hatte ohnehin vor, den Artikel im Wiki zu posten. :-)
Strat
 2003-09-30 23:59
#58813 #58813
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Geewiz,30.09.2003, 17:00]Hatte ohnehin vor, den Artikel im Wiki zu posten. :-)[/quote]
Klasse!
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 9 Einträge, 1 Seite



View all threads created 2003-09-30 03:16.