Dmitry01110 : Merhaba! Lütfen bana FileOpen işlevi tarafından oluşturulan dosyayı nasıl düzenleyeceğimi söyleyin, örneğin, geçerli konumdan bir bayt silin ve bunun yerine başka bir bayt ekleyin!
Ben de benzer bir şey yapmaya çalışıyorum.
Yalnızca bir sütunlu bir *.csv dosyası var, yani. içindeki sayılar birbirinin altına girer. Her numara kullanıldığında, yanına bu numaranın danışman tarafından kullanıldığını gösteren bir simge eklenecek şekilde yapmaya çalışıyorum.
*.csv dosyasını iki sütunlu hazırlamak mümkündür - [SAYI]; [ICON] ve sadece danışman simgesini ve düzenleyecektir.
Dmitry01110 : Merhaba! Lütfen bana FileOpen işlevi tarafından oluşturulan dosyayı nasıl düzenleyeceğimi söyleyin, örneğin, geçerli konumdan bir bayt silin ve bunun yerine başka bir bayt ekleyin!
Dosyanın tüm metnini bir dize değişkenine çağırırsınız, onu basit bir değişken olarak düzenlersiniz, sonra bu dosyayı sadece yazmak için çağırır ve bu değişkeni geri döndürürsünüz.
Roger : Dosyanın tüm metnini bir dize değişkenine çağırırsınız, onu basit bir değişken olarak düzenlersiniz, sonra bu dosyayı sadece yazmak için çağırır ve bu değişkeni geri döndürürsünüz.
Dosyadaki karakter sayısı, dize değişkenindeki maksimum karakter boyutunu aşarsa ne olur?
Biraz çözdüm! Dosyadaki bir konumda bir değeri değiştirmek için, FileSeek kullanarak önceki bayta bir işaretçi koymanız ve ardından örneğin FileWriteInteger kullanarak eskisinin üzerine yazacak yeni bir değer yazmanız yeterlidir. Ana şey, eski ve yeni değerlerin aynı boyutta olması gerektiğidir, örneğin int için LONG_VALUE.
artmedia70 : Dosyadaki karakter sayısı, dize değişkenindeki maksimum karakter boyutunu aşarsa ne olur?
Bir dize değişkeninin sınırı yoktur. Aksine var, ama çok büyük. Yapı 529'dan MT4 için bu 2147483647 semboldür ve MT4 32 bit işletim sistemindeyse 2 kat daha azdır. Ve bu her zaman böyle değildir. Farklı anahtarlar ve PAE var...
Dmitry01110 : Biraz çözdüm! Dosyanın herhangi bir yerindeki bir değeri değiştirmek için, FileSeek'i kullanarak önceki bayta bir işaretçi koymanız ve ardından örneğin FileWriteInteger'ı kullanarak oraya eskisinin üzerine yazacak yeni bir değer yazmanız yeterlidir. Ana şey, eski ve yeni değerlerin aynı boyutta olması gerektiğidir, örneğin int için LONG_VALUE.
Evet, ancak CSV için karakter sayısı eşleşmelidir.
Zolotay :
for(int l = StringLen(tfs)-1; l >= 0; l--) { int nChar = StringGetChar(tfs,l); }
Koddaki hatalar. Neden "char" a küfür ediyor? Nasıl ve ne değiştirilebilir?
Sorunu çözmeye yardım edin!
Test cihazındaki EA, ICustom işlevini kullanırken donuyor. Sorunu çözmenin yolları var mı?
Ve test cihazında her zaman bir PB Trade EURUSD hatası vardır,H1: OrderSend hatası 130
300 puan seviyesinde dursa da!
Böyle bile çalışmıyor
Nerede yanlış bir dönüş yaptım?
Merhaba! Lütfen bana FileOpen işlevi tarafından oluşturulan dosyayı nasıl düzenleyeceğimi söyleyin, örneğin, geçerli konumdan bir bayt silin ve bunun yerine başka bir bayt ekleyin!
Ben de benzer bir şey yapmaya çalışıyorum.
Yalnızca bir sütunlu bir *.csv dosyası var, yani. içindeki sayılar birbirinin altına girer. Her numara kullanıldığında, yanına bu numaranın danışman tarafından kullanıldığını gösteren bir simge eklenecek şekilde yapmaya çalışıyorum.
*.csv dosyasını iki sütunlu hazırlamak mümkündür - [SAYI]; [ICON] ve sadece danışman simgesini ve düzenleyecektir.
Ve test cihazında her zaman bir PB Trade EURUSD hatası vardır,H1: OrderSend hatası 130
300 puan seviyesinde dursa da!
Böyle bile çalışmıyor
Nerede yanlış bir dönüş yaptım?
Bir ticaret talebinde hesaplanan fiyatlar, Rakamlara göre normalleştirilmelidir:
StopLevel gereksinimlerine kabul edilebilirlik için stop emirlerinin değerlerini de kontrol etmeniz gerekir:
Bunun gibi bir şey satın almak için ...
Merhaba! Lütfen bana FileOpen işlevi tarafından oluşturulan dosyayı nasıl düzenleyeceğimi söyleyin, örneğin, geçerli konumdan bir bayt silin ve bunun yerine başka bir bayt ekleyin!
Dosyanın tüm metnini bir dize değişkenine çağırırsınız, onu basit bir değişken olarak düzenlersiniz, sonra bu dosyayı sadece yazmak için çağırır ve bu değişkeni geri döndürürsünüz.
for(int l = StringLen (tfs)-1; l >= 0; l--) { int char = StringGetChar(tfs,l); }
Koddaki hatalar. Neden "char" a küfür ediyor? Nasıl ve ne değiştirilebilir?
Dosyadaki karakter sayısı, dize değişkenindeki maksimum karakter boyutunu aşarsa ne olur?
Bir dize değişkeninin sınırı yoktur. Aksine var, ama çok büyük. Yapı 529'dan MT4 için bu 2147483647 semboldür ve MT4 32 bit işletim sistemindeyse 2 kat daha azdır. Ve bu her zaman böyle değildir. Farklı anahtarlar ve PAE var...
Biraz çözdüm! Dosyanın herhangi bir yerindeki bir değeri değiştirmek için, FileSeek'i kullanarak önceki bayta bir işaretçi koymanız ve ardından örneğin FileWriteInteger'ı kullanarak oraya eskisinin üzerine yazacak yeni bir değer yazmanız yeterlidir. Ana şey, eski ve yeni değerlerin aynı boyutta olması gerektiğidir, örneğin int için LONG_VALUE.
for(int l = StringLen(tfs)-1; l >= 0; l--) { int nChar = StringGetChar(tfs,l); }
Koddaki hatalar. Neden "char" a küfür ediyor? Nasıl ve ne değiştirilebilir?