Ben de kendimi şaşırttığım şeyle sizi şaşırtmak istiyorum.))) Birkaç ayrı satırı tek bir kaynağa aktarmak mümkün mü, böylece kaynağı okurken, ondan sadece seçilen satırı okuyabilirsiniz.
Bir resim için TextOut () kullanılarak birkaç satır oluşturulabilir, ancak böyle bir kaynağı okuma girişimleri başarısız oldu. Sadece ilk satır okunur.
Ben de kendimi şaşırttığım şeyle sizi şaşırtmak istiyorum.))) Birkaç ayrı satırı tek bir kaynağa aktarmak mümkün mü, böylece kaynağı okurken, ondan sadece seçilen satırı okuyabilirsiniz.
Bir resim için TextOut () kullanılarak birkaç satır oluşturulabilir, ancak böyle bir kaynağı okuma girişimleri başarısız oldu. Sadece ilk satır okunur.
Bir görüntüden metin kaydetmeye veya okumaya çalışmanın bir anlamı yoktur. Dizeleri yukarıda açıkladığım gibi yazmak için kaynağı kullanın ve ardından onu CharArrayToString ile geri alın. Ardından, dizeyi sınırlayıcıya bölün ve aralarında ihtiyacınız olanı bulun. (Bu nedenle, dizgiyi kaydetmeden önce, onu bir karakterle alt dizgilere ayırın).
Реter Konow : Bir görüntüden metin kaydetmeye veya okumaya çalışmanın bir anlamı yoktur. Dizeleri yukarıda açıkladığım gibi yazmak için kaynağı kullanın ve ardından onu CharArrayToString ile geri alın. Ardından, dizeyi sınırlayıcıya bölün ve aralarından ihtiyacınız olanı bulun. (Bu nedenle, dizgiyi kaydetmeden önce, onu bir karakterle alt dizgilere ayırın).
Evet, resimden okumak gibi bir arzum yoktu. Resim hakkında sadece birkaç satırda yazma örneği olarak söyledim.
Bir alt dize çekin, çok kolay. Kolay yollar aramıyoruz. :))) Yardımlarınız için teşekkürler.
Evet, resimden okumak gibi bir arzum yoktu. Resim hakkında sadece birkaç satırda yazma örneği olarak söyledim.
Bir alt dize çekin, bu çok kolay. Kolay yollar aramıyoruz. :))) Yardımlarınız için teşekkürler.
Verileri bir kaynakta nasıl depolayacağınızı ve geri alacağınızı zaten biliyorsanız, bir alt diziyi çıkarmak çok zor değildir. Bu başlı başına basit bir görevdir. Önce dizeyi bir kaynakta saklamayı ve ardından oradan almayı deneyin. Ardından, dizeyi alt dizelere bölmek için bir işlev ekleyin ve ihtiyacınız olanı arayın.
Реter Konow : Verileri bir kaynakta nasıl depolayacağınızı ve geri alacağınızı zaten biliyorsanız, bir alt diziyi çıkarmak çok zor değildir. Bu başlı başına basit bir görevdir. Önce dizeyi bir kaynakta saklamayı ve ardından oradan almayı deneyin. Ardından dizeyi alt dizelere bölmek için bir işlev ekleyin ve ihtiyacınız olanı arayın.
Yardımın için teşekkürler Peter. Tellerle çalışmayı yıllar önce öğrendim. Ve senin yardımınla, kaynağı nasıl kaydedeceğimi ve dün nasıl okuyacağımı buldum. Aklıma çılgın bir sms geldi, denemem lazım gibi... ama bu sms nasıl yapılır yolda kayboldu, düşüncelerimde kayboldu.
Şimdi, kaynakları oluşturmak için iki boyutlu ve tek boyutlu diziler arasındaki farkın ne olduğunu anlamaya çalışıyorum. Bu konuda tecrübeniz, fikriniz var mı?
Yardımın için teşekkürler Peter. Tellerle çalışmayı yıllar önce öğrendim. Ve sizin yardımınızla, kaynağı nasıl kaydedeceğimi ve dün nasıl okuyacağımı buldum. Aklıma çılgın bir sms geldi, denemem lazım gibi... ama bu sms nasıl yapılır yolda kayboldu, düşüncelerimde kayboldu.
Şimdi, kaynakları oluşturmak için iki boyutlu ve tek boyutlu diziler arasındaki farkın ne olduğunu anlamaya çalışıyorum. Bu konuda tecrübeniz, fikriniz var mı?
Dürüst olmak gerekirse, hiçbir zaman bir kaynakta iki boyutlu bir dizi saklamadım. Sınırlı olmadığı için her zaman tek boyutlu çalışıldı. Verileri depolamak için, elbette gerekli olmasa da, tek boyutlu daha iyidir. Hangi verilere ve hangi formatta bakılıyor. Dizeleri depolamak için yalnızca tek boyutlu bir dizi kullanın, çünkü iki boyutlu, CharArrayToString ve StringToCharArray işlevlerine gönderilemez. Bu nedenle, evrensellik için, verilerinizin herhangi birini tek boyutlu bir dizide depolamak için bir mekanizma geliştirmenizi tavsiye ederim. Ancak, aynı türden dize olmayan veriler için 2B kullanmayı deneyebilirsiniz. Bundan ne çıkacağı ilginç olacak.
Daha önceki birkaç sayfayı okudum ve görevin kaynaktan sadece küçük bir satır okumak olduğunu anladım. Bu dize 64 karakterden azsa, birleşimlerle çitlemenin ve verileri bir kaynağa kaydetmenin bir anlamı yoktur. OBJPROP_TEXT nesnesinin açıklama özelliğine istediğiniz dizeyi yazmanız yeterlidir:
// Пример хранения/обмена данными через Ресурсы внутри Терминала#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166voidOnStart ()
{
const RESOURCEDATA< int > ResourceINT( "::int" ); // Ресурс для обмена int-ами. const - как доказательство, что ничего не пишется в объект классаint ArrayINT[] = { 1 , 2 , 3 };
int Num = 5 ;
ResourceINT = ArrayINT; // Ресурс хранит массив.
ResourceINT += Num; // Добавили в ресурс еще значение .
ResourceINT += ArrayINT; // Добавили массив.int ArrayINT2[];
ResourceINT.Get(ArrayINT2); // Считали данные из ресурса.ArrayPrint (ArrayINT2); // Вывели: 1 2 3 5 1 2 3
ResourceINT.Free(); // Удалили данные из ресурсаPrint (ResourceINT.Get(ArrayINT2)); // Убедились, что данных нет: 0const RESOURCEDATA< MqlTick > ResourceTicks( "::Ticks" ); // Ресурс для обмена тиками. const - как доказательство, что ничего не пишется в объект классаMqlTick Tick;
if ( SymbolInfoTick ( _Symbol , Tick))
for ( int i = 0 ; i < 3 ; i++)
ResourceTicks += Tick; // Добавили в ресурс тикиMqlTick Ticks[];
ResourceTicks.Get(Ticks); // Считали данные из ресурса.ArrayPrint (Ticks); // Вывели.// Это полное имя ресурса для обращения из другой программыconststring NameOut = StringSubstr ( MQLInfoString ( MQL_PROGRAM_PATH ), StringLen ( TerminalInfoString ( TERMINAL_PATH )) + 5 ) + "::Ticks" ;
Print (NameOut); // Вывели полное имя ресурса.const RESOURCEDATA< MqlTick > Resource(NameOut); // Ресурс для доступа к данным (read-only) из другой программыMqlTick TicksOut[];
Resource.Get(TicksOut); // Считали данные из ресурса.ArrayPrint (TicksOut); // Вывели.
Resource.Free(); // Не получится повлиять на данные read-only-ресурса.Print ( _LastError ); // ERR_INVALID_PARAMETER - Ошибочный параметр при вызове системной функции.
}
Daha önceki birkaç sayfayı okudum ve görevin kaynaktan sadece küçük bir satır okumak olduğunu anladım. Bu dize 64 karakterden azsa, birleşimlerle çitlemenin ve verileri bir kaynağa kaydetmenin bir anlamı yoktur. OBJPROP_TEXT nesnesinin açıklama özelliğine istediğiniz dizeyi yazmanız yeterlidir:
Kesinlikle bu şekilde değil. Görev, birkaç bilgi satırı görüntülemekti. Bence... Bunu tuvalle ortaya çıkarmayı çok istedim. Satırlardan biri bir tarih içeriyor. Bu tarih sadece netlik için değil, program tarafından yeniden başlatıldıktan sonra bile kullanılmalıdır. Bir şekilde kurtarılması gerekiyor gibi görünüyor. Burada hile yapmaya başladım, kolay yollar aramıyoruz. Tarihi saklamanın bir yolu grafiksel bir nesne kullanmak olduğundan, neden aynı kaynağı kullanmayasınız. MT'yi yeniden başlattıktan sonra kaynak okunur, ancak bilgisayarı yeniden başlattıktan sonra henüz kontrol etmedim. Ana şey, kaynakları ve sendikaları çözmemdir. Ve sonra kafama çılgın SMS geldi. Her şeyi sildiğim anda faydalı çalışmalara devam edeceğim.
Kesinlikle bu şekilde değil. Görev, birkaç bilgi satırı görüntülemekti. Bence... Bunu tuvalle ortaya çıkarmayı çok istedim. Satırlardan biri bir tarih içeriyor. Bu tarih sadece netlik için değil, program tarafından yeniden başlatıldıktan sonra bile kullanılmalıdır. Bir şekilde kurtarılması gerekiyor gibi görünüyor. Burada hile yapmaya başladım, kolay yollar aramıyoruz. Tarihi saklamanın bir yolu grafiksel bir nesne kullanmak olduğundan, neden aynı kaynağı kullanmayasınız. MT'yi yeniden başlattıktan sonra kaynak okunur, ancak bilgisayarı yeniden başlattıktan sonra henüz kontrol etmedim. Ana şey, kaynakları ve sendikaları çözmemdir. Ve sonra kafama çılgın SMS geldi. Her şeyi sildiğim anda faydalı çalışmalara devam edeceğim.
İyi. Daha sonra kaynakları ve birlikleri geliştirmeye devam edin. Onlar aracılığıyla, yalnızca herhangi bir veriyi hızlı bir şekilde kaydetmek ve depolamak için değil, aynı zamanda bu verileri farklı programlar arasında gerçek zamanlı olarak ve diski yüklemeden değiş tokuş etmenin evrensel bir yolu açılır.
Kesinlikle.
Ben de kendimi şaşırttığım şeyle sizi şaşırtmak istiyorum.))) Birkaç ayrı satırı tek bir kaynağa aktarmak mümkün mü, böylece kaynağı okurken, ondan sadece seçilen satırı okuyabilirsiniz.
Bir resim için TextOut () kullanılarak birkaç satır oluşturulabilir, ancak böyle bir kaynağı okuma girişimleri başarısız oldu. Sadece ilk satır okunur.
Ben de kendimi şaşırttığım şeyle sizi şaşırtmak istiyorum.))) Birkaç ayrı satırı tek bir kaynağa aktarmak mümkün mü, böylece kaynağı okurken, ondan sadece seçilen satırı okuyabilirsiniz.
Bir resim için TextOut () kullanılarak birkaç satır oluşturulabilir, ancak böyle bir kaynağı okuma girişimleri başarısız oldu. Sadece ilk satır okunur.
Bir görüntüden metin kaydetmeye veya okumaya çalışmanın bir anlamı yoktur. Dizeleri yukarıda açıkladığım gibi yazmak için kaynağı kullanın ve ardından onu CharArrayToString ile geri alın. Ardından, dizeyi sınırlayıcıya bölün ve aralarından ihtiyacınız olanı bulun. (Bu nedenle, dizgiyi kaydetmeden önce, onu bir karakterle alt dizgilere ayırın).
Evet, resimden okumak gibi bir arzum yoktu. Resim hakkında sadece birkaç satırda yazma örneği olarak söyledim.
Bir alt dize çekin, çok kolay. Kolay yollar aramıyoruz. :))) Yardımlarınız için teşekkürler.
Evet, resimden okumak gibi bir arzum yoktu. Resim hakkında sadece birkaç satırda yazma örneği olarak söyledim.
Bir alt dize çekin, bu çok kolay. Kolay yollar aramıyoruz. :))) Yardımlarınız için teşekkürler.
Verileri bir kaynakta nasıl depolayacağınızı ve geri alacağınızı zaten biliyorsanız, bir alt diziyi çıkarmak çok zor değildir. Bu başlı başına basit bir görevdir. Önce dizeyi bir kaynakta saklamayı ve ardından oradan almayı deneyin. Ardından dizeyi alt dizelere bölmek için bir işlev ekleyin ve ihtiyacınız olanı arayın.
Yardımın için teşekkürler Peter. Tellerle çalışmayı yıllar önce öğrendim. Ve senin yardımınla, kaynağı nasıl kaydedeceğimi ve dün nasıl okuyacağımı buldum. Aklıma çılgın bir sms geldi, denemem lazım gibi... ama bu sms nasıl yapılır yolda kayboldu, düşüncelerimde kayboldu.
Şimdi, kaynakları oluşturmak için iki boyutlu ve tek boyutlu diziler arasındaki farkın ne olduğunu anlamaya çalışıyorum. Bu konuda tecrübeniz, fikriniz var mı?
Yardımın için teşekkürler Peter. Tellerle çalışmayı yıllar önce öğrendim. Ve sizin yardımınızla, kaynağı nasıl kaydedeceğimi ve dün nasıl okuyacağımı buldum. Aklıma çılgın bir sms geldi, denemem lazım gibi... ama bu sms nasıl yapılır yolda kayboldu, düşüncelerimde kayboldu.
Şimdi, kaynakları oluşturmak için iki boyutlu ve tek boyutlu diziler arasındaki farkın ne olduğunu anlamaya çalışıyorum. Bu konuda tecrübeniz, fikriniz var mı?
Daha önceki birkaç sayfayı okudum ve görevin kaynaktan sadece küçük bir satır okumak olduğunu anladım. Bu dize 64 karakterden azsa, birleşimlerle çitlemenin ve verileri bir kaynağa kaydetmenin bir anlamı yoktur. OBJPROP_TEXT nesnesinin açıklama özelliğine istediğiniz dizeyi yazmanız yeterlidir:
ObjectSetString (chartID,label_name, OBJPROP_TEXT ,"Dizeniz");
Ve bu şekilde geri alın:
string Str = ObjectGetString (chartID,label_name, OBJPROP_TEXT );
Ve bu kadar.))
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Kitaplıklar: Ticaret İşlemleri
fxsaber , 2018.09.20 16:23
Daha önceki birkaç sayfayı okudum ve görevin kaynaktan sadece küçük bir satır okumak olduğunu anladım. Bu dize 64 karakterden azsa, birleşimlerle çitlemenin ve verileri bir kaynağa kaydetmenin bir anlamı yoktur. OBJPROP_TEXT nesnesinin açıklama özelliğine istediğiniz dizeyi yazmanız yeterlidir:
ObjectSetString (chartID,label_name, OBJPROP_TEXT ,"Dizeniz");
Ve bu şekilde geri alın:
string Str = ObjectGetString (chartID,label_name, OBJPROP_TEXT );
Ve bu kadar.))
Kesinlikle bu şekilde değil. Görev, birkaç bilgi satırı görüntülemekti. Bence... Bunu tuvalle ortaya çıkarmayı çok istedim. Satırlardan biri bir tarih içeriyor. Bu tarih sadece netlik için değil, program tarafından yeniden başlatıldıktan sonra bile kullanılmalıdır. Bir şekilde kurtarılması gerekiyor gibi görünüyor. Burada hile yapmaya başladım, kolay yollar aramıyoruz. Tarihi saklamanın bir yolu grafiksel bir nesne kullanmak olduğundan, neden aynı kaynağı kullanmayasınız. MT'yi yeniden başlattıktan sonra kaynak okunur, ancak bilgisayarı yeniden başlattıktan sonra henüz kontrol etmedim. Ana şey, kaynakları ve sendikaları çözmemdir. Ve sonra kafama çılgın SMS geldi. Her şeyi sildiğim anda faydalı çalışmalara devam edeceğim.
Kesinlikle bu şekilde değil. Görev, birkaç bilgi satırı görüntülemekti. Bence... Bunu tuvalle ortaya çıkarmayı çok istedim. Satırlardan biri bir tarih içeriyor. Bu tarih sadece netlik için değil, program tarafından yeniden başlatıldıktan sonra bile kullanılmalıdır. Bir şekilde kurtarılması gerekiyor gibi görünüyor. Burada hile yapmaya başladım, kolay yollar aramıyoruz. Tarihi saklamanın bir yolu grafiksel bir nesne kullanmak olduğundan, neden aynı kaynağı kullanmayasınız. MT'yi yeniden başlattıktan sonra kaynak okunur, ancak bilgisayarı yeniden başlattıktan sonra henüz kontrol etmedim. Ana şey, kaynakları ve sendikaları çözmemdir. Ve sonra kafama çılgın SMS geldi. Her şeyi sildiğim anda faydalı çalışmalara devam edeceğim.
İyi. Daha sonra kaynakları ve birlikleri geliştirmeye devam edin. Onlar aracılığıyla, yalnızca herhangi bir veriyi hızlı bir şekilde kaydetmek ve depolamak için değil, aynı zamanda bu verileri farklı programlar arasında gerçek zamanlı olarak ve diski yüklemeden değiş tokuş etmenin evrensel bir yolu açılır.