/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Splitte en tekst op i x karakterer
Fra : KB


Dato : 18-11-05 20:40

Hej

Jeg ønsker at splitte en tekst op i Chunk_Length karakterer.


my ($Text) = "Findes der bedre løsninger end denne?";
my ($Chunk_Length = 5;
my (@Text_Arr);

while (length($Text))
{
my ($SMS) = substr ($Text, 0, $Chunk_Length);
push @Text_Arr, $SMS;
$Text = substr ($Text, $Chunk_Length);
}


/KB



 
 
Peter Makholm (18-11-2005)
Kommentar
Fra : Peter Makholm


Dato : 18-11-05 21:10

"KB" <kb@kb.kb> writes:

> my ($Text) = "Findes der bedre løsninger end denne?";
> my ($Chunk_Length = 5;
> my (@Text_Arr);
>
> while (length($Text))
> {
> my ($SMS) = substr ($Text, 0, $Chunk_Length);
> push @Text_Arr, $SMS;
> $Text = substr ($Text, $Chunk_Length);
> }

Jeg ville nok foretrække denne løßning, men ellers kan man gøre noget
ala:

my $text = "findes der bedre løsninger end denne?"
my $chunk = 5;
my @chunks

@chunks = ($text =~ /.{1,$chunk}/g);

Jeg tvivler lidt på at en normal meningsfyldt definition af bedre vil
kunne gøre den udgave bedre. Den er i hvert fald mere obskur og derfor
sværre at vedligeholde.

--
Peter Makholm | 'Cause suicide is painless
peter@makholm.net | It brings on many changes
http://hacking.dk | And I can take or leave it if I please
| -- Suicide is painless

KB (18-11-2005)
Kommentar
Fra : KB


Dato : 18-11-05 21:20


"Peter Makholm" <peter@makholm.net> wrote in message
news:87acg1n2er.fsf@xyzzy.adsl.dk...
>
> @chunks = ($text =~ /.{1,$chunk}/g);

Den virker med linieskift, når man putter "s" bagpå:

@chunks = ($text =~ /.{1,$chunk}/gs);

Jeg havde faktisk prøvet noget a la den løsning, men forsøgte med split, og
det gav slet ikke det forventede resultat.

Tak for hjælpen,
KB



Kim Schulz (18-11-2005)
Kommentar
Fra : Kim Schulz


Dato : 18-11-05 21:18

On Fri, 18 Nov 2005 20:40:19 +0100
"KB" <kb@kb.kb> wrote:

> Hej
>
> Jeg ønsker at splitte en tekst op i Chunk_Length karakterer.
>
>
> my ($Text) = "Findes der bedre løsninger end denne?";
> my ($Chunk_Length = 5;
> my (@Text_Arr);
>
> while (length($Text))
> {
> my ($SMS) = substr ($Text, 0, $Chunk_Length);
> push @Text_Arr, $SMS;
> $Text = substr ($Text, $Chunk_Length);
> }
>
>
> /KB
>
>
Denne som dog ikke får "resten" med hvis strengens længde ikke er
delelig med 5.

my $Text = "Findes der bedre løsninger end denne?";
my @Text_Arr = unpack("A5" x (length($Text)/5), $Text);

Peter Makholm (18-11-2005)
Kommentar
Fra : Peter Makholm


Dato : 18-11-05 21:30

Kim Schulz <kim@schulz.dk> writes:

> my $Text = "Findes der bedre løsninger end denne?";
> my @Text_Arr = unpack("A5" x (length($Text)/5), $Text);

men

my @Text_Arr = unpack("A5" x (length($Text)/5) . "A" . (length($Text) % 5), $Text);

virker.

--
Peter Makholm | First you fall in love with Antarctica, and then it
peter@makholm.net | breaks your heart
http://hacking.dk | -- Antarctica

Kim Schulz (18-11-2005)
Kommentar
Fra : Kim Schulz


Dato : 18-11-05 21:52

On Fri, 18 Nov 2005 21:30:27 +0100
Peter Makholm <peter@makholm.net> wrote:

> Kim Schulz <kim@schulz.dk> writes:
>
> > my $Text = "Findes der bedre løsninger end denne?";
> > my @Text_Arr = unpack("A5" x (length($Text)/5), $Text);
>
> men
>
> my @Text_Arr = unpack("A5" x (length($Text)/5) . "A" . (length($Text)
> % 5), $Text);
>
> virker.
>

ahh ja smart nok!

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste