[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 385

 
nadya:
Natürlich geht das, wenn die Variable vom entsprechenden Typ ist
Eine Zelle. Aber so, nur mit Konstanten: "Arrays werden mit einer eindimensionalen Folge von Konstanten initialisiert, die durch Kommata getrennt sind. Die Sequenz ist von geschweiften Klammern umgeben. "
 
kifa911:
Guten Tag, ich habe eine Frage zur Initialisierung von Arrays. In der Anleitung heißt es dazu: Ein Array kann nur mit Konstanten des entsprechenden Typs initialisiert werden. Eindimensionale und mehrdimensionale Arrays werden mit einer eindimensionalen Folge von Konstanten initialisiert, die durch Kommata getrennt aufgelistet werden. Die Sequenz ist von geschweiften Klammern umgeben. In diesem Fall verwirrt mich das Wort "konstant". Kann einem bestimmten Array-Index nicht über eine Variable ein Wert zugewiesen werden?

Zuweisung ist möglich, jedoch nicht während der Initialisierung.

Das heißt, die Situation:

int aaa = 4;
int bbb[5] = {0, 1, 2, 3, 0};
bbb[4] = aaa;

erlaubt

Und die Situation

int aaa = 4;
int bbb[5] = {0, 1, 2, 3, aaa};

wird einen Fehler verursachen

 
nadya:
Natürlich kann sie das, wenn Ihre Variable den entsprechenden Typ hat

Dann habe ich eine Frage. Eine Funktion muss zum Beispiel zwei Arrays mit Daten per Referenz übergeben:

void SomeFunction(int& firstmassive[][3],double& secondmassive[][3])

{

 int iCount=-1,

      ifirst,isecond,ithird;

 double dfirst,dsecond,dthird;

...

 iCount++;

  firstmassive[iCount][0]=ifirst;firstmassive[iCount][1]=isecond;firstmassive[iCount][2]=ithird;

  secondassive[iCount][0]=dfirst;secondmassive[iCount][1]=dsecond;secondmassive[iCount][2]=dthird;

  print("iCount= "+iCount+" firstmassive_2= "+firstmassive[iCount][1]+" isecond= "+isecond);

...

return(0);

}

Wenn ich diese Funktion zum Arbeiten freigebe, erscheinen auf der Registerkarte "Experten" in den Menüs Meldungen wie:

iCount= 0 firstmassive_2= 0 isecond= =15
iCount= 1 firstmassive_2= 0 isecond= =25
Es stellt sich heraus, dass kein Wert der Variablen an das Array übergeben wird, obwohl letzteres einen Wert hat. Was habe ich falsch gemacht?
 
artmedia70:

Der Name der Plug-in-Datei lautet: GetExstremumZZZPrice.mqh

Es befindet sich im Terminal-Ordner Terminal_folder/experts/include.


Der Name ist derselbe, er war im Ordner "libraries", jetzt ist er im Ordner "includ", aber das Ergebnis ist das gleiche
 
kifa911:

Dann habe ich eine Frage. Eine Funktion muss zum Beispiel zwei Arrays von Daten per Referenz übergeben:

Wenn ich diese Funktion zum Arbeiten freigebe, zeigt die Registerkarte "Experten" in der Thermik Meldungen dieser Art an, z. B:

Es stellt sich heraus, dass kein Variablenwert an das Array übergeben wird, obwohl das Array einen Wert hat. Was habe ich falsch gemacht?

Ich sehe den Fehler nicht. Vielleicht kann Ihnen jemand anders helfen.
 
Erläutern Sie bitte noch einmal die Dateivorgänge. Ist es möglich, Informationen, die in eine Datei geschrieben wurden, teilweise aus der Datei zu entfernen? Nehmen wir an, Sie haben einige Zeilen in ein Textdokument geschrieben und können dann überflüssige Zeilen löschen oder mit Hilfe von Dateioperationsfunktionen korrigieren?
 
fore-x:
Erläutern Sie bitte noch einmal die Dateivorgänge. Ist es möglich, Informationen, die in eine Datei geschrieben wurden, teilweise aus der Datei zu entfernen? Nehmen wir an, Sie haben einige Zeilen in ein Textdokument geschrieben und können dann überflüssige Zeilen löschen oder mit Hilfe von Dateioperationsfunktionen korrigieren?
Sie können.
 
Zhunko:
Sie können.
  if(text != " ") 
    {
    handle = FileOpen(filename,FILE_CSV|FILE_READ|FILE_WRITE, ';'); //открыл файл
    FileSeek(handle,0,SEEK_SET );                               //переместил указатель   
    while(FileIsEnding(handle)==false)                              
      {
      pos = StringFind(FileReadString(handle),symb, 0);             //нашел нужную строку...  
      if(pos >= 0)break;                                   //...файловый указатель в конце строки
      if(FileIsEnding(handle)==true) break;                            
      }
                                 
      ?????????????????? //тут что делать, как удалить или перезаписать выбранную строку
    
    FileWrite(handle,text);     //записываем новую строку
    FileClose(handle);          //закрываем файл
    }  
Bitte führen Sie mich. Was muss ich jetzt tun, um an den Anfang der Schlange zu kommen? Und was dann?
 
kifa911:
Guten Tag, ich habe eine Frage zur Initialisierung von Arrays. In der Anleitung heißt es, dass: Ein Array kann nur durch Konstanten des entsprechenden Typs initialisiert werden. Eindimensionale und mehrdimensionale Arrays werden mit einer eindimensionalen Folge von Konstanten initialisiert, die durch Kommata getrennt aufgelistet werden. Die Sequenz ist von geschweiften Klammern umgeben. In diesem Fall verwirrt mich das Wort "konstant". Kann einem bestimmten Array-Index nicht über eine Variable ein Wert zugewiesen werden?

Sie müssen also unterscheiden zwischen: initialisieren und zuweisen.
 
Vinin:
Was wäre, wenn Sie die Linie für gestern oder morgen festlegen?

Ich danke Ihnen für Ihre Aufmerksamkeit, aber ich verstehe Ihre Frage nicht. Die Linie kann für ein beliebiges Datum festgelegt werden, und wenn das Diagramm es erreicht, wird der EA auslösen? Oder vielleicht verstehe ich etwas nicht, wenn Sie es mir erklären können.
Grund der Beschwerde: