FORMATAR TAMANHO DE STRING NA FRASE

HELIO.COSTA 07/05/2012 12:34:33
#401482
Boa tarde!

Tenho um campo texto com tamanho 70 para nome.
Só que para imprimir não cabe estes 70 caracteres na pagima, gostaria que quando no nome tivesse mais de 40 caracteres partiria esta string para imprimir o restante do nome na segunda linha, mas pode cortar o nome no meio, e sim entre sobrenomes.
Ex: MARIA JOSE DA SILVA SANTO CARDOSO MEDEIROS DA CONCEICAO ESPIRITO PORTO

Pegando tamanho da string fica assim:
MARIA JOSE DA SILVA SANTO CARDOSO MEDEIR
OS DA CONCEICAO ESPIRITO PORTO

Gostaria que ficasse assim:
MARIA JOSE DA SILVA SANTO CARDOSO
MEDEIROS DA CONCEICAO ESPIRITO PORTO
LUCASVAZ 07/05/2012 13:07:09
#401485
Uma idéia seria você contar antes quantos caracteres há na string. Caso o resultado seja maior que 70 você quebrar a string em duas, quebre-a pelo espaço [Ô] [Ô], e guardar em um vetor para ser exibido posteriormente.

Aqui tem como você utilizar estes atributos:

http://www.macoratti.net/vbn_str.htm

Se atente ao .lenght e .Split

Tente implementar sozinho, se tiver dúvidas avise.

Att,

Lucas
HELIO.COSTA 07/05/2012 13:37:31
#401486
Dim matriz() As String
Dim i As Integer, Contador as integer
Dim ARRA() As String
Dim texto As String, arrau as string, novo as string, novo1 as string
texto = text1.text
Contador = len(texto)
If Contador >= 40 Then
arra = Split(texto, [Ô] [Ô])
For i = 0 To UBound(arrau)
ARRA(i) = arrau(i)
Next
i = 1
novo = ARRA(i)
do while len(ARRA(i)) <= 40
novo1= novo1 & ARRA(i) & ARRA(i + 1)
loop

Mais ou menos isto?
E como pegar a segunda parte?
GANDA.NICK 07/05/2012 16:00:22
#401501
Resposta escolhida
Private Sub Command1_Click()
Dim i As Integer, Contador As Integer
Dim ARRA() As String
Dim texto As String, novo As String, novo1 As String
texto = Text1.Text
Contador = Len(texto)
If Contador >= 40 Then
ARRA = Split(texto, [Ô] [Ô])
Contador = 0
For i = 0 To UBound(ARRA)
Contador = Contador + Len(ARRA(i)) + 1
If Contador < 40 Then novo = novo & ARRA(i) & [Ô] [Ô] Else novo1 = novo1 & ARRA(i) & [Ô] [Ô]
Next [ô]i
MsgBox [Ô]1ª linha: [Ô] & novo
MsgBox [Ô]2ª linha: [Ô] & novo1
End If
End Sub


nao precisa do while... basta aí um if para fazer a separação das linhas.....
HELIO.COSTA 07/05/2012 16:12:31
#401502
Exatamente o que precisava.
Muito obrigado.
Tópico encerrado , respostas não são mais permitidas