записи в файл

 
//+------------------------- WritingLineInFile() ----------------------------
//| Дописывание строки в конец файла
//+---------------------------------
void WritingLineInFile(string FlName, string Text){
  int file_handle=FileOpen(FlName, FILE_CSV|FILE_READ|FILE_WRITE, " ");
        if (file_handle>0){
                FileSeek(file_handle,0,SEEK_END);
                FileWrite(file_handle,Text);
                FileClose(file_handle);
        }
        else{
          Print("Ошибка ",GetLastError()," - Не удалось открыть файл ",FlName);
   }
}
//--------------------------------------------------------------------------- 

В основном коде генерируем имя файла и строку, которую нужно дописать в конец этого файла. Например, так

FileName=Symbol()+"_"+DoubleToStr(Day(),0)+"_"+DoubleToStr(Month(),0)+"_"+DoubleToStr(Year(),0)+".txt";
  TextInFile=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);
  TextInFile=TextInFile+" "+DoubleToStr(Bid,Digits);

Затем вызываем саму функцию:

WritingLineInFile(FileName,TextInFile);
 
Если хотите писать файл с нуля, флаг FILE_READ надо убрать. В справке это есть.
 

Чтоб данные затирались, функцию FileOpen() нужно использовать с иным ключом. Цитирую учебник:

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

Режим открытия файла FILE_WRITE предусматривает, что файл будет использоваться программой только для записи. Попытка открытия файла в этом режиме приводит к открытию файла нулевой длины. Даже если до открытия в файле были данные, то они будут уничтожены. Открытие файла в этом режиме может закончиться неудачей, если файл ранее был открыт другой программой (в режиме записи).

Допускается открытие файла в режиме FILE_READ|FILE_WRITE. Этот режим предусматривает возможность чтения из файла и записи в файл. Режим используется при необходимости дописать данные в файл, уже содержащий какие-то данные. Функция предусматривает обязательное использование одного из режимов FILE_READ или FILE_WRITE или их комбинацию.

Режим открытия FILE_BIN определяет работу с рабочим файлом, как с бинарным. Режим открытия файла FILE_CSV определяет работу с рабочим файлом, как с текстовым. Функция предусматривает обязательное использование одного из режимов FILE_BIN или FILE_CSV. Одновременное использование режимов FILE_BIN и FILE_CSV не допускается.

Функция предусматривает обязательное комбинирование режимов FILE_READ, FILE_WRITE или FILE_READ|FILE_WRITE с режимами FILE_BIN или FILE_CSV. Например, для чтения текстового файла необходимо использовать комбинацию режимов FILE_CSV|FILE_READ, а для того, чтобы добавить запись в бинарный файл, нужно использовать комбинацию FILE_BIN|FILE_READ|FILE_WRITE.

В пределах одного исполняемого модуля (прикладной программы, например, эксперта) одновременно может быть открыто не более 32 файлов. Описатели файлов, открытых в одном модуле, нельзя передавать в другие модули (библиотеки).

 

спасибо за ответы, так работает без проблем

но мне надо было записать с WinAPI

метод _lcreate тоже не подходит, так как файл удалять нель зя

 

CreateFile http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx 

SetFilePointer http://msdn.microsoft.com/en-us/library/aa365541(VS.85).aspx

SetEndOfFile http://msdn.microsoft.com/en-us/library/aa365531(VS.85).aspx 

.

А _lcreate- это что, функция ядра? Зачем использовать её? 

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