Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Nedense işletim sistemi dosyanın silinmesine izin vermiyor - ya başka bir program tarafından açılıyor ya da yeterli haklar yok.
Aynen öyle. Halihazırda alt klasörler ve dosyalar içeren bir klasörü silmeye çalıştığımda, önce dosyaları siliyorum. Yalnızca alt klasörler kalır. Bunları FolderClean() ile temizlemeye çalışıyorum ve ardından FolderDelete()'i çağırıyorum. Bununla birlikte, sonuç olarak, boş olan alt klasörler iyi bir şekilde silinir, ancak alt klasörlerin içinde daha fazla alt klasör varsa bunlar silinmez. Bundan sonra, MetaEditor'daki dosya gezgininden klasörleri manuel olarak silmeye çalışıyorum, ancak terminal onları silmiyor ve şu pencereyi açıyor:
"Devam"a tıklıyorum, değişiklikleri kabul ediyorum, ancak klasör hala silinmedi. Terminali tamamen kapatıp yeniden açtıktan sonra, silinmesi gereken klasörler ya kendiliğinden kaybolur ya da kaybolmaz, ancak yukarıdaki pencere olmadan manuel olarak zaten silinebilirler.
İşte bazı tuhaflıklar...
Kanıtlanması gereken şey: eski terminal MQL5 programlarını GÖREMİYOR. Bir MQL5 komut dosyasında başka birinin dosya sanal alanını açmaya çalışıyorsunuz.
PS Ve genel olarak - program günlükleri vermemek - bu, diğerlerini kahve telvesi üzerinde tahmin etmeye zorlamak içindir.Şu gife bakın:
Bu scriptin kodunu yukarıda, son sayfada verdim.
Önce programlı sonra manuel olarak silmeye çalıştığım klasörlerin hiçbir yerde açık olmadığını da ekleyeceğim. Ayrıca, boş olduklarından ve içindeki dosyalar daha önce silindiğinden, MetaEditor'da dosya gezgininin kendisinden başka hiçbir yerde açılamazlar. Silinen dosyalar da hiçbir yerde açık değildi.
Meta düzenleyicideki dosya gezgininde klasörleri manuel olarak silmek için yönetici onayı gerektiren pencere, yalnızca programın daha önce FolderClean() ve FolderDelete() işlevlerini kullanarak silmeye çalıştığı klasörleri silmeye çalışırken görünür. Diğer klasörleri silmeye çalışırken bu pencere asla görünmez.
FolderClean() işlevi neden bu komut dosyasında çalışmıyor: ?
Bir klasörü temizleme girişiminin bir sonucu olarak, 5026 - (klasör temizlenemiyor) hatası veriyor.
Bu komut dosyası belgelerden alınmıştır (KlasörDelete() işlevinin bölümü) ve biraz değiştirilmiştir. Diğer alt klasörleri veya dosyaları içeren bir klasörü tamamen silmek için onu boşaltmanız gerekir. Bunun için FolderClean() işlevine bir çağrı eklendi.
Ve bir dosyanın neden kapatılmadığını merak etmek mümkün mü? Yoksa ben mi görmüyorum?
İşte bir dosyayı açmaktan silme hakkında soru sormaya kadar kodunuzun bir parçası...
Ve bir dosyanın neden kapatılmadığını merak etmek mümkün mü? Yoksa ben mi görmüyorum?
İşte bir dosyayı açmaktan silme hakkında soru sormaya kadar kodunuzun bir parçası...
Bildiğim kadarıyla, FileWrite() işlevi kullanılarak dosyada herhangi bir değişiklik yapılmadıysa, kapatmaya gerek yok. FileOpen() işlevi yalnızca yeni bir dosya oluşturur ve bu işlem dosyanın kapatılmasını gerektirmez. Ayrıca bu komut dosyası belgelerden alınmıştır ve orada hiçbir şeye hükmetmedim. Sadece FolderClean() işleviyle satırları ekledim.
Ancak, hata ayıklayıcıyla kodu gözden geçirirseniz, FileOpen() yürütüldükten hemen sonra, diskte sıfır boyutlu bir dosya vardır. Ve belgelerde birçok hata ve yanlışlıklar var.
Ancak, hata ayıklayıcıyla kodu gözden geçirirseniz, FileOpen() yürütüldükten hemen sonra, diskte sıfır boyutlu bir dosya vardır. Ve belgelerde birçok hata ve yanlışlıklar var.
Bu nedenle, bu örnek için sıfır beden olmalıdır.
Şimdi komut dosyasına dosyanın açık bir kapanışını eklemeye çalışacağım ve tekrar deneyeceğim.
Bu nedenle, bu örnek için sıfır beden olmalıdır.
Şimdi komut dosyasına dosyanın açık bir kapanışını eklemeye çalışacağım ve tekrar deneyeceğim.
Sonuç aynı.
İşte yeni kod: