[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 385

 
nadya:
конечно может, если эта ваша переменная имеет соответствующий тип
Одной ячейке. А вот так - только константами: "массивы инициализируются одномерной последовательностью констант, перечисленных через запятую. Последовательность обрамляется фигурными скобками. "
 
kifa911:
Доброе время суток! У меня возник вопрос по поводу инициализации массивов. В учебнике написано, что: Массив может быть инициализирован только константами соответствующего типа. Одномерные и многомерные массивы инициализируются одномерной последовательностью констант, перечисленных через запятую. Последовательность обрамляется фигурными скобками. В данном случае меня смущает слово "константа". Разве определенному индексу массива не может быть присвоено значение через переменную.

присвоение возможно, но не при инициализации.

То есть ситуация:

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

разрешена

А ситуация

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

приведет к ошибке

 
nadya:
конечно может, если эта ваша переменная имеет соответствующий тип

тогда вот какой вопрос. некая функция должна передавать по ссылке два массива данных, например:

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);

}

Когда я выпускаю данную функцию в работу, то в закладке "эксперты" в терменале сообщения такого рода, например:

iCount= 0 firstmassive_2= 0 isecond= =15
iCount= 1 firstmassive_2= 0 isecond= =25
Получается, что массиву не передается значение переменной, хотя последняя значение имеет. Что я сделал не так?
 
artmedia70:

Имя подключаемого файла такое: GetExstremumZZPrice.mqh ???

Он лежит в папке терминала Папка_терминала/experts/include ???


Имя такое, лежал в папке libraries, теперь перенес в папку includ, но результат тот же
 
kifa911:

тогда вот какой вопрос. некая функция должна передавать по ссылке два массива данных, например:

Когда я выпускаю данную функцию в работу, то в закладке "эксперты" в терменале сообщения такого рода, например:

Получается, что массиву не передается значение переменной, хотя последняя значение имеет. Что я сделал не так?

не вижу ошибки. может кто-то другой сможет Вам помочь
 
Повторю вопрос, объясните пожалуйста про операции с файлами. После записи в файл, некоторой информации, можно-ли её потом удалять из файла частично? Записали, допустим, несколько строк в текстовой документ, а потом удалить лишние строки или исправить их при помощи функций файловых операций - можно?
 
fore-x:
Повторю вопрос, объясните пожалуйста про операции с файлами. После записи в файл, некоторой информации, можно-ли её потом удалять из файла частично? Записали, допустим, несколько строк в текстовой документ, а потом удалить лишние строки или исправить их при помощи функций файловых операций - можно?
Можно.
 
Zhunko:
Можно.
  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);          //закрываем файл
    }  
Направьте плиз. Что теперь нужно делать, попасть на начало строки? А дальше что?
 
kifa911:
Доброе время суток! У меня возник вопрос по поводу инициализации массивов. В учебнике написано, что: Массив может быть инициализирован только константами соответствующего типа. Одномерные и многомерные массивы инициализируются одномерной последовательностью констант, перечисленных через запятую. Последовательность обрамляется фигурными скобками. В данном случае меня смущает слово "константа". Разве определенному индексу массива не может быть присвоено значение через переменную.

Так надо различать: инициализировать и присвоить.
 
Vinin:
А если вы линию на вчера или завтра поставите?

Спасибо за внимание, но я не понял суть вашего вопроса, можно в принципе и на вчера или завтра. Линию же можно на любую дату поставить, а когда график до нее дойдет тут то советник и сработает? Или я чего то не понимаю, если не сложно объясните.
Причина обращения: