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



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%7C01ce71764fce4a4c058708d993eb74f5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703461755388901%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=vU9LW1apIJof%2Bfp38Y3dWxiKNr1zx8BjGvzb%2B9ErMuE%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%7C01ce71764fce4a4c058708d993eb74f5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703461755398856%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=IGJgj%2FENXN2YDPVrOqcdUqzZ44bFR3tuHPNJmI3M0Lo%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%7C01ce71764fce4a4c058708d993eb74f5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703461755398856%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=hESYKo%2B8lej7dRw71ySx7M3ccmaN1MgsNRp1LljHltg%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%7C01ce71764fce4a4c058708d993eb74f5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703461755398856%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=PAr4V54p3vLIOGmqDlI5at1oKMys8AtDa2ha6vmkqBg%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%7C01ce71764fce4a4c058708d993eb74f5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703461755398856%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=IGJgj%2FENXN2YDPVrOqcdUqzZ44bFR3tuHPNJmI3M0Lo%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%7C01ce71764fce4a4c058708d993eb74f5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703461755398856%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=hESYKo%2B8lej7dRw71ySx7M3ccmaN1MgsNRp1LljHltg%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%7C01ce71764fce4a4c058708d993eb74f5%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637703461755398856%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=PAr4V54p3vLIOGmqDlI5at1oKMys8AtDa2ha6vmkqBg%3D&amp;reserved=0


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.