I have hundreds of programs to migrate from UV to jBASE with
constructs like this:
LOOP WHILE READSEQ LINE FROM FILE
* do something with the LINE
REPEAT
Im changing in jBASE to this:
CR = CHAR(13)
LOOP
READSEQ LINE FROM FILE ELSE BREAK
CHANGE CR TO "" IN LINE
* do something with the LINE
REPEAT
UV will give the same output regardless of whether the file is
terminated with LF or CRLF and Im wondering if jBASE has a switch
(perhaps an environment variable or some IOCTL option) to achieve the
same.
Thanks for any help
--
Please read the posting guidelines at: http://groups.google.com/group/jBASE/web/Posting%20Guidelines
IMPORTANT: Type T24: at the start of the subject line for questions specific to Globus/T24
To post, send email to jB...@googlegroups.com
To unsubscribe, send email to jBASE-un...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en
To unsubscribe from this group, send email to jbase+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.
> -----Original Message-----
> From: jb...@googlegroups.com [mailto:jb...@googlegroups.com] On Behalf
> Of MarcoM
> Sent: Monday, March 29, 2010 4:50 AM
> To: jBASE
> Subject: READSEQ and CR/LF on Unix
>
> Is there a way to tell jBASE to discard the CR (CHAR(13)) at the end
> of the line if the file being processed was ftp'ed from DOS in binary
> mode?
Well, err, don't ftp a text file in binary mode?
>
> I have hundreds of programs to migrate from UV to jBASE with
> constructs like this:
>
> LOOP WHILE READSEQ LINE FROM FILE
> * do something with the LINE
> REPEAT
>
> Im changing in jBASE to this:
>
> CR = CHAR(13)
> LOOP
> READSEQ LINE FROM FILE ELSE BREAK
> CHANGE CR TO "" IN LINE
> * do something with the LINE
> REPEAT
>
> UV will give the same output regardless of whether the file is
> terminated with LF or CRLF and Im wondering if jBASE has a switch
> (perhaps an environment variable or some IOCTL option) to achieve the
> same.
Well, do you have to do it like this?
Firstly, why send text files to UNIX with a CRLF terminator?
Secondly, if you cannot fix this (which is your real problem), then fix the line endings after the files are received, all at once with the tr -d command.
Thirdly, if you feel you need to change the programs, then just wrote a bash script to find all the programs with OPENSEQ and insert the IOCTL directly after it with sed. UNIX is essentially a text manipulation system you know - it behooves you to know how to use it. Personally, I would probably use awk to 'fix' those programs if I was not able to fix the actual problem at source, which is the transmission.
The other _actual_ problem is that UniVerse is wrong to behave like that of course; that isn't what UNIX does with text. ;-) Perhaps though, jBASE should be bug compatible with UniVerse if that is the emulation that is configured.
Finally, please read the posting guidelines and remember to include information about your operating systems and versions of jBASE and so on.
http://groups.google.com/group/jBASE/web/Posting%20Guidelines
http://groups.google.com/group/jBASE/web/Posting%20Guidelines
http://groups.google.com/group/jBASE/web/Posting%20Guidelines
http://groups.google.com/group/jBASE/web/Posting%20Guidelines
Jim
I tested IOCTL on CRLF terminated text files and obtained the
following:
IOCTL(FILE, JIOCTL_COMMAND_SEQ_CHANGE_DELIMITER, CHAR(13):CHAR(10))
Only works on the first line but all subsequent lines now begin with
CHAR(10)
IOCTL(FILE, JIOCTL_COMMAND_SEQ_CHANGE_DELIMITER, CHAR(13))
Only works on the first line but all subsequent lines now begin with
CHAR(10)
This is nowhere near what I want, which is that READSEQ must not
include the CR or LF character in the string regardless of whether the
file is CRLF (Windows) or LF only (Unix) terminated. This is because I
am migrating from UV which already works this way. I do not have
control over how the text files are transfered to jBASE so suggesting
to change that will not help me.
On Mar 29, 5:23 pm, Daniel Klein <danielklei...@gmail.com> wrote:
> http://www.jbase.com/r5/knowledgebase/manuals/3.0/30manpages/man/adv1...
>
> <http://www.jbase.com/r5/knowledgebase/manuals/3.0/30manpages/man/adv1...>
> > ME" as the subject.- Hide quoted text -
>
> - Show quoted text -
To unsubscribe from this group, send email to jbase+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.
The fact that UniVerse does it one way is fair enough (even though it is technically wrong), but if you want jBASE to behave the same way (which is probably best), then you need to ask your TEMENOS support people to request an enhancement. At one point we (jBASE) would have made such a patch overnight for you, but I am afraid that you will probably now have to submit the request in triplicate, have it rejected, amended, returned, amended again, and finally recycled as firelighters.
Though to be honest, even if you had 300 programs to modify by hand, I could have changed them all by now. If you write a quick awk program, then you could change the programs in a few hours (including writing the program taking you a long time for your first one). Just add:
READSEQ Line FROM ....
CONVERT CHAR(10):CHAR(13) TO "" IN Line
And if you don't want to learn awk, then just write a jBC program to do this. It is pretty trivial and you can even display the lines of code and ask if the proposed change is good, store the names of any programs where the answer is no and so on and so forth. Just apply your initiative to this problem - it really isn't such a big deal.
I presume that you have set the jBASE emulation to UniVerse right?
Jim
> -----Original Message-----
> From: jb...@googlegroups.com [mailto:jb...@googlegroups.com] On Behalf
> Of MarcoM
> jbase+unsubscribegooglegroups.com or reply to this email with the words
MacroM,
If you are using a unix type operating system such as RH it is
possible that you have utility like "dos2unix" which does the work for
you without you having to write a separate program.
Eg:
$dos2unix mydosfile.txt myunixfile.txt
http://linux.die.net/man/1/dos2unix
Regards,
Dhilip