Fundamentals Capstone 2.2

Hi everyone,

I feel like I’m close to solving 2.2 but I can’t quite seem to get there. I’ve tried using various forms of if statements to determine how the string begins and therefore where in the string the ID is positioned, you can see what I’ve tried in the screenshots attached.

Would love any help to get past this point, thank you.

Hi ,

You’ve got a good start in the first screenshot. Have you had a look back at the String Manipulation course? Especially the “String comparison using like” section ?

Take a look at this and if you still need help give me a shout!

Thanks,

Megan

Hi Megan,

Thanks for replying. Yes I’ve come back to that part of String Manipulation a few times. I know I could return a true or false value for how the string starts, but I’m not sure how to use the result of this going forward.

Ideally I want to say if like[exchangeMessage; “CME-*”] is true (1b) then search, replace and trim etc. and if not then do the same but at this area of the string instead. But I’m struggling to implement this thought process using Q. 

Thanks again

Hi ,

I think one thing that could be helpful is using conditional evaluation Cond | Reference | kdb+ and q documentation - Kdb+ and q documentation (kx.com)

So you’ve got:

 

 

extractBrokerId: {[exchangeMessage] parts: “-” vs exchangeMessage;

 

 

Which is correct.

If we take a look at our messages table we can see that if the exchange message begins with CME - the brokerId is going to be at the end.

If it begins with ISE - the brokerId is going to be in the middle.

So using the conditional, we can basically say if the exchange message is like “CME*” then use the last part else use the middle part.

Let me know if this helps,

Megan

 

Thanks Megan,

I finished the function using parts and the conditional