Возможна ли запись данных во вторую колонку *.xls файла?

 
В хелпе не нашёл.
Пытался писАть "\t" - не помогло.
Фантазия иссякла =(
 
Наверное, плохо сформулировал =)

Задачая следующая - создать таблицу данных в экселе средствами MQL4.
Именно таблицу, т.е. чтоб было несколько строк и столбцов. Со стороками проблем нет - \n или \r. А вот столбец заполняется только первый.
Есть ли символ, который обозначит Табуляцию? (в экселе при нажатии Tab курсор переносится в соседний столбец)
Или, может, есть другое решение?


Вопрос адресуется и разработчикам, и всем, кто сталкивался или знает ;)

Всем заранее спасибо.
 
вообще-то "\t" должно помочь. я многократно использовал вариации эксперта, в котором открывал csv-файл (ёксель его хорошо понимает) с третьим параметром "\t" в качестве разделителя. все переменные переданные в функции FileWrite будут разделены символом табуляции, а в конце будет перевод строки
 
я не пробовал csv, пробовал xls - не получается. Ни как разделитель, ни как кусок текста... Завтра ещё поэксперементирую...
 
нет. xls - слишком сложный формат, как бинарник сложный. одна документация весит не одну сотню страниц. csv - единственно возможная альтернатива в Вашем случае
 
нет. xls - слишком сложный формат, как бинарник сложный. одна документация весит не одну сотню страниц. csv - единственно возможная альтернатива в Вашем случае
понял. Спасибо. Буду пробовать.
 
Попробовал. Не получается.
Код скрипта:
#include <stdlib.mqh>

int start()
{
	string text1 = TimeToStr( LocalTime(), TIME_SECONDS );
	string text2 = "Bid = ";
	string text3 = DoubleToStr( Bid, Digits );

	int _GetLastError;

	string file_name = "logs\_TradeLog\\" + TimeToStr( LocalTime(), TIME_DATE ) + ".csv";
	int file_handle = FileOpen ( file_name, FILE_CSV | FILE_WRITE, "\t" );
	
	if ( file_handle > 0 )
	{
		FileSeek ( file_handle, 0, SEEK_END );
		if ( FileWrite ( file_handle, text1, text2, text3 ) < 0 )
		{
			_GetLastError = GetLastError();
			Print( "trade_lib&info_lib - Ошибка при FileWrite ( ", file_handle, ", \"", text1, "\", \"", text2, "\", \"", text3, "\" ), GetLastError() = ", _GetLastError, ", ErrorDescription = ", ErrorDescription( _GetLastError ) );
		}
		FileClose ( file_handle );
	}
	else
	{
		_GetLastError = GetLastError();
		Print( "trade_lib&info_lib - Ошибка при FileOpen( \"", file_name, "\", FILE_READ | FILE_WRITE, \" \" ), GetLastError() = ", _GetLastError, ", ErrorDescription = ", ErrorDescription( _GetLastError ) );
	}
return(0);
}



Вместо FILE_CSV | FILE_WRITE пробовал FILE_READ | FILE_WRITE, FILE_READ | FILE_CSV | FILE_WRITE.
Результат - один:


Второй и третий столбцы заполнятся и не думают...

 
кстати, "\n" и "\r" в роли разделителей тоже не воспринимаются... тоже "квадратики"...
На всякий случай: WinXP Pro SP1 русифицирован MUI, Office 2002 SP1...
 
Все гениальное - просто =) но недокументировано =)))
получилось. Вот так:
	int file_handle = FileOpen ( file_name,FILE_READ | FILE_WRITE );

т.е. разделитель - ";"

 
а мне казалось что екселю пофигу, я всегда ксв предварительно переименовывал в тхт файл, а затем при открытии указывал кодировку, разделители и т.д, иначе он все в один столбец пихал.
 
Зависит от Экселя (или настроек в нем или реестре - не копал). Дома Эксель с полуслова открывает csv файлы как надо и не жужжит, а на работе, если явно не указать данный формат - открывает все в одном столбце, тупит короче.
Причина обращения: