Kolaylık sağlamak için, Excel'deki tabloları, gerekli tüm verilerin bir sütunda bir ilk (A) sütununda toplanacağı şekilde yeniden işlemem gerekiyordu. En soldaki sütundan okumak ve her şeyi ikiye katlamak, onları tüm satırlarda toplamaktan daha uygun olduğu ortaya çıktı. Sonundaki kod aşağıdaki formu aldı:
//+------------------------------------------------------------------+//дата datetime t= D'2019.05.17' ;
//+------------------------------------------------------------------+string FileName= "Книга1 EURUSD.csv" ;
//+------------------------------------------------------------------+string sy[ 80 ]; //количество необходимых данныхdouble dy[ 80 ]; //ArrayFill (dy, 0 , 80 , 0 ); //явно обнуляемint c= 0 ;
int hf= FileOpen (FileName, FILE_READ | FILE_WRITE | FILE_CSV | FILE_ANSI );
if (hf!= INVALID_HANDLE )
{
while (! FileIsEnding (hf))
{
sy[c]= FileReadString (hf); //записываем в массив stringStringSetLength (sy[c], 20 ); //укорачиваем строку, т.к. явно будет меньше 20 значащих цифрStringReplace (sy[c], ";" , " " ); //меняем первый(;) на 20 пробеловStringSetLength (sy[c], 20 ); //ещё раз укорачиваем строкуStringTrimRight (sy[c]); //Удаляем ненужные пробелы справа, т.о. укорачиваем строку до значащих символовStringReplace (sy[c], "," , "." ); //меняем (,) на (.)
dy[c]= StringToDouble (sy[c]); //переводим string в double и записываем в массив double
c++; //считаем, сколько записать данных в массивif (c>= 80 ) break ; //выходим из цикла по окончании массива
}
/*
//сверяем с таблицей в Excel, если нужно
for(int i=0;i<80;i++)
{
Alert("8 i=",i," dy[i]=",dy[i]);
}
*/
}
else
{
Alert ( "Не удалось открыть h_f. Код ошибки = " , GetLastError ());
return ;
}
//+------------------------------------------------------------------+
Genel olarak, Excel'i virgül yerine nokta koyacak şekilde yapılandırabilirsiniz.
Bölgesel ayarlar işletim sisteminin kendisinde yapılandırılır.
İki sipariş açık, ancak OrdersTotal() işlevi 0 döndürüyor. Nedeni ne olabilir? Teşekkür ederim.
MQL5: Örnekler:
Genel olarak, Excel'i virgül yerine nokta koyacak şekilde yapılandırabilirsiniz.
Yapabilir. Yalnızca Excell'de değil, işletim sisteminde.
Yapabilir. Yalnızca Excell'de değil, işletim sisteminde.
Bir şeyin yapılandırılabileceğini hatırlıyorum. Uzun zamandır kafamda bu yoktu. Ama en önemlisi, yapabilirsin...
Genel olarak, aşağıdakiler oldu:
Kolaylık sağlamak için, Excel'deki tabloları, gerekli tüm verilerin bir sütunda bir ilk (A) sütununda toplanacağı şekilde yeniden işlemem gerekiyordu. En soldaki sütundan okumak ve her şeyi ikiye katlamak, onları tüm satırlarda toplamaktan daha uygun olduğu ortaya çıktı. Sonundaki kod aşağıdaki formu aldı:
AYRILMAK YASAKTIR!
Ve ayrıştırma nerede, anlamıyorum?
Ve ayrıştırma nerede, anlamıyorum?
Belki de derlenmiş kodu gönderdiniz? Belki yürütülebilir dosyanın ayrıştırılmasıyla ilgili başka bir şey istediler?
Durumun doğru yazılışı konusunda kafanız karıştı, yardım edin: