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



Meant to add.....

If interpolation for RPG was to come to fruition, I like Scott's suggestion of ${var_name}.
Primarily because the syntax is already used in GoAnywhere which I use extensively.

Or, maybe it could be a function (overloaded?) like %interpolate(MyVar) with options for numerics as in %dec().


-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Roger Harman
Sent: Wednesday, October 20, 2021 6:29 PM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: RFE String interpolation for RPG

I understand the thought behind this but you're asking the next programmer to decipher a completely foreign (to them) syntax.
I do, however, use a named constant (QT) for quotes like yours, but I think that's pretty mainstream.

I really don't understand the difficulty being expressed over concatenation.

dcl-s MyVar char(10);

MyVar = 'Some Value';
MyString = 'This is a string with '
+ MyVar
+ ' concatenated in';

You can use %editc() for numerics.





-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Alan Campin
Sent: Wednesday, October 20, 2021 10:03 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: RFE String interpolation for RPG

Maybe not as clean but works fine. I build all SQL strings using %ScanRpl.

dcl-c QUOTE '''';
dcl-c PLUS '+';

SqlStmt = 'Select ~Q~P~Q~, 1 ~P~ 2 +
from FileA';
SqlStmt = %ScanRpl('~Q~':QUOTE:SqlStmt);
SqlStmt = %ScanRpl('~P~':PLUS:SqlStmt
Select 'P', 1 + 2 From Filea



On Wed, Oct 20, 2021 at 9:00 AM Peter Dow <petercdow@xxxxxxxxx> wrote:

Not exactly. This does it all in one statement; with %scanrpl you would
have to do it once for each variable you want to replace, then print the
resulting string.

myString = 'I have {apples} apples and {bananas} bananas';
myString = %scanrpl('{apples}' : %char(apples) : myString);
myString = %scanrpl('{bananas}' : %char(bananas) : myString);
print myString;

On 10/20/2021 8:53 AM, Alan Campin wrote:
Isn't that exactly what %ScanRpl does?

On Wed, Oct 20, 2021 at 8:27 AM Justin Taylor<jtaylor.0ab@xxxxxxxxx>
wrote:

Description:

Add string interpolation support so variables can be inserted into
string
literals without having to use concatenation with + symbols and multiple
literals.

For example:

apples = 4

bananas = 3

print(f"I have {apples} apples and {bananas} bananas")



https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.ibm.com%2Fdeveloperworks%2Frfe%2Fexecute%3Fuse_case%3DviewRfe%26CR_ID%3D152890&amp;data=04%7C01%7C%7C8d8ae70b6b764fbe187908d994323cf5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703765760174872%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=xK3xR7ZXj%2B7Rdi12n2E%2FNP3nAT3ZaEiAmPF5X%2Fcl6L0%3D&amp;reserved=0
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email:RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.midrange.com%2Fmailman%2Flistinfo%2Frpg400-l&amp;data=04%7C01%7C%7C8d8ae70b6b764fbe187908d994323cf5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703765760174872%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=RzxEJu0pRPqR0MVZ30t%2FCjJK%2FdMn%2FFO1I7HhagnrsvM%3D&amp;reserved=0
or email:RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
athttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Farchive.midrange.com%2Frpg400-l&amp;data=04%7C01%7C%7C8d8ae70b6b764fbe187908d994323cf5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703765760174872%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=6xQMGe%2FRGZvV633XJ3gU8l%2Bv1T%2FLtP6dan2NoRurWy4%3D&amp;reserved=0.

Please contactsupport@xxxxxxxxxxxxxxxxxxxx for any subscription
related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link:https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Famazon.midrange.com%2F&amp;data=04%7C01%7C%7C8d8ae70b6b764fbe187908d994323cf5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703765760184829%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=IgPe%2BWOs6K15z3nacrlHEg5lb5FICkpBbpnZzY6vsyw%3D&amp;reserved=0

--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.midrange.com%2Fmailman%2Flistinfo%2Frpg400-l&amp;data=04%7C01%7C%7C8d8ae70b6b764fbe187908d994323cf5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703765760184829%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=283EIiD7SdV9JF1Bu2JJ9GJGAZav%2FSM7Lq2EUcbVxfE%3D&amp;reserved=0
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Farchive.midrange.com%2Frpg400-l&amp;data=04%7C01%7C%7C8d8ae70b6b764fbe187908d994323cf5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703765760184829%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=6yrGxiqEMkGIHZtCU%2FqHoCn6zSgVZWAOR0mpjtY7MUQ%3D&amp;reserved=0.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Famazon.midrange.com%2F&amp;data=04%7C01%7C%7C8d8ae70b6b764fbe187908d994323cf5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703765760184829%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=IgPe%2BWOs6K15z3nacrlHEg5lb5FICkpBbpnZzY6vsyw%3D&amp;reserved=0


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.