Página 1 de 1
Remover quebra de linha
Enviado: 22 Nov 2021 15:06
por Itamar M. Lins Jr.
Olá!
Estou tentando remover um caractere que é interpretado como CHR LF + CR
Usando alltrim(descricao) não adianta.
Tem outro comando para pegar só o que tem escrito e visível ?
Saudações,
Itamar M. Lins Jr.
Remover quebra de linha
Enviado: 22 Nov 2021 15:55
por JoséQuintas
Talvez o Reg_Ex*, ou o StrTran() pra trocar caracteres.
Já vi lugares que trocam o Chr(13) + Chr(10) por Chr(10) + Chr(13), não sei porque.
Remover quebra de linha
Enviado: 22 Nov 2021 15:58
por Jairo Maia
Mas qual caractere é esse LF? Quebra de linha em Windows é composto por 2 caracteres, a saber Chr( 13 ) + Chr( 10 ), onde Chr( 13 ) é nominado CR e Chr( 10 ) nomindado LF.
Textos salvos pelo MemoEdit(), as linhas são terminadas por Soft carriage, qie é composto pelos caracteres Chr( 141 ) + Chr( 10 ). Para transformar Soft Carriage em Hard Carriage ( Chr( 13 ) + Chr( 10 ) ) tem a função HardCR( cString ), não sei se esse é o caso.
Se esse for o caso, basta então fazer:
Código: Selecionar todos
cVar := StrTran( HardCR( AllTrim( descricao ) ), Hb_EOL() )
Remover quebra de linha
Enviado: 22 Nov 2021 17:54
por marcosgambeta
Olá Itamar,
Visto que Windows usa CR + LF e Unix apenas LF, eu costumo resolver assim:
Código: Selecionar todos
cTexto := StrTran( cTexto, chr( 13 ) , "" ) // elimina CR (carriage return)
cTexto := StrTran( cTexto, chr( 10 ) , "" ) // elimina LF (line feed)
Qualquer quebra de linha é removida, seja CR+LF, LF+CR ou apenas LF.
Remover quebra de linha
Enviado: 22 Nov 2021 17:59
por Itamar M. Lins Jr.
Olá!
Acredito que vem da internet. Copiar e colar nome, etc do sintegra ou de alguma página em HTML.
Saudações,
Itamar M. Lins Jr.
Remover quebra de linha
Enviado: 22 Nov 2021 18:32
por marcosgambeta
Itamar,
Outra opção seria limpar da string tudo que for < 32. Veja o exemplo abaixo:
Código: Selecionar todos
PROCEDURE Main()
LOCAL cText
cText := "teste1 " + chr( 10 ) + " teste2" + chr( 9 ) + "teste3 " + chr( 25 ) + chr( 13 ) + chr( 10 )
? len( cText )
? cText
cText := ClearString( cText )
? len( cText )
? cText
RETURN
FUNCTION ClearString( cString )
LOCAL cNewString
LOCAL n
cNewString := ""
FOR n := 1 TO len( cString )
IF asc( substr( cString, n, 1 ) ) == 9 // TAB
cNewString += chr( 32 )
ELSEIF asc( substr( cString, n, 1 ) ) >= 32
cNewString += substr( cString, n, 1 )
ENDIF
NEXT n
RETURN cNewString
Neste caso, você tem a opção de decidir o que fazer com cada código de controle (faixa 00-31).