Karen,

Before you give up, try a variable as =(SFIL(' ',674) + char(255)) and the
SELECT above.

That's usually a non-breaking space, and there's a chance that it won't
blow up the process at the receiving end.

Bill

On Mon, Jan 5, 2015 at 6:43 PM, Karen Tellef <[email protected]> wrote:

> Thanks but nope, it still does not retain the 675 sfil-ed spaces at the
> end.
>
> Looks like maybe I will have to resort to using a cursor with a
> sfil/sput/write.  I don't want to do that because there are thousands of
> rows to cursor through, and this one select is almost instantaneous.
>
> Karen
>
>
>  -----Original Message-----
> From: Bill Downall <[email protected]>
> To: RBASE-L Mailing List <[email protected]>
> Sent: Mon, Jan 5, 2015 5:20 pm
> Subject: [RBASE-L] - Re: Fixed field file
>
>  Karen,
> SELECT that way does its own CR/LF.
> How about:
> SET V v675spaces TEX = (SFIL(' ', 675))
> ...Blah blah
> SELECT ( LJS(SGET(policy_no,12,1),50) + LJS(tmpUniqueText,50) + LJS(ssn,9)
> + LJS(firstname,50) +
>   + .......    + .v675spaces   )=1450 +
>   FROM tmpMIB
> Bill
>  (sent from Android mobile)
> On Jan 5, 2015 6:10 PM, "Karen Tellef" <[email protected]> wrote:
>
>> Well, Albert's solution ALMOST works.  It does indeed put a carriage
>> return exactly where I want it, so it retains the 675 blank spaces at the
>> end.  However, it puts an extra carriage return (therefore a blank row)
>> between each row of data.  Is there a way to suppress that, like a
>> "write.... continue" would?  Here's the relevant code and how different
>> "vCRLF" variables evaluated:
>>
>> SET WIDTH 1500
>> SET VAR vCRLF = (CHAR(013))
>> SET HEADINGS OFF
>> SET SELMARGIN 1
>> OUTPUT MIB.TXT
>> SELECT ( LJS(SGET(policy_no,12,1),50) + LJS(tmpUniqueText,50) +
>> LJS(ssn,9) + LJS(firstname,50) +
>>   + .......    + (SFIL(' ',675)) + .vCRLF    )=1450 +
>>   FROM tmpMIB
>> OUTPUT SCREEN
>>
>>
>> Value of vCRLF:
>> char(013) + char(010)    this puts a blank row between each data row
>> char(013)    same as above
>> char(010)    does not retain the blank spaces, does a carriage return
>> right after last data
>>
>> Karen
>>
>>
>>
>>  -----Original Message-----
>> From: Albert Berry <[email protected]>
>> To: RBASE-L Mailing List <[email protected]>
>> Sent: Sun, Jan 4, 2015 6:18 pm
>> Subject: [RBASE-L] - Re: Fixed field file
>>
>>  Would something like this work to create the line? Assumption is no
>> CRLF at the end of the variable .vDataLine.
>>
>> SELECT (DataLine + (SFIL(' ',675)) + .vCRLF) FROM ...
>>
>> Albert
>>
>>
>>
>> On 1/4/2015 1:14 PM, Karen Tellef wrote:
>>
>> I need to create a file with fixed field lengths.  Rather than doing
>> SFIL/SPUT I did a "select" statement and it works great and is easy to
>> code, except...
>>
>> I need to have 675 blank spaces at the end of each line and I can't
>> figure out how to do that using a "select" statement.  Has anyone done
>> that, or do I need to use SFIL/SPUT.    According to my notes, if I use
>> SFIL/SPUT I'll have to use a cursor and then do something like this (and
>> thanks to whoever originally posted this code and I saved it):
>>
>>
>>    --Add CarriageReturn/LineFeed charaters to the line
>> Set var vDataLine = (SPUT(.vDataLine,.vCRLF,.vPastEnd))
>>
>>   --Make sure no trash data exists beyond CR/LF
>> Set var vDataLine = (SGET(.vDataLine,..vTotalLength,1))
>>
>>   --Write the line, telling RBASE not to add its own CRLF
>>  WRITE .vDataLine  CONTINUE
>>
>>
>>  Karen
>>
>>
>> --
>> A democracy ..." can only exist until the majority discovers it can vote 
>> itself largess out of the public treasury."
>> Attributed to Alexander Fraser Tytler 1747-1813
>>
>>

Reply via email to