DocKlein:
Приветствую всех.
Искал в интернете способ очистить файл средствами MQL4. Такого не нашёл. Написал следующую тестовую функцию. Но к сожалению она не стирает файл, а только лишь перезаписывает. Как сделать очистку файла? Притом такую очистку, которая могла бы стереть всё без разбора и оставить только голый файл.
bool rewriteFile() {
int handleFile = FileOpen("test.txt", FILE_READ|FILE_WRITE, ";");
if(handleFile > 0) {
int file_bites = 0;
for(int w = 0; w < 10; w++) {
file_bites += FileWriteString(handleFile, w+";"); // запишет в файл
FileSeek(handleFile, file_bites, SEEK_SET); // установит курсор в нужную позицию
}
FileClose(handleFile);
return true;
} else {
Alert("Не удаётся открыть файл");
return false;
}
}
int handleFile = FileOpen("test.txt", FILE_READ|FILE_WRITE, ";");
if(handleFile > 0) {
int file_bites = 0;
for(int w = 0; w < 10; w++) {
file_bites += FileWriteString(handleFile, w+";"); // запишет в файл
FileSeek(handleFile, file_bites, SEEK_SET); // установит курсор в нужную позицию
}
FileClose(handleFile);
return true;
} else {
Alert("Не удаётся открыть файл");
return false;
}
}
А в чём проблема??? Если надо стереть файл без разбора то проще его именно перезаписать.
А оно надо??? Если нужен файл с новыми данными, то его просто надо открыть с флагом записи и без флага чтения.
bool clearFile()
{
int handleFile = FileOpen("test.txt", FILE_WRITE|FILE_TXT);
if(handleFile > 0)
{
FileClose(handleFile);
return(true);
}
return(false);
}
{
int handleFile = FileOpen("test.txt", FILE_WRITE|FILE_TXT);
if(handleFile > 0)
{
FileClose(handleFile);
return(true);
}
return(false);
}
Alexsey Victorov. Да действительно это работает. Файл полностью очищается. Благодарю вас.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Приветствую всех.
Искал в интернете способ очистить файл средствами MQL4. Такого не нашёл. Написал следующую тестовую функцию. Но к сожалению она не стирает файл, а только лишь перезаписывает. Как сделать очистку файла? Притом такую очистку, которая могла бы стереть всё без разбора и оставить только голый файл.
int handleFile = FileOpen("test.txt", FILE_READ|FILE_WRITE, ";");
if(handleFile > 0) {
int file_bites = 0;
for(int w = 0; w < 10; w++) {
file_bites += FileWriteString(handleFile, w+";"); // запишет в файл
FileSeek(handleFile, file_bites, SEEK_SET); // установит курсор в нужную позицию
}
FileClose(handleFile);
return true;
} else {
Alert("Не удаётся открыть файл");
return false;
}
}