QUEBRAR STRING A CADA 40 CARACTERES
Certo, o que precisa fazer é eliminar o [Ô]Enter[Ô]:
textosplit = Split(Replace(texto, Chr(13), [Ô][Ô]), [Ô] [Ô])
textosplit = Split(Replace(texto, Chr(13), [Ô][Ô]), [Ô] [Ô])
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
Então deve estar certo... pq onde tiver um enter no texto original, a linha vai quebrar...
nao é nao...
é mais complicado do que parece... tente fazer...
estou tentando e testando...
é mais complicado do que parece... tente fazer...
estou tentando e testando...
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
ACREDITO QUE DE PRA MELHORAR ESSE CODIGO...
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...
coloque essa função no form ou modulo;
e chama a função assim:
DivideTexto(trim(seutexto),40)
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)
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
?
Tópico encerrado , respostas não são mais permitidas