QUEBRAR STRING A CADA 40 CARACTERES
                    Ola amigos...
Como posso quebrar uma string a cada 40 caracteres?
DETALHE, nao pode cortar palavras no meio, tem que corta sempre em um espaço anterior
exemplo:
[Ô]EXEMPLO DE UM TEXTO QUE DEVE SER CORTADO A CADA 40 CARACTERES, MAS NAO PODE CORTAR NO MEIO DAS PALAVRAS, TEM QUE CORTAR SEMPRE EM UM ESPAÇO ANTERIOR. VEJA ESSE EXEMPLO COMO FICARIA[Ô]
tem que ficar assim:
EXEMPLO DE UM TEXTO QUE DEVE SER
CORTADO A CADA 40 CARACTERES, MAS NAO
PODE CORTAR NO MEIO DAS PALAVRAS, TEM QUE
CORTAR SEMPRE EM UM ESPAÇO ANTERIOR. VEJA
ESSE EXEMPLO COMO FICARIA
alguem sabe?
                
            Como posso quebrar uma string a cada 40 caracteres?
DETALHE, nao pode cortar palavras no meio, tem que corta sempre em um espaço anterior
exemplo:
[Ô]EXEMPLO DE UM TEXTO QUE DEVE SER CORTADO A CADA 40 CARACTERES, MAS NAO PODE CORTAR NO MEIO DAS PALAVRAS, TEM QUE CORTAR SEMPRE EM UM ESPAÇO ANTERIOR. VEJA ESSE EXEMPLO COMO FICARIA[Ô]
tem que ficar assim:
EXEMPLO DE UM TEXTO QUE DEVE SER
CORTADO A CADA 40 CARACTERES, MAS NAO
PODE CORTAR NO MEIO DAS PALAVRAS, TEM QUE
CORTAR SEMPRE EM UM ESPAÇO ANTERIOR. VEJA
ESSE EXEMPLO COMO FICARIA
alguem sabe?
                    Veja se isso te atende...
Dim texto As String
texto = [Ô]EXEMPLO DE UM TEXTO QUE DEVE SER CORTADO A CADA 40 CARACTERES, MAS NAO PODE CORTAR NO MEIO DAS PALAVRAS, TEM QUE CORTAR SEMPRE EM UM ESPAÇO ANTERIOR. VEJA ESSE EXEMPLO COMO FICARIA[Ô]
Dim textoquebrado As String
Dim linha As String
Dim textosplit
textosplit = Split(texto, [Ô] [Ô], 40)
For i% = 0 To UBound(textosplit)
If Len(linha) + Len(textosplit(i%)) < 40 Then
linha = linha + textosplit(i%) + [Ô] [Ô]
Else
textoquebrado = textoquebrado + linha + vbNewLine
linha = textosplit(i%) + [Ô] [Ô]
End If
Next i%
textoquebrado = textoquebrado + linha
Text1.Text = textoquebrado
Pra mim text1, tinha:
EXEMPLO DE UM TEXTO QUE DEVE SER
CORTADO A CADA 40 CARACTERES, MAS NAO
PODE CORTAR NO MEIO DAS PALAVRAS, TEM
QUE CORTAR SEMPRE EM UM ESPAÇO
ANTERIOR. VEJA ESSE EXEMPLO COMO
FICARIA
                
            Dim texto As String
texto = [Ô]EXEMPLO DE UM TEXTO QUE DEVE SER CORTADO A CADA 40 CARACTERES, MAS NAO PODE CORTAR NO MEIO DAS PALAVRAS, TEM QUE CORTAR SEMPRE EM UM ESPAÇO ANTERIOR. VEJA ESSE EXEMPLO COMO FICARIA[Ô]
Dim textoquebrado As String
Dim linha As String
Dim textosplit
textosplit = Split(texto, [Ô] [Ô], 40)
For i% = 0 To UBound(textosplit)
If Len(linha) + Len(textosplit(i%)) < 40 Then
linha = linha + textosplit(i%) + [Ô] [Ô]
Else
textoquebrado = textoquebrado + linha + vbNewLine
linha = textosplit(i%) + [Ô] [Ô]
End If
Next i%
textoquebrado = textoquebrado + linha
Text1.Text = textoquebrado
Pra mim text1, tinha:
EXEMPLO DE UM TEXTO QUE DEVE SER
CORTADO A CADA 40 CARACTERES, MAS NAO
PODE CORTAR NO MEIO DAS PALAVRAS, TEM
QUE CORTAR SEMPRE EM UM ESPAÇO
ANTERIOR. VEJA ESSE EXEMPLO COMO
FICARIA
                    ola amigo...
quase... mas nao deu certo ainda.. veja que estou usando #print
mas esta saindo torto.. veja como estou fazendo
Dim TextoQuebrado As String
Dim Linha As String
Dim TextoSplit
Dim j As Integer
            
TextoSplit = Split(TBConfig!TextoFormal, [Ô] [Ô], 40)
            
For j% = 0 To UBound(TextoSplit)
If Len(Linha) + Len(TextoSplit(j%)) < 40 Then
Linha = Linha + TextoSplit(j%) + [Ô] [Ô]
Else
Print #1, Linha
Linha = TextoSplit(j%) + [Ô] [Ô]
End If
Next j%
            quase... mas nao deu certo ainda.. veja que estou usando #print
