Remover Espaço em branco
Moderador: Moderadores
-
JUDIVAN CONTABIL
- Usuário Nível 2

- Mensagens: 55
- Registrado em: 20 Mai 2011 07:42
- Localização: IMACULADA-PB
Remover Espaço em branco
Ola pessoal,
Gataria de ajuda para remover espaços em branco tanto na direita quanto na esquerta, uso o clipper 5.2
Faço assim: mas nao esta removendo.
VNome:=Alltrim(razao)
Agradece
Judivan
Gataria de ajuda para remover espaços em branco tanto na direita quanto na esquerta, uso o clipper 5.2
Faço assim: mas nao esta removendo.
VNome:=Alltrim(razao)
Agradece
Judivan
Remover Espaço em branco
Sendo a variável do tipo caractere, para remover os espaços em branco à direita e à esquerda usa-se a função AllTrim() mesmo. Tem que funcionar. Se você utilizar o debugger, verá que logo após o uso dessa função a variável é ajustada.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Remover Espaço em branco
Olá Judivan,
Salvo se vc estiver usando o HARD CARRIAGE RETURN como caracter 141. Se for isso, o AllTrim, não entende os espaços do final como tal. Se não for isso, o Maligno já disse tudo.
Considerando que seja isso, faça assim:
MemoTran( cExpr, cHard-Fix, cSoft-Fix )
MemoTran sem a definição dos parametros cHard-Fix e cSoft-Fix, retorna a expressão sem os carateres de Final de linha e retorno de carro. Se vc precisar somar esta linha a outra, deve acrescentar os controles:
Salvo se vc estiver usando o HARD CARRIAGE RETURN como caracter 141. Se for isso, o AllTrim, não entende os espaços do final como tal. Se não for isso, o Maligno já disse tudo.
Considerando que seja isso, faça assim:
Código: Selecionar todos
VNome:=Alltrim(MemoTran(razao))MemoTran sem a definição dos parametros cHard-Fix e cSoft-Fix, retorna a expressão sem os carateres de Final de linha e retorno de carro. Se vc precisar somar esta linha a outra, deve acrescentar os controles:
Código: Selecionar todos
VNome+Chr(13)+Chr(10)
ou
Vnome+Chr(141)+Chr(10)Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
-
JUDIVAN CONTABIL
- Usuário Nível 2

- Mensagens: 55
- Registrado em: 20 Mai 2011 07:42
- Localização: IMACULADA-PB
Remover Espaço em branco
Ola Jairo Maia
Fiz assim:
VNome:=Alltrim(MemoTran(razao))
Mas nao funcionou.
Judivan
Fiz assim:
VNome:=Alltrim(MemoTran(razao))
Mas nao funcionou.
Judivan
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Remover Espaço em branco
Olá Judivan,
Então vc tem caracteres que está tomando como espaço e não são. Existem caracteres que podem parecer espaço mas não são espaços. P.ex. o caracter 255.
Sem usar AllTrim, MemoTran, ou qualquer outra função, faça o teste com o exmplo abaixo. Coloque a função Testa_String no seu projeto, e chama a verificação:
Se a janela Alert aparecer, o caracter é inválido.
Então vc tem caracteres que está tomando como espaço e não são. Existem caracteres que podem parecer espaço mas não são espaços. P.ex. o caracter 255.
Sem usar AllTrim, MemoTran, ou qualquer outra função, faça o teste com o exmplo abaixo. Coloque a função Testa_String no seu projeto, e chama a verificação:
Código: Selecionar todos
Testa_String( razao )
FuncTion Testa_String( cStr )
Local i, nCtr
Cls
For i = 1 To Len( cStr )
nCtr := Asc( Uppe( SubsT( cStr, i, 1 ) ) )
If nCtr # 32 .And. ( nCtr < 65 .Or. nCtr > 90 )
Alert( "Caracter invalido => " + Str( nCtr ) )
Endi
Next
ReturnAbraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
-
JUDIVAN CONTABIL
- Usuário Nível 2

- Mensagens: 55
- Registrado em: 20 Mai 2011 07:42
- Localização: IMACULADA-PB
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Remover Espaço em branco
Olá Judivan,
Estou considerando que não existe acentuação, levando em conta um tópico que vc pedia para remover caracteres especiais. Estou também levando em conta que essa variavel tenha o conteúdo de campo. Se a idéia for salvar em algum arquivo ASCII, não em banco de dados, vc precisa acrescentar os caracteres de controle.
Tente assim, e veja se vai funcionar:Post se der resultado. Se não der resultado, forneça mais informações, p.ex., quais caractres acusou como inválido.
Estou considerando que não existe acentuação, levando em conta um tópico que vc pedia para remover caracteres especiais. Estou também levando em conta que essa variavel tenha o conteúdo de campo. Se a idéia for salvar em algum arquivo ASCII, não em banco de dados, vc precisa acrescentar os caracteres de controle.
Tente assim, e veja se vai funcionar:
Código: Selecionar todos
FuncTion Testa_String( cStr )
Local i, nCtr, cStrFix := Uppe(cStr)
Cls
For i = 1 To Len( cStr )
nCtr := Asc( Uppe( SubsT( cStr, i, 1 ) ) )
If nCtr # 32 .And. ( nCtr < 65 .Or. nCtr > 90 )
cStrFix := StrTran( cStrFix, Chr( nCtr ) )
Endi
Next
Return AllTrim( cStrFix )Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Remover Espaço em branco (DE UM MEMO)
Ah, sendo memo a história é outra. Quando for postar a dúvida, por favor, não se esqueça de dar os "detalhes" que fazem a diferença na análise. O colega Jairo está certo. Sendo um memo, o procedimento não será efetuado com um simples AllTrim().
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
JUDIVAN CONTABIL
- Usuário Nível 2

- Mensagens: 55
- Registrado em: 20 Mai 2011 07:42
- Localização: IMACULADA-PB
Remover Espaço em branco
Desculpe, nao deu certo ainda
estou usando os dados abaixo:
Desculpe
e agradeço mais uma vez
Judivan
estou usando os dados abaixo:
Código: Selecionar todos
*****************************************************************
SELECT CONFIG
vSETA1 :="|"
vREG :="0000"
vSETA2 :="|"
vCOD_VER :=config->COD_VER
vSETA3 :="|"
vCOD_FIN :=config->COD_FIN
vSETA4 :="|"
vDT_INI :=LimpaStr(DTOC(vDataI))
vSETA5 :="|"
vDT_FIN :=LimpaStr(DTOC(VdataF))
vSETA6 :="|"
vNOME :=Testa_String(Substr(config->Razao,1,40))
vSETA7 :="|"
vCNPJ :=STRZERO(Val(LimpaStr(CGC)),14)
vSETA8 :="|"
vCPF :="0"
vSETA9 :="|"
vUF :=config->UF
vSETA10 :="|"
*vIE :=Alltrim(STR(Val(LimpaStr(Config->IE)),14))
vIE :=Testa_String(IE)
vSETA11 :="|"
vCOD_MUN :=config->COD_MUNI
vSETA12 :="|"
vIM :="0"
vSETA13 :="|"
vSUFRAMA :="0"
vSETA14 :="|"
vIND_PERFIL:=config->IND_PERFIL
vSETA15 :="|"
vIND_ATIV :=config->IND_ATIV
vSETA16 :="|"
SELECT REG0000
IF LASTREC()=0
APPEND BLANK
REPL SETA1 WITH vSETA1,;
REG WITH vREG,;
SETA2 WITH vSETA2,;
COD_VER WITH vCOD_VER,;
SETA3 WITH vSETA3,;
COD_FIN WITH vCOD_FIN,;
SETA4 WITH vSETA4,;
DT_INI WITH vDT_INI,;
SETA5 WITH vSETA5,;
DT_FIN WITH vDT_FIN,;
SETA6 WITH vSETA6,;
NOME WITH vNOME,;
SETA7 WITH vSETA7,;
CNPJ WITH vCNPJ,;
SETA8 WITH vSETA8,;
CPF WITH vCPF,;
SETA9 WITH vSETA9,;
UF WITH vUF,;
SETA10 WITH vSETA10,;
IE WITH vIE,;
SETA11 WITH vSETA11,;
COD_MUN WITH vCOD_MUN,;
SETA12 WITH vSETA12,;
IM WITH vIM,;
SETA13 WITH vSETA13,;
SUFRAMA WITH vSUFRAMA,;
SETA14 WITH vSETA14,;
IND_PERFIL WITH vIND_PERFIL,;
SETA15 WITH vSETA15,;
IND_ATIV WITH vIND_ATIV,;
SETA16 WITH vSETA16
ENDIF
********************
onde cria o seguinte arquivo
|0000|201|0|01052011|31052011|ADRIANA ACIOLE RODRIGUES |12222481000169|0 |PB| |20354 |0 |0 |A|1|
so que este aruivo tem que ficar sem os espaços, ou seja:
|0000|201|0|01052011|31052011|ADRIANA ACIOLE RODRIGUES|12222481000169|0|PB| |20354|0|0|A|1|
e agradeço mais uma vez
Judivan
Editado pela última vez por Maligno em 24 Jun 2011 17:53, em um total de 2 vezes.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Remover Espaço em branco (DE UM MEMO)
Olá Maligno,
Pois é... Não está me parecendo que ele está extraindo o campo "razão" de um campo memo. Não entendi então pq não funcionou o ultimo exemplo.
Olá Judivan,
Da minha parte, vou pedir para vc anexar os arquivos CONFIG e REG0000 com alguns registros para podermos verificar o que está ocorrendo.
Pois é... Não está me parecendo que ele está extraindo o campo "razão" de um campo memo. Não entendi então pq não funcionou o ultimo exemplo.
Olá Judivan,
Da minha parte, vou pedir para vc anexar os arquivos CONFIG e REG0000 com alguns registros para podermos verificar o que está ocorrendo.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Remover Espaço em branco (DE UM MEMO)
Judivan,
Observando melhor seu post, surgiu outra dúvida.
O resultado que vc está obtendo é exatamente este?:
Ou seja, o problema é apenas um espaço depois de Razao? Pq se este é o resultado obtido, e como razão está sendo carregado com 40 caracteres, então se o problema for esse, verifique se quanto vc está montando a variavel: vSETA7 :="|", está realmente assim, ou em se em sua função não está assim " |", ou seja com um espaço antes. Assim como as demais que está chegando com espaço adicional. Pode ser nos "|" que eles estão colocados.
Se tiver correto, então como disse no post anterior, somente vendo seus arquivos para entender.
Observando melhor seu post, surgiu outra dúvida.
O resultado que vc está obtendo é exatamente este?:
Código: Selecionar todos
|0000|201|0|01052011|31052011|ADRIANA ACIOLE RODRIGUES |12222481000169|0 |PB| |20354 |0 |0 |A|1|Se tiver correto, então como disse no post anterior, somente vendo seus arquivos para entender.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Remover Espaço em branco (DE UM MEMO)
Mas é memo ou não é????
Agora não está parecendo mesmo. Alterei o título de novo. :[
Ademais, na razão social, há uma função chamada Testa_String() que não deve limpar piçiroca nenhuma. Até porque há um SubStr(,,40). Se for pra eliminar os espaços INTERNOS não tem Alltrim() que funcione mesmo. A única solução é alterar a string ENQUANTO ela é formada (aquele bloco inicial), e não depois que a caca já estiver feita.
Agora não está parecendo mesmo. Alterei o título de novo. :[
Ademais, na razão social, há uma função chamada Testa_String() que não deve limpar piçiroca nenhuma. Até porque há um SubStr(,,40). Se for pra eliminar os espaços INTERNOS não tem Alltrim() que funcione mesmo. A única solução é alterar a string ENQUANTO ela é formada (aquele bloco inicial), e não depois que a caca já estiver feita.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
JUDIVAN CONTABIL
- Usuário Nível 2

- Mensagens: 55
- Registrado em: 20 Mai 2011 07:42
- Localização: IMACULADA-PB
Remover Espaço em branco
Mesmo retirando o SubStr(,,40) o Alltrim() nao funciona:
o arquivo CONFIG
o arquivo CONFIG
Código: Selecionar todos
*****************************************************************
SELECT CONFIG
vSETA1 :="|"
vREG :="0000"
vSETA2 :="|"
vCOD_VER :=config->COD_VER
vSETA3 :="|"
vCOD_FIN :=config->COD_FIN
vSETA4 :="|"
vDT_INI :=LimpaStr(DTOC(vDataI))
vSETA5 :="|"
vDT_FIN :=LimpaStr(DTOC(VdataF))
vSETA6 :="|"
vNOME :=Alltrim(config->Razao)
vSETA7 :="|"
vCNPJ :=STRZERO(Val(LimpaStr(CGC)),14)
vSETA8 :="|"
vCPF :="0"
vSETA9 :="|"
vUF :=config->UF
vSETA10 :="|"
vIE :=Alltrim(Config->IE)
vSETA11 :="|"
vCOD_MUN :=config->COD_MUNI
vSETA12 :="|"
vIM :="0"
vSETA13 :="|"
vSUFRAMA :="0"
vSETA14 :="|"
vIND_PERFIL:=config->IND_PERFIL
vSETA15 :="|"
vIND_ATIV :=config->IND_ATIV
vSETA16 :="|"
que cria do arquivo REG0000
SELECT REG0000
IF LASTREC()=0
APPEND BLANK
REPL SETA1 WITH vSETA1,;
REG WITH vREG,;
SETA2 WITH vSETA2,;
COD_VER WITH vCOD_VER,;
SETA3 WITH vSETA3,;
COD_FIN WITH vCOD_FIN,;
SETA4 WITH vSETA4,;
DT_INI WITH vDT_INI,;
SETA5 WITH vSETA5,;
DT_FIN WITH vDT_FIN,;
SETA6 WITH vSETA6,;
NOME WITH vNOME,;
SETA7 WITH vSETA7,;
CNPJ WITH vCNPJ,;
SETA8 WITH vSETA8,;
CPF WITH vCPF,;
SETA9 WITH vSETA9,;
UF WITH vUF,;
SETA10 WITH vSETA10,;
IE WITH vIE,;
SETA11 WITH vSETA11,;
COD_MUN WITH vCOD_MUN,;
SETA12 WITH vSETA12,;
IM WITH vIM,;
SETA13 WITH vSETA13,;
SUFRAMA WITH vSUFRAMA,;
SETA14 WITH vSETA14,;
IND_PERFIL WITH vIND_PERFIL,;
SETA15 WITH vSETA15,;
IND_ATIV WITH vIND_ATIV,;
SETA16 WITH vSETA16
ENDIF
********************
Criando o Arquivo TXT
|0000|201|0|01052011|31052011|ADRIANA ACIOLE RODRIGUES->space(35)usado (29)remover(6)por exemplo |12222481000169|0 ->aqui espaço para remover |PB|161726070->aqui espaço para remover |20354->aqui espaço para remover |0 |0 |A|1|
pra ficar assim:
|0000|201|0|01052011|31052011|ADRIANA ACIOLE RODRIGUES|12222481000169|0|PB|161726070|20354|0|0|A|1|
Editado pela última vez por Maligno em 24 Jun 2011 19:50, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Remover Espaço em branco
Ahhh mas pudera... remover espaços nas extremidades sim não no meio. A utilização do alltrim() como os colegas bem indicaram, deve ser usado no momento em que é feita a concatenação e não depois.Criando o Arquivo TXT
|0000|201|0|01052011|31052011|ADRIANA ACIOLE RODRIGUES->space(35)usado (29)remover(6)por exemplo |12222481000169|0 ->aqui espaço para remover |PB|161726070->aqui espaço para remover |20354->aqui espaço para remover |0 |0 |A|1|
pra ficar assim:
|0000|201|0|01052011|31052011|ADRIANA ACIOLE RODRIGUES|12222481000169|0|PB|161726070|20354|0|0|A|1|
Exemplo:
"|0000|201|0|01052011|31052011|"+alltrim(nome)+"|12222481000169|0|PB|161726070|20354|0|0|A|1|"
Se aind não funcionar, é porque nesse nome ou razão tem algum caracter que não é espaço. talvez um chr(255), daí pode utilizar a função charrem() da CA-Tools para removê-lo.
Você também pode fazer a sua propri função que apenas aceita a-z, A-Z e 0-9 e o resto desprezar.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Remover Espaço em branco
Funções como charrem() não funcionarão corretamente, pois na linha de texto pode haver nomes com espaços intermediários que não podem ser removidos. O ideal é tratar isso, como eu disse, na geração da linha. Não depois dela criada.
PS: Judivan, por favor, não deixe de postar código fonte entre tags de indentação de código. Facilita a leitura por parte dos colegas que tentam ajudá-lo. É a segunda vez que ajusto por você.
PS: Judivan, por favor, não deixe de postar código fonte entre tags de indentação de código. Facilita a leitura por parte dos colegas que tentam ajudá-lo. É a segunda vez que ajusto por você.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
