|
18 / 13 / 5
Регистрация: 08.01.2016
Сообщений: 315
|
||||||
Найдите ошибки10.01.2016, 17:13. Показов 2483. Ответов 33
Метки нет (Все метки)
Народ, я для собственного саморазвития начал изучать VB (сказали самый легкий язык)... А вообще я юрист))) Изучаю недавно.
Дошел до изучения массивов и манипуляций с файлами. Написал код, который делит файл на три части, а потом собирает его обратно. Код, вроде бы рабочий. Проверял на файлах различных расширений. НО! Я хочу научиться программировать, хотя бы на средняковом уровне, учитывая, что я учусь сам, поэтому прошу Вас помочь мне найти ошибки в коде, подсказать как его писать правильнее, или указать на то, что в коде лишнее и ни в коем случае так делать нельзя и желательно объяснить почему. Спасибо больше заранее, парни.
0
|
||||||
| 10.01.2016, 17:13 | |
|
Ответы с готовыми решениями:
33
Программа шашки. Реализация ходов. Оцените программу, найдите ошибки Найдите ошибки Найдите ошибки |
|
18 / 13 / 5
Регистрация: 08.01.2016
Сообщений: 315
|
|
| 12.01.2016, 17:51 [ТС] | |
|
0
|
|
|
oh my god
|
|
| 12.01.2016, 18:06 | |
|
Между прочем польза от моей проги очень огромная, это я могу теперь не переживать об ограничениях, даже на здешнем форуме есть ограничения по размеру 10 мб для архивов
и по одному мб для прочего, я могу разбить 400 мб архив на 40 частей, и залить на какойнибудь форум, про киберфорум промолчу
0
|
|
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
| 12.01.2016, 20:50 | |
|
Первая программа для резки файлов на части, которую я видел, была программа LONG для DOS
![]() Вот нашел - 36 кб ![]() http://old-dos.ru/index.php?pa... how&id=495 Добавлено через 3 минуты Хотя вот есть FileSplitter для Win - 21 кб http://www.softportal.com/soft... itter.html
2
|
|
|
|
|||
| 12.01.2016, 22:04 | |||
|
Чем меряемся? Мной написанный Сплиттер "весит" 10 Кб и поддерживает "Drag-And-Drop". И что самое важное, разделяет на части с заданным размером. Согласитесь неудобно разбивать на Х частей, если файл большой, то надо считать, сколько будет "весить" каждая часть.
1
|
|||
|
oh my god
|
|
| 13.01.2016, 05:53 | |
|
Сделал пару исправлений
1. это некорректное условие удаления файлов было If ch1.Value > 0 And ch1.Enabled = 1 Then стало If ch1.Value > 0 And ch1.Enabled = True Then Раньше я думал что выражения ch1.Enabled = 1 и ch1.Enabled = True одинаковые оказываеться нет )) 2. Исправил отображение пустой папки (на картинке исправленное отображение)
0
|
|
|
oh my god
|
||
| 13.01.2016, 07:19 | ||
|
а вот чтоб интерфейс не вис, придёться тогда разделить программу на 2 приложения, первое будет управлять вторым в котором будет чтение-запись, но я не претендую на милионное тиражирование, поэтому не буду ничего менять, в качестве учебного пособия вполне сойдёт
0
|
||
|
|
||
| 13.01.2016, 13:10 | ||
|
И Win API наше всё, работает с некоторыми неудобствами ( отладка в IDE не работает), посмотри работы у The trick, очень хорошо написано.
1
|
||
|
oh my god
|
|
| 13.01.2016, 15:57 | |
|
Ну хорошо, буду знать, воспользуюсь когда буду делать чтото грандиозное
и где потребуется ворочать большие объёмы данных
0
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 13.01.2016, 21:49 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Строки 1-7. Переменные объявлены вне модуля. Значит они будут глобальными в пределах всего модуля. Кликните здесь для просмотра всего текста
Аргументы против: 1. Общая область видимости между Вашими 2 модулями здесь не нужна. 2. Это плохая практика в принципе. 3. Не будет высвобождаться память после заполнения массивов. Решение: Объявить нужные переменные внутри каждой подпрограммы. Отступы правильнее так (на примере Вашего кода: Кликните здесь для просмотра всего текста
Названия переменных можно было и более информативней сделать (прим. moiMASSIV - о назначении массива ничего не говорит.). Сугубо личное мнение. Сам грешу.
Оправдано только для маленькой программы. В более крупной можете сами себя запутать дважды открыв файл, используя тот же ID (или ошибочно предполагать, что он уже свободен). См. код Catstail как правильно.
1) Для OS Vista и выше, по умолчанию, права доступа на запись в корень сис. диска заблокированы для пользователей группы "Администратор" и ниже, если не запускать программы "С повышенными привилегиями". Т.к. в коде у Вас не используется обработчик ошибок, программа закроется с не очень информативным сообщением об ошибке. 2) Не указан модификатор доступа (уже говорили). Добавлю, что если возникнет ситуация, когда другая программа откроет читаемый Вами файл в режиме блокировки на запись, то функция чтения с явным указанием режима доступа увеличит шансы на успешное чтение. Кроме того, это хороший тон указывать явные минимально требуемые права, и к тому же позволит сразу оценить назначение функции для человека, кто читает Ваш исходный код.
1) Неявное использование начального значения: Если по какой-то причине предыдущее значение q будет установлено неверно, получим нарушение логики. 2) Нельзя сразу оценить каким будет начальное значение до тех пор, пока (в Вашем случае) не завершиться предыдущий цикл. Интервалы байтов для разделения файлов лучше рассчитать заранее. 3) Плохой тон использование для инициализации цикла той же переменной, что управляется циклом. К слову, как и изменение вручную этой переменной внутри цикла (просто пример).
в этой точке кода получите ошибку. В идеале конечно проверять размер файла.
И дальше по коду побайтовое чтение через цикл. Как Вы уже (наверное) поняли по выложенным примерам, нет смысла, т.к. можно считать целиком в массив нужное кол-во байт.
Не вижу объявления переменной i в коде. По всей видимости - забыта. Чтобы этого избежать, всегда пишите (особенно для новичков) первой строкой кода директиву:
С обработчиком будет примерно так:
Может привести к неконтролируемым / неявным ошибкам, зацикливаниям, вылету программы. Как правильно, написал выше. Опять же, пример так себе. Нет проверок на размер файла, нет модификатора доступа. В коде для записи из поста № 2 кроме того, основной функционал игнорирует аргумент "Start".
2
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
oh my god
|
||||||
| 15.01.2016, 09:39 | ||||||
|
Одно дело разговоры разговаривать, и совсем другое написать реальную программу
чтобы работала так, как хочет Pro_grammer Теперь программа отображает прогрес-бар в ходе работы, и есть эта пресловутая кнопка отмены более того, когда её жмёшь, отменяются все изменения которые уже были сделанны в папке Теперь уже файл не частями делиться, а килобайтами. тоесть 1 килобайт это 1024 байт если кому интересно. естественно если файл меньше, то кнопка *разделить* будет неактивной также, если предположительное количество частей больше 50, то включится окно с предупреждением, а надо ли вам это ? ... Сначала я хотел сделать с помощью API, но позже когда уже запутался в коде и в конец измотал себя переделками, решил сделать двумя приложениями Вот только форма: Кликните здесь для просмотра всего текста
как я и говорил, в одной программе интерфейс, а в другой чтение-запись работает всё корректно, проверил наверное 100 раз. обмен между приложениями идёт через файлик с одной строчкой общаются примерно так .. -Ready -Ok -Part 1 of 1049 -Part 2 of 1049 ' ' ' -End при считывании можно подсмотреть в дебагере, но у меня собственноручно динамически-создаваемый прогрэс-бар Теперь для работы с большими файлами необязательно морочить себе голову WinApi можно предворительно разделять на читабельные части, и делать что хош
2
|
||||||
|
oh my god
|
|
| 17.01.2016, 11:31 | |
|
Некоторые может подумают а нафига этому человеку это нужно ..
-Ну тоже, какбы не хочется отставать от постоянных жителей форума к томуже, сейчас я особенно ничем не заморочен и честно признаюсь, скучаю по программированию когда долго этим не занимаюсь, всегда узнаю чтото новое именно в процессе творчества, казалось бы что тут особенного но встречаются вещи которые либо совсем не решаемые, либо их решает какойнибудь корпоративный монстр наподобии майкрософта. И темболее интересно попытаться решить очевидную загадку, а всяких загадок в программировании много, попадаются и такие, которые наверное можно решить только через сто лет
0
|
|
| 17.01.2016, 11:31 | |
|
Найдите ошибки найдите ошибки Найдите ошибки Найдите ошибки!
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|