Mappa del sito
Indice degli aggiornamenti  27/10/18
Metti formule tra i preferiti
Contattaci
Segnalaci ad un amico

Formule e argomenti di matematica, fisica e scienze
Albert Einstein: ... la nostra conoscenza, se paragonata alla realta' e' primitiva e infantile. Eppure e' il bene piu' grande che possediamo.
... all our science, measured against reality, is primitive and childlike-and yet it is the most precious thing we have.


Versione stampabile della scheda visualizzata sotto

Seguici in Facebook    Seguici in Pinterest    Seguici in Twitter

Informatica : Code snippets (Strings)

Formattazione con riempimento a sinistra

Spesso si incontra la necessita' di formattare una stringa (per reports, liste incolonnate etc..) in modo che la sua lunghezza sia fissa e non quella dinamica corrente.
Ad esempio, dobbiamo produrre un file composto da righe in cui le informazioni abbiano una lunghezza fissa, tipo questa:

 Importo (20 chars)  |Quantita' (20 chars)
-----------------------------------------
-------------1234000|----------------1230
----------------1000|-----------------187

Se le stringhe devono essere appoggiate a destra in uno 'spazio' di 20 caratteri, necessitiamo di una funzione che, qualunque sia la lunghezza corrente della stringa, la porti al valore desiderato, aggiungendo a sinistra i caratteri necessari.

Nel codice sotto, l'implementazione di una funzione atta a svolgere questo compito. La funzione riceve la stringa da 'formattare', la lunghezza L desiderata, e il carattere C di riempimento a sinistra. Ritornera' una stringa di lunghezza L, eventualmente 'riempita' a sinistra da una sequenza di caratteri C. Chiamiamo questa funzione 'fillLeft'.



Linguaggio: PASCAL

 
Parametri : s = stringa da formattare
: wdt = ampiezza richiesta
: cha = carattere di riempimento a sinistra
Ritorna : Il contenuto iniziale della stringa s
: seguita dal carattere 'cha'
: ripetuto tante volte, fino
: al raggiungimento della lunghezza 'wdt'
Commenti : Nella implementazione vengono usate due
: funzioni gia' codificate, Trim() e Replicate()
: Trim()
: Replicate()

 
{ Versione per short string (max 255 chars)
e lunghezza corrente nel primo byte }
PROCEDURE FillLeft(VAR S:String; Wdt:INTEGER; Cha:Char);
VAR
Spazio : INTEGER;
len : Byte ABSOLUTE s;
{ absolute indica che la variabile len non
viene 'allocata' , ma si sovrappone al byte
in posizione 0 della stringa, quindi contiene
la lunghezza della stringa stessa }
BEGIN
Trim(s);
IF Wdt>0 THEN BEGIN
Spazio:=Wdt-Len;
IF Spazio=0 THEN BEGIN END
ELSE IF Spazio<0 THEN S:=Copy(S,1,Wdt)
ELSE
S:=Replicate(Cha,Spazio)+S;
END;
END;


function FillLeft(S:String; Wdt:INTEGER; Cha:Char): String;
VAR
Spazio : INTEGER;
len : Byte ABSOLUTE s;
{ absolute indica che la variabile len non
viene 'allocata' , ma si sovrappone al byte
in posizione 0 della stringa, quindi contiene
la lunghezza della stringa stessa }
BEGIN
Trim(s);
IF Wdt>0 THEN BEGIN
Spazio:=Wdt-Len;
IF Spazio=0 THEN BEGIN END
ELSE IF Spazio<0 THEN S:=Copy(S,1,Wdt)
ELSE
S:=Replicate(Cha,Spazio)+S;
END;
FillLeft:=S;
END;




Linguaggio: C#

 
Parametri : s = stringa da formattare
: wdt = ampiezza richiesta
: cha = carattere di riempimento a sinistra
Ritorna : Il contenuto iniziale della stringa s
: seguita dal carattere 'cha'
: ripetuto tante volte, fino
: al raggiungimento della lunghezza 'wdt'
:
Commenti : In C# (implementazione
: Microsoft dotNet Framework (c) )
: esiste gia' un metodo della classe System.String
: che implementa quanto richiesto.
: Il nome del metodo e' PadLeft()
: Es.:
: string s = "gianni";
:
: s = s.PadLeft(10,':');
:
: s = "::::::::::gianni".
:
:-----------------
:
: Segue una implementazione di fillLeft in C#
: Nella implementazione viene usata una
: funzioni gia' codificata, replicate()
: Replicate()
:

 
public string fillLeft(string s, int wdt, char cha)
{

int spazio = 0;

s = s.Trim();

if (wdt>0) {

spazio = wdt - s.Length;

if (spazio==0) {
}
else if (spazio<0) {

s = s.Substring(0,wdt);

}
else {

s = replicate(cha,spazio)+s.Substring(0,wdt);

}
}

return (s);
}


N.B. DotNet e Microsoft sono marchi registrati ed appartengono ai leggittimi proprietari.



Made by Formule Development Team








Ti potrebbe interessare anche:






  Metti la scheda negli appunti    Click per visualizzare il blocco appunti Visualizza appunti    Click x svuotare blocco appunti Azzera appunti


Seguici in Facebook     Seguici in Pinterest     Seguici in Twitter  


UTILITY
FormuLe-MATEMATICALC

TROVA FORMULE

UTILITY
FormuLe-FISICALC


TROVA FORMULE

UTILITY
FormuLe-STATISTICALC

UTILITY
Formule-MATFINCALC

ARGOMENTI
Matematica

Frattali di Mandelbrot
Benoit Mandelbrot e la Geometria Frattale. Introduzione e immagini.

Statistica e giochi

Lotto e superEnalotto
Una sintetica comparazione statistica e finanziaria dei due giochi.

Ultimo aggiornamento - Last update:  27/10/2018
Privacy and cookies
© www.gobnf.com 2008-2022 - Tutto il materiale contenuto nel sito PUO' essere liberamente usato per scopi personali (studio, creazione di relazioni e tesine etc). Non e' consentito qualsiasi altro tipo di utilizzo o riproduzione. - The entire content of this site may be freely used ONLY for personal purposes (study, creation of reports etc.). It is not allowed any other use or reproduction.