Newsgroup: it.comp.appl.access
Titolo: [Stringhe] Eliminare un carattere finale

Ho una stringa composta da diverse righe, come separatore ho vbNewline
Alla fine della stringa posso avere un numero indefinito di vbNewLine.
Dovrei togliere tutti i vbNewLine in coda alla stringa.
Questa cosa mi stà un pò facendo innervosire.
Ho provato questa ma dà bruttissimi risultati:
 Do Until InStrRev(sArr, vbNewLine)=0
     sArr = Mid$(sArr, 1, InStrRev(sArr, vbNewLine))
 Loop
Risultato mi mangia tutta la stringa ovviamente, ad eccezione della 1°
riga.
Sono certo sia semplice, ma ad ora sono in tilt...!
Se qualcuno ha una soluzione
@Alex

 ha scritto nel messaggio news:1151688392.4...@p79g2000cwp.googlegroups.com...








@Alex
[risposta]
Ma il Replace?
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
MMmmmm, come ti dicevo il vbNewLine c'è in tutta la stringa, se uso il
Replace
che mi combina...?
Il problema è solo sui NewLine in coda, e non saprei come fermarmi
quando non ce ne sono più in coda...!
Supponi che ci siano in coda 3 vbNewLine..
Es:
"Alex" & vbnewLine & "Sergio" & vbnewLine & "Roberto" & vbnewLine &
vbnewLine & vbnewLine 
Come tolgo solo quelli in fondo..?
@Alex


temo che gli faccia la replace anche dei new line intermedi
aVar = split(mystr,vbcrlf)
for each aEl in avar
	if ael<>"" then "e' bona"
next
--
ac

Alessandro Baraldi ha scritto:

' Conta quanti VbNewLine ci sono in fondo
For X = (Len(sArr) - Len(vbNewLine) - 1) To 1 Step Len(vbNewLine) * -1
If Mid(sArr, X, Len(vbNewLine)) = vbNewLine Then a = a + 1
Next X
' Elimina i VbNewLine dal fondo
sArr = Left(sArr, Len(sArr) - ((a - 1) * Len(vbNewLine)))
ciao

 ciao
Mo la provo poi ti dico, in sostanza è uguale a quanto scritto da
Alessandro Cara
ma se funzionano entrambe direi che la soluzione di A.C. è più
elegante.
Grazie
@Alex

 ac
Bella soluzione, la provo subbito..!
@Alex

@Alex
una bella for next ?
----
Function FiltravbNewLine(ByVal strIn As String) As String
Dim i As Long
For i = Len(strIn) - 1 To 1 Step -2
    If Mid(strIn, i, 2) <> vbNewLine Then Exit For
Next
FiltravbNewLine = Left(strIn, i + 1)
End Function
----
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

Bella soluzione, la provo subbito..!
ochio che cosě filtri anche le concatenazioni di vbcrlf in mezzo alla
stringa.
----
Stringa="aaa"+vbCrLf+vbCrLf+"bbb"+vbCrLf+vbCrLf+vbCrLf


giorgio rancati ha scritto:

Ok Giorgio funziona bene.
Grazie
@Alex

 ciao
Come ha detto Giorgio la soluzione di Alessandro non tiene conto della
possibilità
del doppio vbNewLine intermedio, questa soluzione però ha un problema
simile.
Vale a dire che mi elimina tanti caratteri finali quanti sono i
vbNewLine consequenziali
che trova nel testo intermedio.
La soluzione di Giorgio è quella che dopo le prove non mi ha dato
problemi.
Ciao Wlady grazie.
@Alex

Alessandro Baraldi ha scritto:

sì in effetti è molto simile alla mia, ma di sicuro molto più
semplificata
contento che tu abbia risolto :)
ciao

 ciao
Forse no mi sono spiegato bene.
La tua soluzione è si simile a quella di Giorgio ma ha un baco, cioè
che se metto vbNewLine multipli in posizioni intermedie mi mangia
caratteri finali.
Ciao
@Alex

Alessandro Baraldi ha scritto:

beh i bachi devono pur mangiare...altrimenti come fanno a diventare
farfalle ;)

 farfalle ;)
Bellissima battua, mi hai rinfrescato la giornata...!
;-)
Sono convinto sia un bachetto da poco, il problema è che dovrà
mangiare molto
per crescere...
Ciao buon WeekEnd
@Alex

 ac
Avevo capito male...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio news:1151689891.3...@p79g2000cwp.googlegroups.com...
MMmmmm, come ti dicevo il vbNewLine c'č in tutta la stringa, se uso il
Replace
che mi combina...?
Il problema č solo sui NewLine in coda, e non saprei come fermarmi
quando non ce ne sono piů in coda...!
Supponi che ci siano in coda 3 vbNewLine..
Es:
"Alex" & vbnewLine & "Sergio" & vbnewLine & "Roberto" & vbnewLine &
vbnewLine & vbnewLine
Come tolgo solo quelli in fondo..?
@Alex
[risposta]
Avevo capito che li volevi tigliere tutti e difatti mi sembrava strano che non utilizzassi la Replace...
Ciao.
-- 
Sergio MAZZA
Ciao.
-- 
Sergio MAZZA 

 Avevo capito male...
Conoscendoti (via post) mi sembrava chiaro.
Anch'io, facendo delle illazioni ed in modo incompleto, ho suggerito 
qualcosa che toglieva anche +newline intermedi.
In questi casi sento la mancanza delle espressioni regolari native.
un bel replace("\n+$","") sarebbe stato il massimo.
Ma con questo caldo perche' non stai al "Battistini" (esiste ancora?) a 
"panza all'aria?"
--
ac

Alessandro Baraldi ha scritto:

altrettanto a te
ciao

 ha scritto nel messaggio news:Yrrpg.5914$yg6....@tornado.fastwebnet.it...

Manchi da parecchio da Ostia vero?
Prova solo ad avvicinarti all'entrata di qualche gestore e poi mi fai sapere.
Ti dico solo che questa stagione, ai "locali" nei giorni feriali, ci hanno proposto un pacchetto con sconto del 10-20%!
Però se vuoi cedere Totti, Mammuccari e le orde di Veline non c'è problema; li trovi tutti qui...
Per fortuna la spiaggia migliore, quella che faceva parte della tenuta del Presidente, ancora resiste (leggi: i cancelli); ma devi 
alzarti alle 6 e andartene alle 20:00 o alle 13:00 sotto il solleone se vuoi cavartela con solo 45min. di auto.
No; Ostia l'estate è improponibile... Ne è passata di acqua sotto i ponti da quando mi facevo di corsa tutta la spiaggia da Levante 
a Ponente senza che ti rompevano i buttafuori. Eh sì! Negli stabilimenti ci sono loro che evitano il passaggio di chi vuole solo 
transitare e con l'asciugamano fermarsi un po' per prendere il sole. Ti si piazzano li o davanti ai tui piedi o ti ritrovi la nuca 
appoggiata sulle loro fette! Se poi se uno che se le cerca, non c'é problema, la scazzottata è garantita; anche se chiami i vigili 
(in)urbani e cerchi di far valere i 3m di battigia franca...
Basta che sennò mi si alza la temperatura e non è proprio il caso...
Ciao.
P.S. Ma farti vedere da queste parti noo? Il gelato lo fanno ancora buono e i krapfen pure...
-- 
Sergio MAZZA