HP49-50G: transform "ABCDEF" into "ABDEF" (with no SUB?) - Printable Version +- HP Forums (https://www.hpmuseum.org/forum) +-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html) +--- Forum: General Forum (/forum-4.html) +--- Thread: HP49-50G: transform "ABCDEF" into "ABDEF" (with no SUB?) (/thread-16092.html) |
HP49-50G: transform "ABCDEF" into "ABDEF" (with no SUB?) - Gil - 12-30-2020 05:11 PM I have a string "ABCDEF". I look, say, for the letters "CD". If that strings "CD" exists, then I want to change it by "D" (with no "C"). The initial string "ABCDEF" should become "ABDEF" (without the letter C). My first idea was to write << "ABCDEF" DUP "CD" POS "" // Empty string (instead of "C") REPL // to be put instead of the original letter "C" >> But it does not work ("" REPL meaning "do not replace [the letter C]"). One "heavy" solution is then: \<< "ABCDEF" DUP SIZE \-> str siz \<< str "CD" POS \-> pos \<< str 1 pos 1 - SUB str pos 1 + siz SUB + \>> \>> \>> Question: How to write a shorter version, possibly with the instruction REPL (and not by concatenating ...Sub... ...SUB +)? Sorry for that simple question, but I would appreciate your insights. Regards, Gil RE: HP49-50G: transform "ABCDEF" into "ABDEF" (with no SUB?) - John Keith - 12-30-2020 06:41 PM The command you are looking for is SREPL. It is new to the 49g+/50g. SREPL returns the modified string to level 2 and a count of the number of replacements made to level 1. "ABCDEF" "CD" "D" SREPL -> "ABDEF" 1. RE: HP49-50G: transform "ABCDEF" into "ABDEF" (with no SUB?) - Gil - 12-30-2020 06:49 PM Exactly what I was looking for! Great that that command returns also 1 when the string is found and replaced, and 0 when the request could not be fulfilled. Thank you and a happy new year to the whole community! Regards, Gil RE: HP49-50G: transform "ABCDEF" into "ABDEF" (with no SUB?) - ijabbott - 12-31-2020 01:22 PM (12-30-2020 06:49 PM)Gil Wrote: Exactly what I was looking for! Or something greater than 1 if multiple matching sub-strings were replaced. Is that what you want? RE: HP49-50G: transform "ABCDEF" into "ABDEF" (with no SUB?) - Gil - 12-31-2020 07:37 PM Yes, and thanks for your correction. I already integrated that new command in my fraction program posted this week. The number of occurrences and replacements was not relevant, so I dropped that information. The purpose of SREPL was to change expressions of the type '-7+-3/4` into '-7-3/4'. Regards, Gil RE: HP49-50G: transform "ABCDEF" into "ABDEF" (with no SUB?) - Raymond Del Tondo - 01-01-2021 10:28 AM As an alternative, you could tokenize your expression, replace the wanted sub-expression, and finally rebuild the expression again. This is how the HP 48 does it internally. RE: HP49-50G: transform "ABCDEF" into "ABDEF" (with no SUB?) - Gil - 01-01-2021 10:55 AM It's somewhat what I did at the beginning. The ideal for me is, as mentioned, to use the SREPL. Thanks and regards, Gil |