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