Как писать параметры csv=файла в отдельные ячейки? - страница 2

 
Konstantin Nikitin:

Чтоб не спорили

Это в смысле "LibreOffice - понимает и тот и другой формат ?

К сожалению, у большинства стоит MS Office, а он берет разделитель из региональных настроек.

В принципе, считаю это правильным.

 
Georgiy Merts:

Это в смысле "LibreOffice - понимает и тот и другой формат ?

К сожалению, у большинства стоит MS Office, а он берет разделитель из региональных настроек.

В принципе, считаю это правильным.

Кстати, кроме разделителя ячеек при работе с CSV-файлами требуется знать еще и разделитель целой и дробной части. В MQL -это точка, а в Excel по умолчанию - запятая. Так что уже два вопроса по региональным настройкам.

 
Georgiy Merts:

Да если бы только мне - и вопросов бы не было.

"На экран вывесить в окошко" - совсем не проще. Экселевская таблица - куда более удобна, и график можно построить, и вычисления провести.

Просто  столкнулся с тем, что у пользователя буржуйская Винда, и, соответственно, эксель открывает файл, не разделяя его на ячейки. Разобрать-то разобрались, заменили разделитель - все заработало. Но предпочтительнее, чтобы CSV-разделитель ставился бы автоматически правильно.

Эксель - вообще, странная скотина. Один и тот же ксв файл: открываешь его дабл-кликом из проводника - не разбивает на ячейки; открываешь драг-дропом из проводника в эксель - разбивает. Эта багофича тянется с незапамятных времён и чинить никто не собирается.

 
Ihor Herasko:

Кстати, кроме разделителя ячеек при работе с CSV-файлами требуется знать еще и разделитель целой и дробной части. В MQL -это точка, а в Excel по умолчанию - запятая. Так что уже два вопроса по региональным настройкам.

Точно.

В моей ветке этот вопрос уже возник.

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Как писать параметры csv=файла в отдельные ячейки?

Alexey Viktorov, 2018.05.14 11:23

Можно. Просто надо писать несколько раз.

  int handle = FileOpen(fileName, FILE_READ|FILE_WRITE|FILE_CSV, ";");
  FileSeek(handle, 0, SEEK_END);
  FileWrite(handle, TimeToString(TimeCurrent(), TIME_DATE|TIME_SECONDS));
  FileWrite(handle, dataToWrite);
  FileClose(handle);
Так будет заполнено две ячейки одной строки Excell

Данный способ не делает то, что вы сказали, он не записывает в разные ячейки в формате csv одной строки 

 
Aleksei Skrypnev:

Данный способ не делает то, что вы сказали, он не записывает в разные ячейки в формате csv одной строки 

В кривых руках стеклянный файл не на долго. Или разобьёт или потеряет.

Причина обращения: