Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8632[/thread]

splitten in array



<< >> 9 Einträge, 1 Seite
kabazza
 2007-01-10 16:07
#73046 #73046
User since
2006-11-23
23 Artikel
BenutzerIn
[default_avatar]
ich hab eine große datei deren inhalte durch "//\n" getrennt sind. wie kann ich die datei aufsplitten und dabei jeden eintrag im array[$index] abspeichern? meine bisherigen versuche gingen alle in die hose.

Datei:
dummytextdummytextdummytextdummytextdummytext
dummytextdummytextdummytext
//
dummytextdummytextdummytextdummytext
dummytext
dummytextdummytext
//
dummytextdummytext
renee
 2007-01-10 16:11
#73047 #73047
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl

use strict,
use warnings;

my $file = '/path/to/file';
my @array;
{
local $/ = "\n//\n";
open my $fh,'<',$file or die $!;
@array = <$fh>;
chomp @array;
close $fh;
}



Mehr zu $/ unter perlvar...
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/
bloonix
 2007-01-10 16:23
#73048 #73048
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=renee,10.01.2007, 15:11]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl

use strict,
use warnings;

my $file = '/path/to/file';
my @array;
{
   local $/ = "\n//\n";
   open my $fh,'<',$file or die $!;
   @array = <$fh>;
   chomp @array;
   close $fh;
}



Mehr zu $/ unter perlvar...[/quote]
Wofür @array = <$fh>;? Die \n werden schon durch
local $/ = "\n//\n"; "gefiltert". =)

Edit: ich meinte nicht @array = <$fh>; sondern chomp @array\n\n

<!--EDIT|opi|1168439243-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
renee
 2007-01-10 16:26
#73049 #73049
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
die Einträge sollen doch in einem Array gespeichert werden:
Quote
...und dabei jeden eintrag im array[$index] abspeichern


Und was hat die Anweisung mit \n zu tun :rock: ?
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/
bloonix
 2007-01-10 16:28
#73050 #73050
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Sorry, falsche Zeile via Copy & Paste ...

Ich meinte chomp @array;.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
renee
 2007-01-10 16:31
#73051 #73051
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
chomp entfernt nicht \n, sondern $/ (hier also \n//\n). Wenn man das nicht macht, ist bei jedem Eintrag noch das \n//\n dran... Und da das nur der Eintragstrenner ist, habe ich den weggemacht...
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/
bloonix
 2007-01-10 16:52
#73052 #73052
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=renee,10.01.2007, 15:31]chomp entfernt nicht \n, sondern $/ (hier also \n//\n). Wenn man das nicht macht, ist bei jedem Eintrag noch das \n//\n dran... Und da das nur der Eintragstrenner ist, habe ich den weggemacht...[/quote]
Stimmt. Ich wußte noch garnicht, dass man $/ für derartige Dinge setzen
kann. Bislang kannte ich nur $/ = undef, um ganze Dateien einzulesen.
Was ich auch nicht wußte ist, dass chomp() das vom Zeilenende entfernt,
was in $/ steht. Nice. Hab ich was dazu gelernt. :)
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
kabazza
 2007-01-10 17:09
#73053 #73053
User since
2006-11-23
23 Artikel
BenutzerIn
[default_avatar]
ich hab auch wieder was gelernt. funzt auch genau so wie ich es wollte. danke!
pq
 2007-01-10 18:11
#73054 #73054
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=opi,10.01.2007, 15:23]Die \n werden schon durch
local $/ = "\n//\n"; "gefiltert". =)[/quote]
das wesentliche ist: $/ filtert nichts, es beeinflusst nur, wie eine
datei eingelesen wird. entfernen musst du den entsprechenden
string schon selbst.
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
<< >> 9 Einträge, 1 Seite



View all threads created 2007-01-10 16:07.