Помогите выгрузить файл в другую дирректорию!?

 
Увидел на сайте интересную разработку но icq bot который приложен не работает, помогите выгрузить файл отчета который создает эксперт в другую дирректорию, например на c:\отчет
//+------------------------------------------------------------------+
//|                                                      mao-spi.mq4 |
//|                               Leonid Salavatov [MUSTADDON]© 2010 |
//+------------------------------------------------------------------+
#property copyright "Leonid Salavatov [MUSTADDON]© 2010"
string      expname              = "statusbot";
string      statusfilename       = "status.txt";
string      spamfilename         = "notify.txt";
int         ord_tickets[];
int         ord_tickets_past[];
int         ord_tickets_changing_open[];
int         ord_tickets_changing_close[];

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   string filename = expname+"/"+spamfilename;
   int filehandle=FileOpen(filename,FILE_WRITE);  
   if(filehandle>0)
     {FileWrite(filehandle,"Starting expert '"+expname+"'");
      FileClose(filehandle);
     }
   else Print("Не удалось создать файл ",spamfilename,", Error:",GetLastError()); 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   FileDelete(expname+"/"+statusfilename);
   FileDelete(expname+"/"+spamfilename);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//---- собираем инфу и пишем файл status.txt
   int profit;
   ArrayResize(ord_tickets, 0);
   string filename = expname+"/"+statusfilename;
   string abzac ="-----------";
   int filehandle=FileOpen(filename,FILE_WRITE,"  "); 
   if(filehandle>0)
     {FileWrite(filehandle,"Balance =",DoubleToStr(AccountBalance(),2),AccountCurrency());
      if(OrdersTotal()>0)
        {FileWrite(filehandle,abzac);
         for(int i=0;i<OrdersTotal();i++)
            {if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)     break;
             ArrayResize(ord_tickets, i+1);
             ord_tickets[i]=OrderTicket();
             if(OrderType()==OP_BUY)
               {profit=(MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT);
                FileWrite(filehandle,OrderSymbol(),"buy",DoubleToStr(OrderLots(),2),profit,"pips");
               }
             if(OrderType()==OP_SELL)
               {profit=(OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/MarketInfo(OrderSymbol(),MODE_POINT);
                FileWrite(filehandle,OrderSymbol(),"sell",DoubleToStr(OrderLots(),2),profit,"pips");
               }
            }
         FileWrite(filehandle,"summa =",DoubleToStr(AccountProfit(),2),AccountCurrency());  
         FileWrite(filehandle,abzac);
         FileWrite(filehandle,"Equity =",DoubleToStr(AccountEquity(),2),AccountCurrency());
        }    
      FileClose(filehandle);
     }
   else Print("Не удалось создать файл ",statusfilename,", Error:",GetLastError()); 
//---- проверяем добавление/удаление ордеров и пишем notify.txy
   int size = 0;
   ArrayResize(ord_tickets_changing_open, ArraySize(ord_tickets));
   ArrayResize(ord_tickets_changing_close, ArraySize(ord_tickets_past));
   for(int j=0;j<ArraySize(ord_tickets);j++)
     {for(i=0;i<ArraySize(ord_tickets_past);i++)
         {if(ord_tickets[j]==ord_tickets_past[i]) break;}
      if(i==ArraySize(ord_tickets_past)){ord_tickets_changing_open[size]=ord_tickets[j];size++;}
     }
   ArrayResize(ord_tickets_changing_open, size); 
   size=0;
   for(j=0;j<ArraySize(ord_tickets_past);j++)
     {for(i=0;i<ArraySize(ord_tickets);i++)
        {if(ord_tickets[i]==ord_tickets_past[j]) break;}
      if(i==ArraySize(ord_tickets)){ord_tickets_changing_close[size]=ord_tickets_past[j];size++;}
     }
   ArrayResize(ord_tickets_changing_close, size);
   ArrayResize(ord_tickets_past, ArraySize(ord_tickets));
   ArrayCopy(ord_tickets_past,ord_tickets,0,0,WHOLE_ARRAY);
   
   if(ArraySize(ord_tickets_changing_open)==0 && ArraySize(ord_tickets_changing_close)==0) return(0);
   
   string addoninfo;
   filename = expname+"/"+spamfilename;
   filehandle=FileOpen(filename,FILE_WRITE,"  "); 
   if(filehandle>0)
     {for(j=0;j<ArraySize(ord_tickets_changing_open);j++)
        {addoninfo="[order added]";
         if(OrderSelect(ord_tickets_changing_open[j],SELECT_BY_TICKET,MODE_TRADES)==true)
           {if(OrderType()==OP_BUY)
              {profit=(MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT);
               FileWrite(filehandle,addoninfo,OrderSymbol(),"buy",DoubleToStr(OrderLots(),2),profit,"pips");
              }
            if(OrderType()==OP_SELL)
              {profit=(OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/MarketInfo(OrderSymbol(),MODE_POINT);
               FileWrite(filehandle,addoninfo,OrderSymbol(),"sell",DoubleToStr(OrderLots(),2),profit,"pips");
              }
           }
        }
      for(j=0;j<ArraySize(ord_tickets_changing_close);j++)
        {addoninfo="[order closed]";
         if(OrderSelect(ord_tickets_changing_close[j],SELECT_BY_TICKET,MODE_HISTORY)==true)
            {if(OrderType()==OP_BUY)
               {profit=(OrderClosePrice()-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT);
                FileWrite(filehandle,addoninfo,OrderSymbol(),"buy",DoubleToStr(OrderLots(),2),profit,"pips");
               }
             if(OrderType()==OP_SELL)
               {profit=(OrderOpenPrice()-OrderClosePrice())/MarketInfo(OrderSymbol(),MODE_POINT);
                FileWrite(filehandle,addoninfo,OrderSymbol(),"sell",DoubleToStr(OrderLots(),2),profit,"pips");
               }
            }
        }
      FileClose(filehandle);
     }
   else Print("Не удалось создать файл ",spamfilename,", Error:",GetLastError()); 
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
оо)) спасибо буду разбираться
 

Вы как автор просветите. Почему так сложно и громоздко всё получается. Разве нельзя было всё это превратить в DLL, которая просто перебрасывала из папок терминала туда, куда нужно.

Т.е. создаём средствами MQL файл, сохраняем как обычно,а потом функцией из DLL переносим куда хотим.

 
zhuki >>:

Вы как автор просветите. Почему так сложно и громоздко всё получается. Разве нельзя было всё это превратить в DLL, которая просто перебрасывала из папок терминала туда, куда нужно.

Т.е. создаём средствами MQL файл, сохраняем как обычно,а потом функцией из DLL переносим куда хотим.

Это та же DLL только средствами MQL4, образно говоря... По скорости работы ни чем не отличается.

 
Zhunko >>:

Это та же DLL только средствами MQL4, образно говоря... По скорости работы ни чем не отличается.

Да дело не в скорости,а в сложности. То, что Вами написано это целый труд. Мне кажется, можно было всё решить более простым методом (10-15 строчек кода на другом языке).

Или, я что то не понимаю.

 
zhuki >>:

Да дело не в скорости,а в сложности. То, что Вами написано это целый труд. Мне кажется, можно было всё решить более простым методом (10-15 строчек кода на другом языке).

Или, я что то не понимаю.

Если речь идёт о перемещении уже созданных файлов, то в DLL сделал бы такой же код.

Всё же, создать файл в каталоге и переместить его туда после создания это разные вещи. Хотя, результат одинаковый.
Т.е. предпочту задачу в одной среде реализовывать.
 
В общих чертах понял. Спасибо.
Причина обращения: