Sipariş açıkken dosyaya yazılamıyor

 

Bir günlük dosyasına bazı bilgiler yazan bir EA'm var, bazı noktalarda bir sipariş açmaya karar veriyor ve bu olduğunda EA artık dosyaya yazmıyor, sadece şunu alıyorum:

'FileWrite' işlevi için parametre 1 olarak geçersiz tamsayı numarası

Bir ekran görüntüsü ekliyorum: sırayı açtığında dosya tanıtıcısı nasıl değişmiyor ama bir nedenden dolayı dosyayı artık açamıyor. YARDIM!!

Günlük Hatası

 
Bunun yerine ilgili kodları eklemeniz gerekirdi. Kod tabanındaki bazı file_write örneklerine bakın. Belgelerdeki hata mesajının nedenlerini kontrol edin.
 

Teşekkür ederim, kod iyi çalışıyor, EA yüklendiğinde dosyayı oluşturuyor, ardından her tıkladığımda dosyayı açıyorum, dosyaya tonlarca bilgi koyuyorum ve sonra kapatıyorum. Ama bir sipariş açar açmaz artık çalışmıyor.

Bunu her yerde aradım ve hatayla ilgili herhangi bir bilgi bulamıyorum, aynı sorunu yaşayan birini bulamıyorum, aynı hatayı alan birini bulamıyorum, bazı kişilerde şu şekilde oldu:

"TimeToNumber işlevi için parametre 1 olarak geçersiz tam sayı"

Ama şurada hiçbir şey bulamıyorum:

"FileWritefunction için parametre 1 olarak geçersiz tam sayı"

 
favosys :

Teşekkür ederim, kod iyi çalışıyor, EA yüklendiğinde dosyayı oluşturuyor, ardından her tıkladığımda dosyayı açıyorum, dosyaya tonlarca bilgi koyuyorum ve sonra kapatıyorum. Ama bir sipariş açar açmaz artık çalışmıyor.

Bunu her yerde aradım ve hatayla ilgili herhangi bir bilgi bulamıyorum, aynı sorunu yaşayan birini bulamıyorum, aynı hatayı alan birini bulamıyorum, bazı kişilerde şu şekilde oldu:

"TimeToNumber işlevi için parametre 1 olarak geçersiz tam sayı"

Ama şurada hiçbir şey bulamıyorum:

"FileWritefunction için parametre 1 olarak geçersiz tam sayı"

Tanıtıcınız geçersiz/int değil. . . kodunuzu düzeltin. Belki biri int, diğeri int olmayan, global olarak bildirilen bir değişkenle aynı ada sahip yerel olarak bildirilen bir değişken kullanıyorsunuzdur. Kodunuzu görmeden yardımcı olmak zor.
 

Elbette, init işlevinin kodu şudur:

 int init()

  {

//----

   File_Name = StringConcatenate (Name_of_file, " - " , Symbol (), " - " , TimeToStr( TimeLocal (),TIME_DATE), " - " , TimeHour( TimeLocal ()), "." , TimeMinute( TimeLocal ()), "." , TimeSeconds( TimeLocal ()), ".txt" );

   Handle= FileOpen (File_Name, FILE_CSV | FILE_WRITE , ";" ); //File opening

   if (Handle==- 1 )                       // File opening fails

     {

       Alert ( "An error while opening the file. " , // Error message

               "May be the file is busy by the other applictiom" );

       PlaySound ( "Bzrrr.wav" );           // Sound accompaniment

       return ;                           // Exir start()      

     }

     FileClose ( Handle );

//----

   return ( 0 );

  } 

Böylece sadece dosyayı oluşturur.

Ardından başlatma işlevinde dosyayı şu şekilde açıyorum:

Handle= FileOpen (File_Name, FILE_CSV | FILE_READ | FILE_WRITE , ";" ); //File opening
     //Handle = 1;
     Print ( "Handle: " , Handle);
   if (Handle==- 1 )                       // File opening fails
     {
       Alert ( "An error while opening the file. " , // Error message
               "May be the file is busy by the other applictiom" );
       PlaySound ( "Bzrrr.wav" );           // Sound accompaniment
       return ;                           // Exir start()      
     }
   FileSeek (Handle, 0 , SEEK_END );

