> -- Geniepro писал(а):
> Ну и какой вариант лучше? Мне кажется, что первоначальный.Достаточно сделать так, чтобы safeLogAppend возвращал message != null, при необходимости - написать простенькую обёртку:
## Код:
```
string message = null;
while (safeLogAppend(message = TCPStreamIO.ReceiveString(POSIPStream)) && SrvIPStream != null && SrvIPStream.CanWrite)
{
    TCPStreamIO.SendMsg(SrvIPStream, message + "\n");
}
```
Ещё лучше - написать процедуру getAndLogMessage, которая будет в журналировать сообщение при успешном получении:## Код:
```
bool getAndLogMessage (string* message);
{
    message = TCPStreamIO.ReceiveString(POSIPStream);
    if (message != null)
        safeLogAppend(message);
    return message != null
}
...
string message = null;
while (getAndLogMessage(&message) && SrvIPStream != null && SrvIPStream.CanWrite)
{
    TCPStreamIO.SendMsg(SrvIPStream, message + "\n");
}
```
