oops, I see you already tried that.
Have you tried this instead?
SELECT ( LJS(SGET(policy_no,12,1),50) + LJS(tmpUniqueText,50) + LJS(ssn,9) +
LJS(firstname,50) +
+ ....... + SFIL(' ',675) )=1450 +
From: [email protected] [mailto:[email protected]] On Behalf Of Dennis McGrath
Sent: Tuesday, January 06, 2015 8:34 AM
To: RBASE-L Mailing List
Subject: [RBASE-L] - Re: Fixed field file
How about adding a CR character at the end?
2 cR's may not be a problem, it is the LF that makes a new line.
Dennis McGrath
From: [email protected]<mailto:[email protected]> [mailto:[email protected]] On
Behalf Of Karen Tellef
Sent: Tuesday, January 06, 2015 7:58 AM
To: RBASE-L Mailing List
Subject: [RBASE-L] - Re: Fixed field file
I had posted earlier that I had tried that. A char(255) worked but it left a
visible character at the end of the row and they didn't like it -- it wasn't
"blank" according to them
Karen
-----Original Message-----
From: Bill Downall
<[email protected]<mailto:[email protected]>>
To: RBASE-L Mailing List <[email protected]<mailto:[email protected]>>
Sent: Mon, Jan 5, 2015 5:57 pm
Subject: [RBASE-L] - Re: Fixed field file
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]<mailto:[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]<mailto:[email protected]>>
To: RBASE-L Mailing List <[email protected]<mailto:[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]<mailto:[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]<mailto:[email protected]>>
To: RBASE-L Mailing List <[email protected]<mailto:[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