I've developed a program that communicates with another program through anonymous pipes set up by the other program (not written by me).
The problem is that my program keeps crashing as soon as I add something more than just receiving the info. For example, if I add a simple "showMessage", it crashes, but works again if I remove it.
Here is the code:
procedure TArena.read_winboard;
var text:string[50];
ch:char;
begin
while true do
begin
text:='';
repeat
read(input,ch);
text:=text+ch;
until ch=#10;
//showMessage('this instruction makes the program crash');
form1.memo1.Lines.Add(text);
end;
end;
Obviously the showMessage-instruction is just an example. If I try to do any parsing of the incoming text (for example sending it to a parser-function of some sort), it crashes. But the code above, devoid of anything extra, doesn't crash, and I can tell by the ouput in the memo that everything is received as expected (and sending info the other way works as well). So the communication is working.
I hear that buffering handled wrongly can cause problems (even crashing?). Is the input used by that read function using a buffer? And is the read function I'm using a real systems call or a part of Delphi (internally doing the systems call)?
My program has no previous history of crashing.