Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1116
![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
İyi seyirler, bitmiş .csv dosyasına 1. satıra geçişle yeni bir satır nasıl eklenir - mümkünse? Peki ya da bir şekilde farklı, ancak mevcut verilerin yeniden hesaplanması / numaralandırılması olmadan. Sütun ve satır adlarını güncellemek mümkün mü?
{
int handle= FileOpen (fileName, FILE_CSV | FILE_WRITE , " " ),x= 0 ,y= 0 ;
FILE_CSV'yi kaldırın, bunun yerine "\n\t" biçimini vb. kullanıyorsanız FILE_ANSI kullanın .
FILE_CSV'yi kaldırın, bunun yerine "\n\t" biçimini vb. kullanıyorsanız FILE_ANSI kullanın .
İyi zaman, görev iki boyutlu bir diziyi BIN biçiminde yeniden yazmak, işlev iki boyutlu bir diziyi girdi olarak tanıyor mu?
FileWriteArray
Kesinlikle iki boyutlu olarak okuyacaktır. Kusura bakmayın, kusura bakmayın ama 2x2 elemanlı bir test dizisini yazmak, okumak ve görüntülemek daha kolay olmaz mıydı?
Dosyaya boş NULL değerler yazılır. diziZ iki boyutlu
//| Запись n элементов массива в файл |
//+------------------------------------------------------------------+
void WriteData( const int n)
{
//--- откроем файл
ResetLastError ();
int handle= FileOpen (path, FILE_READ | FILE_WRITE | FILE_BIN );
if (handle!= INVALID_HANDLE )
{
//--- запишем данные массива в конец файла
FileSeek (handle, 0 , SEEK_END );
FileWriteArray (handle,arrayZ, 0 ,n);
//--- закрываем файл
FileClose (handle);
}
else
Print ( "Failed to open the file, error " , GetLastError ());
}
Dosyaya boş NULL değerler yazılır. diziZ iki boyutlu
//| Запись n элементов массива в файл |
//+------------------------------------------------------------------+
void WriteData( const int n)
{
//--- откроем файл
ResetLastError ();
int handle= FileOpen (path, FILE_READ | FILE_WRITE | FILE_BIN );
if (handle!= INVALID_HANDLE )
{
//--- запишем данные массива в конец файла
FileSeek (handle, 0 , SEEK_END );
FileWriteArray (handle,arrayZ, 0 ,n);
//--- закрываем файл
FileClose (handle);
}
else
Print ( "Failed to open the file, error " , GetLastError ());
}
Bugün bana bir şey tembel ve zaman yok ... Belgelerde, bu işlevi nereden kopardığınızı bile, bir dizi yapıyı bile yazıyorlar. Ve belgelerde verilen örneğin tamamı değiştirilmezse çalışır mı? Kendiniz kontrol edin, çalışmazsa SD'ye yazmanız gerekir.
Bunlar serileştirme işlevleridir. Bir dosyayı okunabilir metin biçiminde açmak istiyorsanız, dosyaya dizeler yazın.
string s = StringFormat("ilk satır: %s\n", ilk);
s += StringFormat("ikinci dize: %s\n", saniye);
s += StringFormat("üçüncü satır: %s\n", üçüncü);
FileWrite(lar);
ve saire ve saire.
FileRead okumak ve her satırı ayrıştırmak için (oynamanız gerekir, ancak okunabilirlik istiyorsanız nereye gidebilirsiniz).
Çocuklar gibi, Tanrı tarafından. İşlevden bir Noel mucizesi bekleyin, her şeyi güzelce yapacak, fırlatıp biçimlendirecek)))
Genel olarak, Mutlu Noeller, tüm karlar)))
FileWriteArray ve FileReadArray gibi kalemtraşları tasarlanmadıkları amaçlar için kullanmayın.
Bunlar serileştirme işlevleridir. Bir dosyayı okunabilir metin biçiminde açmak istiyorsanız, dosyaya dizeler yazın.
string s = StringFormat("ilk satır: %s\n", ilk);
s += StringFormat("ikinci satır: %s\n", saniye);
s += StringFormat("üçüncü satır: %s\n", üçüncü);
FileWrite(lar);
ve saire ve saire.
FileRead okumak ve her satırı ayrıştırmak için (oynamanız gerekir, ancak okunabilirlik istiyorsanız nereye gidebilirsiniz).
Çocuklar gibi, Tanrı tarafından. İşlevden bir Noel mucizesi bekleyin, her şeyi güzelce yapacak, fırlatıp biçimlendirecek)))
Genel olarak, Mutlu Noeller, tüm karlar)))
Csv'den iki boyutlu bir dizinin içe aktarılmasını atlamanın mümkün olup olmadığını söyleyebilir misiniz, Göstergeden Uzman Danışmana üç (veya iki) boyutlu bir dizi çıkararak?
FileReadDouble dosya işlemi iki boyutlu bir diziyi dikkate alıyor mu ve öyleyse nasıl?
Ve genel olarak, csv matrisini bir diziye aktarmak için hangi işlemle daha iyidir.
Örneğin nasıl örnek alındığını anlamıyorum
//--- прочитаем данные из файла
for ( int i= 0 ;i<size;i++)
{
time_buff[i]=( datetime ) FileReadDouble (file_handle);
ma_buff[i]= FileReadDouble (file_handle);
}
nasılsa aynı verileri time_buff[i] ve ma_buff[i] dizisine yazıyoruz
https://www.mql5.com/ru/docs/files/filereaddouble adresinden örnek
Ve eğer iki boyutlu bir dizim varsa, onu nasıl düzenleyebilirim.
FileReadString kullanıyorsanız, o zaman orada dizenin uzunluğunu belirtmeniz gerekir, dizedeki hücre değil de basamak sayısını bilmesi gerekiyor mu?
Görünüşe göre FileReadNumber kullanmanız gerekiyor, ancak bu aynı zamanda bir tür kalay
Csv'den iki boyutlu bir dizinin içe aktarılmasını atlamanın mümkün olup olmadığını söyleyebilir misiniz, Göstergeden Uzman Danışmana üç (veya iki) boyutlu bir dizi çıkararak?
FileReadDouble dosya işlemi iki boyutlu bir diziyi dikkate alıyor mu ve öyleyse nasıl?
Ve genel olarak, csv matrisini bir diziye aktarmak için hangi işlemle daha iyidir.
Örneğin nasıl örnek alındığını anlamıyorum
//--- прочитаем данные из файла
for ( int i= 0 ;i<size;i++)
{
time_buff[i]=( datetime ) FileReadDouble (file_handle);
ma_buff[i]= FileReadDouble (file_handle);
}
nasılsa aynı verileri time_buff[i] ve ma_buff[i] dizisine yazıyoruz
https://www.mql5.com/ru/docs/files/filereaddouble adresinden örnek
Ve eğer iki boyutlu bir dizim varsa, onu nasıl düzenleyebilirim.
FileReadString kullanıyorsanız, o zaman orada dizenin uzunluğunu belirtmeniz gerekir, dizedeki hücre değil de basamak sayısını bilmesi gerekiyor mu?
Görünüşe göre FileReadNumber kullanmanız gerekiyor, ancak bu aynı zamanda bir tür kalay
Ve lütfen söyleyin bana, FileWriteArray () dizisini yazmaktan bahsettiğimizde, yazılanları nasıl okumaya çalıştınız?
string path=InpDirectoryName+ "//" +InpFileName;
//--- откроем файл
ResetLastError ();
int file_handle= FileOpen (path, FILE_READ | FILE_BIN );
if (file_handle!= INVALID_HANDLE )
{
//--- прочитаем все данные из файла в массив
FileReadArray (file_handle,arr);
//--- получим размер массива
int size= ArraySize (arr);
//--- распечатаем данные из массива
Print ( " = " ,arr[ 0 ][ 0 ], " = " ,arr[ 1 ][ 1 ], " = " ,arr[ 2 ][ 2 ]);
Print ( "Total data = " ,size);
//--- закрываем файл
FileClose (file_handle);
}
else
Print ( "File open failed, error " , GetLastError ());
2017.01 . 09 17 : 20 : 40.609 TorFid_v02 (EURUSD,H1) Total data = 1020100
Neyin eksik olduğunu anlıyorum, iki boyutlu bir diziye ters dönüşüm, ama nasıl olduğunu anlamıyorum
Tabii doğru kaydettiysem
{
for ( int q= 1 ; q<ARRAY_SIZE_X- 1 ; q++) // Перебор по периоду, колонка X
{
arr[q][z]= NormalizeDouble (sm.d[q+ 1 ].m[nBar-z], 5 ); // M(I) SMA
}
}
WriteData( 1000 );
//| Запись n элементов массива в файл |
//+------------------------------------------------------------------+
void WriteData( const int n)
{
//--- откроем файл
ResetLastError ();
int handle= FileOpen (path, FILE_READ | FILE_WRITE | FILE_BIN );
if (handle!= INVALID_HANDLE )
{
//--- запишем данные массива в конец файла
FileSeek (handle, 0 , SEEK_END );
FileWriteArray (handle,arr, 0 ,n);
//--- закрываем файл
FileClose (handle);
}
else
Print ( "Failed to open the file, error " , GetLastError ());
}