Ve sonra dosyaya şöyle şeyler yazarım:

Qnt_Symb= FileWrite (Handle, "**** STARTING TICK " , Symbol (), ": " , TimeToStr( TimeLocal (),TIME_DATE|TIME_SECONDS), " ****" );
Qnt_Symb= FileWrite (Handle, "************************************************************" ); 

Ve sonunda dosyayı kapatıyorum

Qnt_Symb= FileWrite (Handle, "***************************" );      
Qnt_Symb= FileWrite (Handle, "**** END TICK " , Symbol (), " ****" );        
FileClose ( Handle );
//----
   return ( 0 );

Ve bu kadar.

Yardımın için teşekkürler!

 
favosys :

Elbette, init işlevinin kodu şudur:

Böylece sadece dosyayı oluşturur.

Ardından başlatma işlevinde dosyayı şu şekilde açıyorum:

Ve sonra dosyaya şöyle şeyler yazarım:

Ve sonunda dosyayı kapatıyorum

Ve bu kadar.

Yardımın için teşekkürler!

Diğer bildirimleri bulmak için kodunuzda (Ctrl+F) Handle'ı aradınız mı? start() içinde end dışında herhangi bir dönüş var mı? Tamamlanıp tamamlanmadığını görmek için CSV dosyasına baktınız mı? Eğer sanatlar eksikse, bu size neyin uygulanıp uygulanmadığı hakkında bir fikir verebilir.
 
Handle= FileOpen (File_Name, FILE_CSV | FILE_WRITE , ";" ); //File opening
Handle= FileOpen (File_Name, FILE_CSV | FILE_READ | FILE_WRITE , ";" ); //File opening
Geçersiz son argüman - int değil
 
RaptorUK :
Diğer bildirimleri bulmak için kodunuzda (Ctrl+F) Handle'ı aradınız mı? start() içinde end dışında herhangi bir dönüş var mı? Tamamlanıp tamamlanmadığını görmek için CSV dosyasına baktınız mı? Eğer sanatlar eksikse, bu size neyin uygulanıp uygulanmadığı hakkında bir fikir verebilir.


Merhaba Raptor İngiltere,

Başka Tutamaç düzenlemesi yok

Diğer tek dönüş, Handle -1 ise, dosyayı açarken orada gördüğünüzdür.

Dosyanın tam olup olmadığından emin değilsiniz. Sipariş açıldığında tüm başlatma işlevi işlenir ve dosyanın son satırları olduğu için biliyorum, ** END TICKET ** satırları bu yüzden sona geldiğini ve Dosyayı kapattığını biliyorum.

Sanatlar eksik ne demek? Üzgünüm sanatın ne olduğunu bilmiyorum?

 
WHRoeder :
Geçersiz son argüman - int değil


Merhaba WHRoeder,

Ne demek istiyorsun? FileOpen'ın son argümanı

sınırlayıcı - csv dosyaları için sınırlayıcı karakter. Varsayılan olarak, ';' sembolü geçerlidir.

Şerefe

 
favosys :


Merhaba Raptor İngiltere,

Başka Tutamaç düzenlemesi yok

Diğer tek dönüş, Handle -1 ise, dosyayı açarken orada gördüğünüzdür.

Dosyanın tam olup olmadığından emin değilsiniz. Sipariş açıldığında tüm başlatma işlevi işlenir ve dosyanın son satırları olduğu için biliyorum, ** END TICKET ** satırları bu yüzden sona geldiğini ve Dosyayı kapattığını biliyorum.

Sanatlar eksik ne demek? Üzgünüm sanatın ne olduğunu bilmiyorum?

Üzgünüm, "parçalar" . . . **** END TICK USDCHF **** mesajını alıyor musunuz? yoksa ondan önce mi bitiyor?
 
favosys :


Merhaba WHRoeder,

Ne demek istiyorsun? FileOpen'ın son argümanı

sınırlayıcı - csv dosyaları için sınırlayıcı karakter. Varsayılan olarak, ';' sembolü geçerlidir.

";" var ';' değil . . . aldığınız hata mesajı parametre 1'den bahsediyordu, bu dosya tanıtıcı değil mi?