Да, можно. WinAPI. Сначала файловый указатель ставите, куда надо. Потом это -> SetEndOfFile(). Файл обрезается по файловому указателю.
Здесь есть функция:
// 2.9. Функция устанавливает размер файла. void FileResize(int hFile, // Системный дескриптор файла. ulong ulNewSize); // Новый размер файла.В ней всё уже есть.
Круто! Пасиба ;)))
Я WinAPI + MQL до этого не пользовался... ща будем )
FileResize
хм, исчо интереснее - думаю эту библиотеку в первую очередь поюзать )
ZhunkoSendMsg("Спасибо!");
:)
Всем привет.
Вообщем такой вопрос:
Например, есть файл из N записей (у меня структуры), я хочу удалить последнюю запись.
Вопрос в том, что нужно "затереть" последнюю запись (какое-то кол-во байт)... т.е. как бы записать NULL на это место.
Алтернативный вариант:
Перезаписать в новый файл все данные кроме последних N байт, а потом новый файл переименовать в прежнее имя.
Но на мой взгляд будет более удобнее просто размер файла уменьшить на эти N байт. Возможно ли это?
Парни, а почему WinAPI разве нельзя обойтись средствами MQL4
Открыть файл с флагом FILE_BIN и сделать с ним всё что нужно. Или речь о других бинарных файлах?
Парни, а почему WinAPI разве нельзя обойтись средствами MQL4
Открыть файл с флагом FILE_BIN и сделать с ним всё что нужно. Или речь о других бинарных файлах?
Конечно можно.
Парни, а почему WinAPI разве нельзя обойтись средствами MQL4
Открыть файл с флагом FILE_BIN и сделать с ним всё что нужно. Или речь о других бинарных файлах?
Среди штатных функций нету функции для изменения размера файла.
Можно только костылями. Типа перезаписи нового файла без нужных записей и удаления\переименования файла.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет.
Вообщем такой вопрос:
Например, есть файл из N записей (у меня структуры), я хочу удалить последнюю запись.
Вопрос в том, что нужно "затереть" последнюю запись (какое-то кол-во байт)... т.е. как бы записать NULL на это место.
Алтернативный вариант:
Перезаписать в новый файл все данные кроме последних N байт, а потом новый файл переименовать в прежнее имя.
Но на мой взгляд будет более удобнее просто размер файла уменьшить на эти N байт. Возможно ли это?