Schrift
[thread]6983[/thread]

String in Blöcke zerlegen



<< >> 4 Einträge, 1 Seite
pKai
 2005-05-11 16:34
#54769 #54769
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Ich suche einen (möglichst kurzen/"eleganten") Einzeiler, der mit $str dasselbe macht wie
Code: (dl )
1
2
3
4
5
6
7
8
9
10
use strict;
my @B;
my $len = 4096;
my $str = '........'; #langer String
while (length($str)>$len) {
my $e = substr($str, 0, $len);
substr($str,0,$len) = '';
push(@B, $e);
}
push (@B, $str) if length($str);

$str darf am Ende natürlich auch unverändert sein. Ich bin nur an @B interessiert.

m? split? unpack?
ich steh im Moment aufm Schlauch. ;)
I sense a soul in search of answers.
Strat
 2005-05-11 16:41
#54770 #54770
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
teste mal
Code: (dl )
1
2
3
4
5
6
my $len = 4096;
my $stringLength = length($string);

my $count = int($stringLength/$len);
my $pattern = ("A$len " x $count) . " A*";
my @B = unpack($pattern, $stringLength);

kannst ja noch auf die temporaeren Variablen verzichten, und dann hast du einen einzeiler ;-)\n\n

<!--EDIT|Strat|1115815310-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2005-05-11 16:41
#54771 #54771
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
#! /usr/bin/perl

my $string = 'Dies ist ein ganz langer Test';
my $length = 4;
my @array = $string =~ /(.{1,$length})/g;

print $_,"\n" for(@array);
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/
pKai
 2005-05-11 16:49
#54772 #54772
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Danke :)
I sense a soul in search of answers.
<< >> 4 Einträge, 1 Seite



View all threads created 2005-05-11 16:34.