mas esta saindo torto.. veja como estou fazendo
Dim TextoQuebrado As String
Dim Linha As String
Dim TextoSplit
Dim j As Integer
TextoSplit = Split(TBConfig!TextoFormal, [Ô] [Ô], 40)
For j% = 0 To UBound(TextoSplit)
If Len(Linha) + Len(TextoSplit(j%)) < 40 Then
Linha = Linha + TextoSplit(j%) + [Ô] [Ô]
Else
Print #1, Linha
Linha = TextoSplit(j%) + [Ô] [Ô]
End If
Next j%
                    na verdade o primeiro paragrafo funciona tranquilo, o problema é nos proximos paragrafos
estou pegando o texto do banco de dados que esta em um campo MEMORANDO... do ACCESS
talvez falte apenas um detalhe
                
            estou pegando o texto do banco de dados que esta em um campo MEMORANDO... do ACCESS
talvez falte apenas um detalhe
                    substitua 
TextoSplit = Split(TBConfig!TextoFormal, [Ô] [Ô], 40)
Por
TextoSplit = Split(TBConfig!TextoFormal, [Ô] [Ô])
            TextoSplit = Split(TBConfig!TextoFormal, [Ô] [Ô], 40)
Por
TextoSplit = Split(TBConfig!TextoFormal, [Ô] [Ô])
                    tente ai
            
            Dim TextoQuebrado As String
            Dim Linha As String
            Dim TextoSplit() As String
            Dim j As Integer
            
            TextoSplit = Split(TBConfig!TextoFormal, [Ô] [Ô])
            
            For j% = 0 To UBound(TextoSplit)
                If Len(TextoSplit(j%)) > 40 Then
                    j% = j% - 1
                    Linha = Linha & TextoSplit(j%) + VbCrLf
                Else
                    Linha = Linha & TextoSplit(j%) + [Ô] [Ô]
                End If
             Next j% 
             Print #1, LinhaCitação::
tente ai
Dim TextoQuebrado As String
Dim Linha As String
Dim TextoSplit() As String
Dim j As Integer
TextoSplit = Split(TBConfig!TextoFormal, [Ô] [Ô])
For j% = 0 To UBound(TextoSplit)
If Len(TextoSplit(j%)) > 40 Then
j% = j% - 1
Linha = Linha & TextoSplit(j%) + VbCrLf
Else
Linha = Linha & TextoSplit(j%) + [Ô] [Ô]
End If
Next j%
Print #1, Linha
amigo, dessa forma nem cortou o texto
 
                
                    Tem jeito de vc postar o texto inteiro aqui, assim, eu testo pra vc e faço funcionar...
                
            Citação::
Tem jeito de vc postar o texto inteiro aqui, assim, eu testo pra vc e faço funcionar...
amigo, estou testando com esse mesmo texto..mas com paragrafos gravado no banco ACCESS em um campo MEMORANDO
texto = [Ô]EXEMPLO DE UM TEXTO QUE DEVE SER CORTADO A CADA 40 CARACTERES, MAS NAO PODE CORTAR NO MEIO DAS PALAVRAS, TEM QUE CORTAR SEMPRE EM UM ESPAÇO ANTERIOR. VEJA ESSE EXEMPLO COMO FICARIA
EXEMPLO DE UM TEXTO QUE DEVE SER CORTADO A CADA 40 CARACTERES, MAS NAO PODE CORTAR NO MEIO DAS PALAVRAS, TEM QUE CORTAR SEMPRE EM UM ESPAÇO ANTERIOR. VEJA ESSE EXEMPLO COMO FICARIA
EXEMPLO DE UM TEXTO QUE DEVE SER CORTADO A CADA 40 CARACTERES, MAS NAO PODE CORTAR NO MEIO DAS PALAVRAS, TEM QUE CORTAR SEMPRE EM UM ESPAÇO ANTERIOR. VEJA ESSE EXEMPLO COMO FICARIA
[Ô]
                    estou quase conseguindo...
o problema parece ser nos paragrafos.. se for um texto continuo funciona normalmente.
                
            o problema parece ser nos paragrafos.. se for um texto continuo funciona normalmente.
                    estou fazendo assim...  
atrapalha só quando tem <enter> no banco de dados..
como é representado o <enter> quando vem do banco de dados com campo memorando?
                
               Dim TextoQuebrado As String
            Dim Linha As String
            Dim TextoSplit() As String
            Dim j As Integer
            Dim NovaLinha As String
            
            TextoSplit = Split(Trim(TBConfig!TextoFormal), [Ô] [Ô])
            
            For j% = 0 To UBound(TextoSplit)
            
                If Len(NovaLinha & TextoSplit(j%)) > 40 Then
                    
                        j% = j% - 1
                        Linha = Linha + vbCrLf
                        NovaLinha = [Ô][Ô] [ô] LIMPA
                   
                Else
                    
                    Linha = Linha & TextoSplit(j%) + [Ô] [Ô]
                    NovaLinha = NovaLinha & TextoSplit(j%) + [Ô] [Ô]
                End If
             Next j%
             Print #1, Linha
 atrapalha só quando tem <enter> no banco de dados..
como é representado o <enter> quando vem do banco de dados com campo memorando?
                        Tópico encerrado , respostas não são mais permitidas
                    
                

