The problem is, my arduino won't stop reading. When I call
it will read the incoming data and there is no way to break out of it. I can't check for delimiters or do anything.
That isn't your problem. Your problems are many, but those do not include "won't stop reading".
Problem 1: This code:
void loop() // run over and over
String Data = "";
character = mySerial.read();
will NOT produce numbers on Serial or mySerial. It will produce strings of "foo" and "foo_software_serial".
Problem 2: Look at the comment right after void loop(). That's a hint. It tells you that it will keep running, right? So why would you think it's a good idea to declare and clear Data every time through the loop? You read 1 character, concatenate it to Data, do two serial println(), then immediately clear Data again.
Problem 3: You say you want to have it stop reading mySerial when you send it a C/R, which IS a delimiter, but you don't check for it, and of course, you can't do anything about it if you don't actually check for it. You say it's because mySerial keeps reading, but it doesn't. It reads 1 character every single time it has one in the serial buffer, and ONLY when it has a character in the serial buffer.
Now, someone has given you great advice. He pointed you to a link that you REALLY need to read and understand.. It's http://www.gammon.com.au/serial
If you can't understand it, we will certainly help you understand it.