|
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
|
|||||||||||
Как при достижении определенного размера файла закрыть его14.10.2015, 00:19. Показов 1811. Ответов 12
Метки нет (Все метки)
Доброй ночи!
Сново я со своими вопросами.... Есть вечный цикл. Он себе работает и заполняет файлик букафками "а". Хочу при достижении определенного размера закрыть его. Немного погуглил и узнал, как узнать размер файла. Вот кодесс.
Потом я начал из него делать порнографию и приручивать в цикл.... Совал его туда сюда... Ну и ничего не вышло((( Вот мои извращения
0
|
|||||||||||
| 14.10.2015, 00:19 | |
|
Ответы с готовыми решениями:
12
Как при достижении определенного размера файла закрыть его Ошибка при достижении размера файла 2 Г Сигнал при достижении определенного времени |
|
Модератор
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
|
||||||
| 14.10.2015, 07:48 | ||||||
|
Что-то Вы на пустом месте проблему создали
1
|
||||||
|
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
|
|
| 14.10.2015, 09:18 [ТС] | |
|
Да спасибо!
Хотелось бы узнать почему размер файла точно не равен 1КБ? На выходе выхоит 1,50 КБ (1536 байт), почему не 1024 байта?
0
|
|
|
|
||
| 14.10.2015, 09:24 | ||
|
strlen считает, что символов два, он не знает, что реально в файл их попадёт три
0
|
||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,870
|
|||
| 14.10.2015, 09:32 | |||
|
0
|
|||
|
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
|
||||||
| 14.10.2015, 09:44 [ТС] | ||||||
|
Да, если открыть в бинарном жежиме, то будеет ровно 1024.
Мб просто к strlen добавлять единицу(size += strlen("a\n")+1;)? Только эта конструкция провоцирует вечный цикл, ибо при делении на 3 выходит не целое число, а на два выходит ровно 512 итераций. Как подправить эту шляпу? Добавлено через 1 минуту А, блин..туплю..больше или равенствует надо добавить Добавлено через 2 минуты Все пашет
0
|
||||||
|
|
||
| 14.10.2015, 15:04 | ||
|
0
|
||
|
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
|
|
| 14.10.2015, 16:29 [ТС] | |
|
Ок, тогда такое юзать не буду.
0
|
|
|
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
|
|
| 14.10.2015, 18:18 [ТС] | |
|
Применил ваше решение, работает.
Только почему блокнот показывает символы в одну строкуи для того чтобы перейти на символ дальше нужно нажать стрелку вправо не 1 раз, а 2? Не по теме: Извиняюсь за глупые вопросы
0
|
|
|
|
||
| 14.10.2015, 18:33 | ||
Сообщение было отмечено cpp_job как решение
РешениеПросто есть фундаментальное различие между энтерами в разных системах и с этим приходится считаться. Если уж сделать совсем красивый вариант, то можно работать так. Открываем промежуточный файл в текстовом режиме и записываем туда единственный символ "\n". После чего файл закрываем, открываем в бинарном режиме, и считываем оттуда данные в буффер. Таким образом, мы "на ходу" определили, каким образом работает перенос строки на данной системе. Далее файл с результатом открываем в бинарном режиме и в тех местах, где нужно воткнуть перенос строки, втыкаем данные из буффера. Либо просто на основании содержимого буфера понимаем, как нужно правильно считать символы \n при подсчёте количества символов в строке. Но нужно ли тебе так заморачиваться - вопрос. Мне кажется, что варианта из предыдущего абзаца вполне достаточно
0
|
||
|
4 / 4 / 1
Регистрация: 25.11.2013
Сообщений: 108
|
|
| 14.10.2015, 19:01 [ТС] | |
|
Не по теме: Низкий вам поклон! Спасибо, что хватило нервов все мне растолковать! Добавлено через 27 минут Думаю да, вы правы на счет заморочек. И правда зачем? Сейчас у нас жесткие диски не на 40МБ же. Но меня немного смущяет, что файл, который должен выходить 1Гб весит 1,5Гб. Все таки заююзаю ваш способ, хочется узнать что выйдет. Не по теме: Вопрос новичка.
0
|
|
|
|
||
| 14.10.2015, 20:11 | ||
|
Добавлено через 5 минут
1
|
||
| 14.10.2015, 20:11 | |
|
Помогаю со студенческими работами здесь
13
Как закрыть свою программу при запуске определенного процесса? Авто перенос курсора в Richedit при достижении длины строки определенного числа символов. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|