![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Yürütme sonuçları Sabit bir dize için gerekenden daha fazla bellek tahsis edilir (prensipte uzunluğunu artırmak imkansız olacaktır)
Saf bir sabit dize için, arabellek boyutu StringBufferlen=0'dır; bu, dizenin const olduğu anlamına gelir:
"Sözde" bir sabit dizenin yeniden konumlandırılması, sabitle yapılan bir çalışma değildir, ancak 260 karakterlik bir ön tahsis ile dinamik bir değişken oluşturulur:
Saf bir sabit dize için, arabellek boyutu StringBufferlen=0'dır; bu, dizenin const olduğu anlamına gelir:
"Sözde" bir sabit dizenin yeniden konumlandırılması, sabitle yapılan bir çalışma değildir, ancak 260 karakterlik bir ön tahsis ile dinamik bir değişken oluşturulur:
ayırıcıları tanıtmanın zamanı geldi)))
Dize arabelleğinde bir hata olduğunu hatırlatırım:
DLLki'den gelen işlev herhangi biri olabilir.StringToTime işlevinin genişletilmiş bir sürümünü MQL'ye şu şekilde eklemenizi öneririm:
Geçerli sürümde, dize çöp içeriyor olsa ve özellikle garip olan geçerli tarih döndürülse bile işlev her zaman geçerli bir zaman döndürür:
StringToTime("aabbbbccc"), "2019.09.05 01:00:00" değerini döndürür Bu normal mi? Bu performansta, işlev genellikle sağlık için tehlikelidir. Bu nedenle, doğruluk kontrolü olan bir varyant gereklidir.
Kendi işlevini ayrıştırmak gerekirken. Ancak sorun, zamanın farklı formatlarda verilebilmesidir. Ve MQL'de zaten uygulanmış olduğundan, tekerleği yeniden icat ederek tüm bu biçimleri gerçekten kodlamak istemiyorum.
Prensipte bu, diğer dize dönüştürme işlevleri için de geçerlidir: StringToInteger, StringToDouble. Ayrıca doğrulama kontrolleri sağlamazlar.
ps Hmm, görünüşe göre GetLastError() bu durumlarda hata veriyor. bilmiyordum. Bu işlevlerin belgeleri bu konuda hiçbir şey söylemez. Ardından sorun ortadan kalkar. Bool aracılığıyla olsa daha kolay olurdu.Alexey'nin önerisini, dizelerle güvenli çalışmayı, gizli hataları ortadan kaldırma garantisini destekliyorum.
"özellik zaten farklı bir değere sahip ve atlanacak" hatası.
İlk kez kullanıldı. Artık hiçbir dosyada yok. Değere bağlı değildir. 2136 oluşturun.
Lütfen eski stilist stilini geri getirin.
Şimdi burada ne yapılması gerektiğini çözemiyorum:
Bu parça eskiden şöyle görünürdü:
"özellik zaten farklı bir değere sahip ve atlanacak" hatası.
İlk kez kullanıldı. Artık hiçbir dosyada yok. Değere bağlı değildir. 2136 oluşturun.
Projelerle çalışırken böyle bir hata oluşur - kaynak kodunda belirtilen özellik değeri proje ayarlarındaki değerle çelişirse.
Proje Özellikleri
Lütfen eski stilist stilini geri getirin.
Şimdi burada ne yapılması gerektiğini çözemiyorum:
Bu parça eskiden şöyle görünürdü:
Birden çok iç içe if, herhangi bir hizalama ile kurtarılamaz. Okunabilmesi için kodu değiştirmeniz gerekir.
Birden çok iç içe if, herhangi bir hizalama ile kurtarılamaz. Okunabilmesi için kodu değiştirmeniz gerekir.
Birden fazla iç içe yerleştirme yoktur - en üst düzeyde ise, eğer öyleyse.
Başka böyle görünüyorsa eski stili geri istiyorum:
- bir satırdaydı ve sonraki metnin sağa kayması yoktu.
İşte help Koşullu if-else ifadesinden bir örnek (eski şekillendirici )
ve yeni şekillendiricinin yaptığı da bu: