× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



scan and replace is a bad method!

an IFS file is a large string of data, XML is a data structure

you may have <currencyCode>EUR</currencyCode>

you may have <text>the price is in EUR</text>

you may have <price currencyCode="EUR">12.50</price>

replacing EUR blindfolded may have large impact!




On Tue, Sep 2, 2014 at 6:01 PM, Jon Paris <jon.paris@xxxxxxxxxxxxxx> wrote:

Looks OK - but I'm not sure the risk and lack of flexibility is worth it.

Personally I'd always do an update-by-copy.


On 2014-09-02, at 11:33 AM, Michael Ryan <michaelrtr@xxxxxxxxx> wrote:

And therein lies the rub. The text that I want to change could be the
same
size as what I want to replace it with, but the sizes could be
different. A
better way of saying that is that I may have to replace 10 bytes with 10
bytes, or 15 bytes with 15 bytes, but I won't have to replace different
sizes. I won't know what the size is until I read the file.

So, would something like this work?

open...
read into buffer...
use %scan to search buffer and locate text to change...
use lseek to position to that location...
use write to change the file at that location (for a certain number of
bytes)...
close...




On Tue, Sep 2, 2014 at 11:25 AM, Scott Klement <
rpg400-l@xxxxxxxxxxxxxxxx>
wrote:

You can position to a particular byte of your file using the lseek() API

Once positioned, the write() API will overwrite bytes at that position
(for the length specified on the call to write API)

Is that what you're asking? {There weren't actually any questions in
your
post.)



On 9/2/2014 10:02 AM, Michael Ryan wrote:

I need to update data in a stream file located in ths IFS (or on a QNTC
share). I know I can read the data from the file, and then write to
another
file, and then delete/rename I guess, but I want to update in place. I
don't want to use any procedures that add a CRLF. I'm thinking of using
read() and write(), but I'm not sure how to handle the update. Probably
pretty simple. Thanks!


--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com




--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.