-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 


indietro

[33] Come porto a lunghezza una stringa con spazi oppure un numero con zeri?

Nei seguenti esempi, $lungh è la lunghezza cui vogliamo portare la stringa, $testo o $num contengono la stringa da allungare, e $carat contiene il carattere con cui riempire. Se si conosce questo carattere in anticipo, si può usare una costante composta da una stringa di un solo carattere invece della variabile $carat. E allo stesso modo potete usare un intero al posto di $lungh se conoscete già la lunghezza.

Il metodo più semplice utilizza la funzione sprintf. Può riempire sulla sinistra o sulla destra con spazi, sulla sinistra con zeri e non troncherà il risultato. La funzione pack può solo riempire le stringhe con degli spazi sulla destra e troncherà il risultato fino ad una lunghezza massima di $lungh.

    # Riempimento di una stringa a sinistra con spazi (nessun troncamento):
    $riempito = sprintf("%${lungh}s", $testo);
    $riempito = sprintf("%*s", $lungh, $testo);  # stessa cosa
    # Riempimento di una stringa a destra con spazi (nessun troncamento):
    $riempito = sprintf("%-${lungh}s", $testo);
    $riempito = sprintf("%-*s", $lungh, $testo); # stessa cosa
    # Riempimento di un numero a sinistra con zeri (nessun troncamento):
    $riempito = sprintf("%0${lungh}d", $num);
    $riempito = sprintf("%0*d", $lungh, $num); # stessa cosa
    # Riempimento di una stringa a destra con spazi usando pack (verra` troncata):
    $riempito = pack("A$lungh",$testo);

Se si ha la necessità di riempire con un carattere che non sia lo spazio o lo zero, si può usare uno dei metodi seguenti. Generano tutti una stringa di riempimente usando l'operatore x e la combinano con $testo. Questi metodi non troncano $testo.

Riempimento a sinistra e a destra con qualsiasi carattere, creando una nuova stringa:

    $riempito = $carat x ( $lungh - length( $testo) ) . $testo;
    $riempito = $testo. $carat x ( $lungh - length( $testo) );

Riempimento a sinistra e a destra con qualsiasi carattere, modificando direttamente $testo:

    substr( testo, 0, 0 ) = $carat x ( $lungh - length( $testo) );
    $testo.= $carat x ( $lungh - length( $testo) );

vedi in inglese

AUTORE E COPYRIGHT

Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen e Nathan Torkington. Tutti i diritti riservati.

Questa documentazione è libera; puoi ridistribuirla e/o modificarla secondo gli stessi termini applicati al Perl.

Indipendentemente dalle modalitè di distribuzione, tutti gli esempi di codice in questo file sono rilasciati al pubblico dominio. Potete, e siete incoraggiati a farlo, utilizzare il presente codice o qualunque forma derivata da esso nei vostri programmi per divertimento o per profitto. Un semplice commento nel codice che dia riconoscimento alle FAQ sarebbe cortese ma non è obbligatorio.

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google