QUEBRAR STRING A CADA 40 CARACTERES

KERPLUNK 10/06/2011 11:13:34
#376404
Certo, o que precisa fazer é eliminar o [Ô]Enter[Ô]:

textosplit = Split(Replace(texto, Chr(13), [Ô][Ô]), [Ô] [Ô])
MICHAELL 10/06/2011 11:19:56
#376405
Citação:

:
Certo, o que precisa fazer é eliminar o [Ô]Enter[Ô]:

textosplit = Split(Replace(texto, Chr(13), [Ô][Ô]), [Ô] [Ô])



certo.. mas o enter tem que ser uma nova linha tambem
KERPLUNK 10/06/2011 11:25:45
#376409
Então deve estar certo... pq onde tiver um enter no texto original, a linha vai quebrar...
MICHAELL 10/06/2011 11:42:45
#376411
nao é nao...
é mais complicado do que parece... tente fazer...

estou tentando e testando...
MICHAELL 10/06/2011 11:54:02
#376413
CARACA...
CONSEGUI FINALMENTE.... TIVE QUE TRATAR O ENTER PORQUE O ENTER NAO PODE CONTAR NOS 40 CARACTERES SE NAO O PROXIMO PARAGRAFO NAO DA CERTO


VEJA COMO FICOU

  Dim TextoQuebrado As String
Dim linha As String
Dim TextoSplit() As String
Dim J As Integer
Dim NovaLinha As String

TextoSplit = Split(Replace(TBConfig!TextoFormal, vbCrLf, [Ô] [ENTER] [Ô]), [Ô] [Ô])

For J% = 0 To UBound(TextoSplit)

If (TextoSplit(J%) = [Ô][ENTER][Ô]) Then
linha = linha & TextoSplit(J%)
NovaLinha = [Ô][Ô]

ElseIf 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, Replace(linha, [Ô][ENTER][Ô], vbCrLf)


ACREDITO QUE DE PRA MELHORAR ESSE CODIGO...
CAIO.FR.SP 10/06/2011 11:57:39
#376415
coloque essa função no form ou modulo;
Dim Saida as Printer

Function DivideTexto(Texto As String, Colunas As Integer)
Dim Linhas As Integer
Dim Rodape() As String
If Len(Texto) <= Colunas Then
Saida.Print Texto
Else
Linhas = Int(Len(Texto) / Colunas)
resto = Len(Texto) / Colunas
If resto > 0 Then
Linhas = Linhas + 1
End If
ReDim Rodape(Linhas)

For i = 0 To Linhas
Dim Inicio As Integer
Inicio = i * Colunas
If Inicio = 0 Then
Inicio = 1
Else
inico = Inicio + 1
End If
Saida.Print Mid(Texto, Inicio, Colunas)
Next i
End If
End Function


e chama a função assim:
DivideTexto(trim(seutexto),40)
MICHAELL 10/06/2011 13:49:21
#376434
Citação:

:
coloque essa função no form ou modulo;

Dim Saida as Printer

Function DivideTexto(Texto As String, Colunas As Integer)
Dim Linhas As Integer
Dim Rodape() As String
If Len(Texto) <= Colunas Then
Saida.Print Texto
Else
Linhas = Int(Len(Texto) / Colunas)
resto = Len(Texto) / Colunas
If resto > 0 Then
Linhas = Linhas + 1
End If
ReDim Rodape(Linhas)

For i = 0 To Linhas
Dim Inicio As Integer
Inicio = i * Colunas
If Inicio = 0 Then
Inicio = 1
Else
inico = Inicio + 1
End If
Saida.Print Mid(Texto, Inicio, Colunas)
Next i
End If
End Function


e chama a função assim:
DivideTexto(trim(seutexto),40)




mas e o enter? essa funcao nao funcionaria com paragrafos de textos

Citação:

:
tenta alinhar a esquerda ....

Function fAlinhaAEsquerda(Campo As String, Tamanho As Integer, Enchimento As String) As String
If Len(Trim(Campo)) > Tamanho Then
Campo = Mid(Trim(Campo), 1, Tamanho)
End If

fAlinhaAEsquerda = Trim(Campo) + Mid(String(Tamanho, Enchimento), 1, Tamanho - Len(Trim(Campo)))

End Function



?
Página 2 de 2 [18 registro(s)]
Tópico encerrado , respostas não são mais permitidas