Newsgroup: it.comp.lang.visual-basic
Titolo: Pad Left

Ciao,
ho scritto una semplice funzione per fare il pad left di una stringa.
Public Function padLeft(sStringa As String, iNumTotaleCaratteri As
Integer, sTipoCaratteri As String)
      padLeft = String(iNumTotaleCaratteri - Len(sStringa),
sTipoCaratteri) & Trim(sStringa)
End Function
per chiamarla come segue:
stringaPaddata = padLeft(stringaNonPaddata, 6, "0")
(in questo esempio si fa il pad con degli zeri fino a lunghezza 6)
Ci sono dei casi particolari che rendono errato il risultato di questa
funzione?
grazie
N! Xau
la sede del MSTC
http://ilovemiliofede.altervista.org

 ho scritto una semplice funzione per fare il pad left di una stringa.
Anche io
Format$("pippo", "@@@@@@")
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
Se i tempi non chiedono la tua parte migliore, inventa altri tempi. 
(Baolian, libro II, vv. 16-17)
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Format$("pippo", "@@@@@@")
Ok... e come gliela passi la lunghezza totale se la vuoi passare come
parametro?
ciao
N! Xau

 parametro?
format$("Pippo",string(parametro,"@"))



Ok ho definito:
Public Function padLeft(sStringa As String, iNumTotCar As Integer,
sTipoCar As String) As String
      padLeft = Format$(sStringa, String(iNumTotCar, sTipoCar))
End Function
Cosi' basta chiamare padleft(sStringa,iLunghezza,sCarattere)
Grazie, ciao.
N! Xau
http://ilovemiliofede.altervista.org

 End Function
Consiglio l'uso di ByVal per i parametri.
My 2 ec
Loakr 

 Cosi' basta chiamare padleft(sStringa,iLunghezza,sCarattere)
Ma non mi pare che funzioni un granchè bene.
Prova con la mia
Public Function PadStr(ByVal stringa As String, ByVal Lunghezza As Long, 
Optional ByVal Carattere As String = " ", Optional ByVal allineamento As 
AlignmentConstants = vbLeftJustify) As String
'-------------------------------------------------------------------------
' Descrizione:
'
'       Effettua il riempimento (padding) di una stringa con
'       il carattere specificato o con spazi se <Carattere> è omesso.
'       La stringa risultante è sempre lunga <Lunghezza>: se
'       Len(Stringa) > Lunghezza la stringa viene troncata.
'
'-------------------------------------------------------------------------
' Data      : 20/03/2002 11.53
' Modifica  : 30/05/2002 16.32 (aggiuto par. Allineamento)
' Autore    : Fabio
'-------------------------------------------------------------------------
    Select Case allineamento
    Case vbLeftJustify
        PadStr = Left$(stringa & String$(Lunghezza, Carattere), Lunghezza)
    Case vbRightJustify
        PadStr = Right$(String$(Lunghezza, Carattere) & stringa, Lunghezza)
    Case vbCenter
        If (Len(stringa) > Lunghezza) Then
            PadStr = Mid$(stringa, (Len(stringa) - Lunghezza) \ 2 + 1, 
Lunghezza)
        Else
            PadStr = String$(Lunghezza, Carattere)
            Mid$(PadStr, (Lunghezza - Len(stringa)) \ 2 + 1, Len(stringa)) = 
stringa
        End If
    End Select
End Function
Ciao 

 Ma non mi pare che funzioni un granchè bene
Quando?
Se la stringa e' piu' lunga del parametro lunghezza specificato?
ciao
N! Xau

 Se la stringa e' piu' lunga del parametro lunghezza specificato?
Ma l'avete provata?
O non ho capito il senso dei parametri passati o semplicemente è cannata in 
blocco.
Ciao 

 Cosi' basta chiamare padleft(sStringa,iLunghezza,sCarattere)
Non proprio. Ho notato solo adesso che hai la necessitą di riempire la
stringa con caratteri a tua scelta, e la funzione format non ti da questa
possibilitą.
http://tinyurl.com/cdgqm


 possibilità.
La funzione che ho postato a inizio thread, va bene o no?
ciao
N! Xau

 La funzione che ho postato a inizio thread, va bene o no?
Ripeto: l'hai testata?
Io ho fatto 5 Debug.Print PadLeft(...) e mi è andata in errore 2 volte.
Se è un comportamento voluto diciamo che funziona.
Ciao 

 Se è un comportamento voluto diciamo che funziona
ROTFL
ciao
N! Xau
http://ilovemiliofede.altervista.org