Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Using TEXT - ENDTEXT
Message
 
 
To
06/01/2009 13:17:12
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 8 SP1
Miscellaneous
Thread ID:
01371436
Message ID:
01371443
Views:
20
VFP9 has PRETEXT 8 value that eliminate new line characters. In VFP8 you'll have to use CHRTRAN().
lcQtyFields = ""

FOR I = 1 TO 10
TEXT TO lcQtyFields NOSHOW TEXTMERGE ADDITIVE
,QTY<<I>> int
ENDTEXT
ENDFOR

TEXT TO lcTry2 NOSHOW TEXTMERGE PRETEXT 1+2+4
CREATE CURSOR output (
   F2 C(<<LEN(pop.f2)>>),
   CITY C(<<LEN(pop.city)>>)
   <<lcQtyFields>>)
ENDTEXT


lcTry2  = CHRTRAN(lcTry2,CHR(13)+CHR(10),"")
&lcTry2 
>I need to create a cursor on the fly. The field names are known, but the lengths depend on the length of an equivalent field in a different table. In addition, I need to add a variable number of integer fields. I can do this easily enough by piecing together a string variable
>CLOSE TABLES all
>CLEAR
>USE pop
>
>lcTry1 = "CREATE CURSOR output (F2 C(" + TRANSFORM(LEN(pop.f2)) +;
>             ", CITY C(" + TRANSFORM(LEN(pop.city))
>FOR I = 1 TO 10
>	lcTry1 = lcTry1 + ",QTY" + TRANSFORM(I) + " int"
>ENDFOR
>lcTry1 = lcTry1 + ")"	
>EXESCRIPT(lcTry1)
>
>
>(Almost) every time I see a post like this there is the suggestion to use TEXTMERGE as that makes the code more readable. I've rarely used this in the past and I can use some help getting it done properly. What I've come up with so far is
>CLOSE TABLES all
>CLEAR
>USE pop
>
>TEXT TO lcTry2 NOSHOW TEXTMERGE
>CREATE CURSOR output (
>   F2 C(<<LEN(pop.f2)>>),
>   CITY C(<<LEN(pop.city)>>)
>ENDTEXT
>FOR I = 1 TO 10
>    TEXT TO lcTry2 NOSHOW TEXTMERGE ADDITIVE
>       ,QTY<<I>> int
>    ENDTEXT
>ENDFOR
>
>TEXT TO lcTry2 NOSHOW TEXTMERGE ADDITIVE
>   )
>ENDTEXT
>EXECSCRIPT(CHRTRAN(lcTry2,CHR(13)+CHR(10),""))
>
>I'm looking for some help in
>
>1. Making the code a little cleaner
>2. Some parameter to TEXT which will eliminate the need to strip the CR/LF characters from the result
--sb--
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform