Válasz erre: Instrumentum lista lekérdezése 2012-03-14T08:41:14+00:00

Radu.hu Fórum Kérdések az MQL4 programozási nyelvvel kapcsolatban Instrumentum lista lekérdezése Válasz erre: Instrumentum lista lekérdezése

Radulovic Attila
Tag
Bejegyzések száma: 638

Örülök, hogy segíthettem! 🙂

1. kérdésedre a válasz:

void LoadSymbols (string &SymbolsArray[]) {
 
   int ElementCount;
   string Row;
 
   int 
      fileHandle = FileOpenHistory("symbols.sel", FILE_BIN|FILE_READ);
 
   if (fileHandle >= 0) {
 
      ElementCount = (FileSize(fileHandle) - 4) / 128;
 
      ArrayResize(SymbolsArray, ElementCount);
 
      FileSeek(fileHandle, 4, SEEK_SET);
 
      for (int k = 0; k < ElementCount; k++) {
 
         Row = FileReadString(fileHandle, 12);
         SymbolsArray[k] = Row;
 
         FileSeek(fileHandle, 116, SEEK_CUR);
      }
 
      FileClose(fileHandle);
   }
}
 
/*
Használat:
*/
 
string 
   Szimbolumok[];
 
LoadSymbols (Szimbolumok);

Miután a Szimbolumok tömb feltöltődött, felhasználhatod az elemeit.

2. Igen, a globális változók csak double típusúak lehetnek. Ellenben a nevükkel is lehet trükközni: csinálsz egy prefixet (_kiskutya_) és mögé rakod az értékes(ebb) adatokat is. Példa:

_kiskutya_EURUSD_
_kiskutya_GBPUSD_

Amikor szükséged van az adatokra, beolvasod az összes GV-t, és kiszűröd belőle a prefix-szeiddel rendelkezőeket. Aztán kiszeded a változónévből a hasznos adatot, plusz az értéket és kész.

Bonyolultabb példa:

_kiskutya|EURUSD|1|1.0455|1.0055

Itt természetesen a | jel szeparátor feladatát tölti be.

3. Igen, csak a nevével tudsz rá hivatkozni. Illetve, ha te készítesz valamilyen háttértámogatást egy tömb formájában, akkor hivatkozhatsz a Szimbolumok kulcsával is.

Egyébként a te megoldásod is jópofa 🙂

Ui: a kódformázást trükközéssel csináltam, sajna még egyelőre nem érhető el a fórumposztokon keresztül