× 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.



On Sat, 2015-09-12 at 08:48 +0200, D*B wrote:
On 8/10/2015 6:08 PM, Dan wrote:

I am attempting to combine
1) p = %scan( '~' : SPdetl : PosLastDelim + 1); and
2) Dow p > 0;
into:
Dow (p = %scan( '~' : SPdetl : PosLastDelim + 1)) > 0;

Dow GetScanPosNext(Pos:FullString);
// Do something with Pos
Enddo;

// begin
Pos = %scan('~' : FullString : Pos + 1);
Return Pos > 0;
// end

This could even be expanded to also return the sub-string if its
required:

Dow GetScanNextString(Pos:StringReturn:FullString);
// Do something with Pos and/or StringReturn
Enddo;

I often do something similar with: (much simplified)

Dow GetCustomerNext(CustomerDS:PrevKey:SubsetSelection)
// do stuff
Enddo;

// begin
// Position file(PrevKey)
// Dou %eof(file)
// read file > FileDS
// if TestFileIsEof(FileDS)
// return *off;
// endif

// If ChkCustomerIsValidForSubset(FileDS:SubsetSelection)
// Move FileDS.fields > CustDS.Fields
// return *on
// Endif
// Enddo
// end




But this generates RNF7421 "Operands are not compatible with the type
of operator."

Is it because left side of the '>' translates to an indicator?

- Dan
</Dan> *************************************************

... maybe the arcitects of the rpg compiler should have had a look to other
languages. Java for instance is using "==" for compares equal and "=" for an
assignment, maybe the compiler is interpreting the "=" as comparison, as you
are supposing.

Pushing the %scan down to another procedure with a boolean return value and
modifying a global var is corrupting readability.

I have no problem with a procedure returning a boolean and updating a
parameter just as long as its consistent. I think that the naming of the
procedure can help quite a lot as a description of the function and the
possible return and/or updated parms. That said I always have the first
parm(s) potentially bi-directional and following parms as input only.
Just having a random parm (of a set of parms) suddenly be bi-directional
is very confusing; eg. Function(InParm:InParm:InOutParm:InParm).


D*B




As an Amazon Associate we earn from qualifying purchases.

This thread ...

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.