Подскажите с файловыми операциями

 

Всем здрасьте!

Почему не записывает единицу в файл последовательность:

FileOpen("1.csv",FILE_READ|FILE_WRITE,';');
FileWrite("1.csv",1);
FileClose("1.csv");

(файл уже создан в нужной директории).

Спасибо.

 

Надо создать метку файла, а потом уже работать с ней:

int handle=FileOpen("1.csv",FILE_READ|FILE_WRITE,';');
FileWrite(handle,1);
FileClose(handle);

 
Roger писал(а) >>

Надо создать метку файла, а потом уже работать с ней:

int handle=FileOpen("1.csv",FILE_READ|FILE_WRITE,';');
FileWrite(handle,1);
FileClose(handle);

Эта конструкция пишет только единицу в файл и на этом все заканчивается.

Как получить столбик из единиц?

 
Наверное, делать WriteFile столько раз, сколько тебе надо единиц :-)
 
Daniil писал(а) >>
Наверное, делать WriteFile столько раз, сколько тебе надо единиц :-)

Мне нужно накапливать информацию, т.е. дописывать файл.

 
//+------------------------------------------------------------------+
//| Запись строки в файл                                             |
//+------------------------------------------------------------------+
void WritingLineInFile(string FileName, string text)
{  
  int file_handle=FileOpen(FileName, FILE_READ|FILE_WRITE, " ");

	if (file_handle>0)
	{
		FileSeek(file_handle, 0, SEEK_END);
		FileWrite(file_handle, text);
		FileClose(file_handle);
	}
	
}
//Так к этой функции обращаются

WritingLineInFile('FileName','String');

Чтобы не протереть дырку в винчестере,если собирать тиковые данные, рекомендую сначала собирать в массив по 50..1000 записей,а потом через фунуцию дописывать в файл.

Получается очень экономно и надёжно.

 
zhuki писал(а) >>

Чтобы не протереть дырку в винчестере,если собирать тиковые данные, рекомендую сначала собирать в массив по 50..1000 записей,а потом через фунуцию дописывать в файл.

Получается очень экономно и надёжно.

Спасибо. Все рабтает. Вопрос закрыт.

Но ведь интересно, нигде об этом не написано. Везде пишут о необходимости связки FILE_READ|FILE_WRITE для дописи в файл,

про FileSeek ни слова (за исключением примера без объяснений в разделе помощи).

Все нужно читать между строк.

 
qee >>:

Спасибо. Все рабтает. Вопрос закрыт.

Но ведь интересно, нигде об этом не написано. Везде пишут о необходимости связки FILE_READ|FILE_WRITE для дописи в файл,

про FileSeek ни слова (за исключением примера без объяснений в разделе помощи).

Все нужно читать между строк.

Это существует во всех языках програмирования и MQL не исключение.

Желаю успехов.