×
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

Replace a string with Chr(13)

Replace a string with Chr(13)

Replace a string with Chr(13)

(OP)
Hello all!

I have a problem...

In my text, I have a long text and some "+<chr(13)>+<chr(10)>" in the middle.

When I try to replace with Strtran, does not work.

CODE --> vfp

lc_funcionario = Proper("douglas lodetti garcia")

lc_texto = "Prezado(a) Colaborador(a) <lc_funcionario>, +<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>"+;
"Pela presente carta de cientificação, a TVMED lhe dá a devida ciência de que a nossa política de premiação mensal compreende em atingir o "+;
"mínimo de: +<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>* 200 ligações por dia +<chr(13)>+<chr(10)>* 100 e-mails por mês +<chr(13)>+<chr(10)>* "+;
"15 pesquisas por mês +<chr(13)>+<chr(10)>* Falar com 10 medicos por dia +<chr(13)>+<chr(10)>* Máximo de 12 faltas no semestre sem "+;
"justificativa +<chr(13)>+<chr(10)>* Envio de CD Rom e/ou fitas para médicos, secretarias de sa&uacute;de e outros órgãos p&uacute;blicos, "+;
"hospitais, +<chr(13)>+<chr(10)>  faculdades de medicina e/ou laboratórios, a ser estipulado a quantidade mensalmente de acordo com "+;
"a +<chr(13)>+<chr(10)>  campanha em vigor e também de acordo com os períodos em que não há "+;
"congressos +<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>Tal procedimento "+;
"deverá ser rigorosamente respeitado, e que não será premiado aquele que não atingir qualquer um dos itens previamente estipulados acima, "+;
"não possuindo tais prêmios característica habitual."

lc_texto = Strtran(lc_texto,"<lc_funcionario>",lc_funcionario)
lc_texto = Strtran(lc_texto,"<chr(13)>","chr(13)")
lc_texto = Strtran(lc_texto,"<chr(10)>","chr(10)") 

How can I replace the strings to the chr itself?

RE: Replace a string with Chr(13)

All that you are doing is replacing one quoted string with another. So you will end up with the same text, but without the angle brackets.

What you want is something like this:

CODE -->

lc_texto = Strtran(lc_texto,"<chr(13)>",chr(13))
lc_texto = Strtran(lc_texto,"<chr(10)>",chr(10)) 

In other words, remove the quote marks from the third STRTRAN() parameter.

Mike

__________________________________
Mike Lewis (Edinburgh, Scotland)

Visual FoxPro articles, tips and downloads

RE: Replace a string with Chr(13)

Presumably, you also want to remove the + signs. If so, do this instead:

CODE -->

lc_texto = Strtran(lc_texto,"+<chr(13)>",chr(13))
lc_texto = Strtran(lc_texto,"+<chr(10)>",chr(10)) 


I've just done myself, and this is what I get:

CODE -->

Prezado(a) Colaborador(a) Douglas Lodetti Garcia, 


Pela presente carta de cientificação, a TVMED lhe dá a devida ciência de que a nossa política de premiação mensal compreende em atingir o mínimo de: 

* 200 ligações por dia 
* 100 e-mails por mês 
* 15 pesquisas por mês 
* Falar com 10 medicos por dia 
* Máximo de 12 faltas no semestre sem justificativa 
* Envio de CD Rom e/ou fitas para médicos, secretarias de sa&uacute;de e outros órgãos p&uacute;blicos, hospitais, 
  faculdades de medicina e/ou laboratórios, a ser estipulado a quantidade mensalmente de acordo com a 
  campanha em vigor e também de acordo com os períodos em que não há congressos 




Tal procedimento deverá ser rigorosamente respeitado, e que não será premiado aquele que não atingir qualquer um dos itens previamente estipulados acima, não possuindo tais prêmios característica habitual. 

Does that look right to you?

Mike

__________________________________
Mike Lewis (Edinburgh, Scotland)

Visual FoxPro articles, tips and downloads

RE: Replace a string with Chr(13)

(OP)
Yeah, it worked!

I was loging me in easy coding... Weird in Debug/Watch, the content of the variable was not changing.

RE: Replace a string with Chr(13)

What you have there is almost in a syntax for textmerge brackets, but indeed because of the + outside of the brackets textmerging won't work out.

This can be fixed towards textmerging this way:

CODE

lc_texto = strtran(lc_texto,'+<','<')
lc_texto = strtran(lc_texto,'><','+') 

So overall this will give you a good result:

CODE

lc_funcionario = Proper("douglas lodetti garcia")

lc_texto = "Prezado(a) Colaborador(a) <lc_funcionario>, +<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>"+;
"Pela presente carta de cientificação, a TVMED lhe dá a devida ciência de que a nossa política de premiação mensal compreende em atingir o "+;
"mínimo de: +<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>* 200 ligações por dia +<chr(13)>+<chr(10)>* 100 e-mails por mês +<chr(13)>+<chr(10)>* "+;
"15 pesquisas por mês +<chr(13)>+<chr(10)>* Falar com 10 medicos por dia +<chr(13)>+<chr(10)>* Máximo de 12 faltas no semestre sem "+;
"justificativa +<chr(13)>+<chr(10)>* Envio de CD Rom e/ou fitas para médicos, secretarias de sa&uacute;de e outros órgãos p&uacute;blicos, "+;
"hospitais, +<chr(13)>+<chr(10)>  faculdades de medicina e/ou laboratórios, a ser estipulado a quantidade mensalmente de acordo com "+;
"a +<chr(13)>+<chr(10)>  campanha em vigor e também de acordo com os períodos em que não há "+;
"congressos +<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>+<chr(13)>+<chr(10)>Tal procedimento "+;
"deverá ser rigorosamente respeitado, e que não será premiado aquele que não atingir qualquer um dos itens previamente estipulados acima, "+;
"não possuindo tais prêmios característica habitual."


lc_texto = strtran(lc_texto,'+<','<')
lc_texto = strtran(lc_texto,'><','+')
lcMerged = Textmerge(lc_texto,.f.,'<','>') 

Which results in lcMErged having this text:

Prezado(a) Colaborador(a) Douglas Lodetti Garcia, 


Pela presente carta de cientificação, a TVMED lhe dá a devida ciência de que a nossa política de premiação mensal compreende em atingir o mínimo de: 

* 200 ligações por dia 
* 100 e-mails por mês 
* 15 pesquisas por mês 
* Falar com 10 medicos por dia 
* Máximo de 12 faltas no semestre sem justificativa 
* Envio de CD Rom e/ou fitas para médicos, secretarias de sa&uacute;de e outros órgãos p&uacute;blicos, hospitais, 
  faculdades de medicina e/ou laboratórios, a ser estipulado a quantidade mensalmente de acordo com a 
  campanha em vigor e também de acordo com os períodos em que não há congressos 




Tal procedimento deverá ser rigorosamente respeitado, e que não será premiado aquele que não atingir qualquer um dos itens previamente estipulados acima, não possuindo tais prêmios característica habitual. 

I would go that route instead of rolling your own strtran, as the placeholder <lc_funcionario> indicates it's really meant to be used with textmerge.

You could have it much easier in terms of line breaks as there is TEXT..ENDTEXT and all of that can be done with the linebreaks just as part of the multiline TEXT...ENDTEXT string:

CODE

Local lcMerged, lc_funcionario
lc_funcionario = Proper("douglas lodetti garcia")

Text To lcMerged Textmerge Noshow
Prezado(a) Colaborador(a) <<lc_funcionario>>, 


Pela presente carta de cientificação, a TVMED lhe dá a devida ciência de que a nossa política de premiação mensal compreende em atingir o mínimo de: 

* 200 ligações por dia 
* 100 e-mails por mês 
* 15 pesquisas por mês 
* Falar com 10 medicos por dia 
* Máximo de 12 faltas no semestre sem justificativa 
* Envio de CD Rom e/ou fitas para médicos, secretarias de sa&uacute;de e outros órgãos p&uacute;blicos, hospitais, 
  faculdades de medicina e/ou laboratórios, a ser estipulado a quantidade mensalmente de acordo com a 
  campanha em vigor e também de acordo com os períodos em que não há congressos 




Tal procedimento deverá ser rigorosamente respeitado, e que não será premiado aquele que não atingir qualquer um dos itens previamente estipulados acima, não possuindo tais prêmios característica habitual.
EndText 
Notice I changed this to use the double << and >> textmerging brackets.

IF you have more code like that you better change it this way, as this is covering not only chr(13) and chr(10) much easier by actually having the line breaks in code, but also takes into account any textmerge placeholders like variable names as in <<lc_funcionario>>.

Besides, you can also put the text into files and do

CODE

lcMerged = Textmerge(FileToStr(textmergefile)) 
Or put the template texts into memos and do

CODE

lcMerged = Textmerge(memofield) 

Bye, Olaf.

Olaf Doschke Software Engineering
https://www.doschke.name

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close