Проблемы с переменной типа string

 

Есть небольшой советник :

#import "kernel32.dll"
   int  _lopen  (string path, int of);
   int  _lcreat (string path, int attrib);
   int  _llseek (int handle, int offset, int origin);
   int  _lwrite (int handle, string buffer, int bytes);
   int  _lread  (int handle, string buffer, int bytes);
   int  _lclose (int handle);
#import
string path;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
void init() {
   path=TerminalPath()+"\\experts\\files\\test.txt";
   return;
}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start() {
   int pos,hfile;
   string txt=" ";
//-----------------------------
   hfile=_lopen(path,7);
   if(hfile>-1) {
      _llseek(hfile,0,0);
      pos=_lread(hfile,txt,1);
      Print("pos=",pos,"; txt=",txt);
      if(txt==" ") Print("txt==\" \", error");
      else Print("txt!=\" \", ok");
      _lclose(hfile);
   }
   return;
}

И его лог:

17:06:39 e-test USDCHF,M1: initialized
17:06:42 e-test USDCHF,M1: pos=1; txt=1
17:06:42 e-test USDCHF,M1: txt==" ", error


Если инициализировать txt не пробелом, то все нормально, НО неизвестно какие символы могут встретится в файле.

Причина обращения: