![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 19.11.2016
Сообщений: 24
|
![]()
Здравствуйте !. Сыну, (занимается в кружке программирования при школе) Дали на выходные задание. Написать программу, для работы с типизированным файлом (файл в формате bin) .Суть программы : загрузить файл, считать данные и вывести данные в программу. Далее, по конкретному адресу в файле, изменить байт (записать из программы в файл). С первой задачей справились успешно, файл загружается, данные считываются и выводятся в программу. А вот с последней задачей, справится не удаётся, а именно : в поле Edit1 вводится значение (в шестнадцатиричном значении : 3E,62, AA ...) которое надо записать в файл, далее при нажатии на кнопку button, значение записывается в файл по конкретному адресу и файл сохраняется.
Но при просмотре в Hex редакторе, это совсем не тот байт , записывается в файл, который вводили в поле Edit. Понимаю что eddit это для работы со строковыми данными, но задание дали именно с этим компонентом. Просидели вчера весь вечер и сегодня день, что нашли в интернете, не совсем подходит. Где то неправильное преобразование строки в hex и обратно. Я после института по забыл Паскаль основательно, сын только учится. Просьба сильно не пинать. Среда Дельфи7. Код : Код:
Последний раз редактировалось nikitin.leha-201; 20.11.2016 в 13:55. Причина: правка заголовка |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]()
справочник Основы Delphi (ссылка наверху старницы)
http://www.delphibasics.ru/Read.php второй пример чтение из типизированного (двоичного) файла.
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 19.11.2016
Сообщений: 24
|
![]() Цитата:
Справочник это конечно хорошо, обязательно как будет побольше времени почитаю. Но как справочник, на который Вы мне дали ссылку, может помочь в данной теме? В моей теме, по моему написано: как записать(введённые) данные из eddit1 в файл. Как считать данные из типизированного (bin) файла, вопрос не стоит, данные из файла считываются и выводятся в программу. 2) процедуру ,которая описывается в справочники, а именно :AssignFile сколько слышал от программистов, вообще не рекомендуют использовать.... 3) Прочитал справочник, на который Вы, дали ссылку, так и не понял как увязать процедуру AssignFile и eddit1? Файловая переменная :myFile ну, ни как не связывается с Edit1... p.s Иногда, чтоб сказать девушке Испанке, на её родном языке , какая она красивая, не обязательно полностью изучать Испанский язык, вполне хватит спросить, всего одну фразу, у профи, только у настоящего профи... Последний раз редактировалось nikitin.leha-201; 20.11.2016 в 00:03. |
|
![]() |
![]() |
![]() |
#4 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Код:
Код:
Код:
Цитата:
Цитата:
а у профи уточнить как их лучше применить (или какие из найденных слов выбрать).
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 20.11.2016 в 22:04. |
|||
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 19.11.2016
Сообщений: 24
|
![]() Цитата:
от ребят не использовать AssignFile... Говорит, что учится сразу надо правильно... Эта не первая программа у сына уже, да и у ребят тоже в программах нет AssignFile... Четыре месяца учатся и не разу AssignFile, не применяли. Эта не моя прихоть, а требование преподавателя. Они конечно может не профессиональные, но работают как надо. Сейчас я попробовал код : Код:
Пробовал и так и так, данные в файл не записываются по конкретному адресу. При попытки в edit ввести шестнадцатеричное значение а потом записать и сохранить , скажем АА, ошибка выскакивает, только 62,46 но и они не записываются в файл.... AA is not a valid integer value... |
|
![]() |
![]() |
![]() |
#6 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
Цитата:
Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 21.11.2016 в 09:17. |
||
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Там же байт записать, c ним и работать
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 19.11.2016
Сообщений: 24
|
![]() Цитата:
Аватар где же вы были вчера ? Докладываю, с заданием к сожалению за выходные справится не удалось, сегодня пошёл с сыном на занятие, честно сказал преподавателю ,что не удалось за выходные решить задание и тему создал на форуме, но не получилось... Утешением служило то, что мы не одни такие оказались, из группы справились с заданием только 6 человек, троих забраковал преподаватель ,за применение в коде :AssignFile... Трое справились на отлично, но у одного из родителей сосед , кодер профи, так что его не в счёт. Двое сами решили с помощью какого то форума. В общем, преподаватель на доске подробно показал всё и объяснил, далее опробовали код, всё работает отлично. Всё оказалось просто : Аватар прав, надо было работать как с байтом, а дальше всё решилось в три строки. Один, в один как у Аватара. Код:
В результате ,сыну не за чёт за задание, мне нагоняй от жены и дали новое задание, за невыполнение первого. Теперь надо записать байт, в разные по размерам файлы и на разных адресах, адреса надо, чтоб программа определила по данным из файла... думаю что с помощью case, либо if else.... Думаю что второе, станет хуже первого... Не знаю закрывать тему, или если понадобится помощь, продолжить в этой теме, чтоб не создавать новую? что скажет администрация? Аватар, Вы точно чувствуется профи с большой буквы ! Где же Вы были в субботу и вчера ? Огромное Вам спасибо ! Евгений и Вам спасибо за помощь ! Последний раз редактировалось nikitin.leha-201; 21.11.2016 в 18:59. |
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Ну, во-первых, видел вчера, просто был в недоумении, что и в кружках за детей родители работают. Во-вторых ни кто таким хакерским способом не модифицирует типизированный файл, разве что для взлома, на то он и типизированный, преподу двойка. В-третьих при чем здесь профи? И начинающий должен знать, обязан вернее, как заменить в файле двоичный байт
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#10 | |
Пользователь
Регистрация: 19.11.2016
Сообщений: 24
|
![]() Цитата:
Я пол дня вспоминал как написать Helloo Word, а он мне : что первую программу так начинают только лузеры.... Просто ещё ему 13 лет и он стесняется на взрослых форумах регистрироваться и темы создавать. Вот и папы, с мамами сгодятся... Аватар , а что значит :Во-вторых ни кто таким хакерским способом не модифицирует типизированный файл, разве что для взлома, на то он и типизированный, преподу двойка?. Не понял честно говоря. Просто задача стояла без AssignFile - без этой процедуры. А далее всё проще, Тут в инете нашли строчку, там вычитали, вот и слепили.... Препод здесь не причём, у него всё красиво и правильно, я просто кодер просто ни какой, даже со словарём... Вот если вижу готовое с пояснениями, то понимаю хоть что то. Сын ещё учится. А байт почему надо менять, тут всё просто: кружок по профилю радиолюбительский, ребята модели радио управляемые собирают, самолётики, машинки кораблики и прочее.Сын любит паять, собирать, конструировать.... А программирование идёт как смежная наука, они микроконтроллеры для своих моделей программируют (ну старшие ребята), а соответственно нужны программы по отладке, обработки файлов, естественно типизированных, в основном bin, Hex. Программку которую писали, делает простую функцию, она записывает калибровочный байт, чтоб моделька за работала. Меняешь байт калибровки и машинка не едет, далее записываешь нужный и машинка поехала. Байт высчитывается согласно даташиту на микроконтроллер питание и прочие характеристики, если байт будет не соответствовать, то модель не запустится. Вот эта программка, позволяет без Hex редактора, быстро записать в файл нужный байт. Так что к хакерству это отнести ну ни как, нельзя. С паяльником и радиоэлементами ,я сыну во всём помогу, эта тема мне знакома. А вот в программировании, тут из меня помощник ни какой... Я вот читаю по Дельфи материалы, но написаны они на таком языке, что наверное для Академиков, а не для начинающих + совсем нет нужных примеров с пояснениями, а для меня лично это важней, Я так быстрей усваиваю, да и сын тоже. Ещё только 4 месяца учится кодить, думаю что на учится.Это для меня не достижимо и трудно уже, а он схватывает на ура и многое мне разъясняет. Не, препод дядька хороший, ребята его обожают, ему двойку не надо ! он просто глаза закрывает на наши не всегда удачные коды... А идея с кодом была моя, я в инете материал нашёл и по нему делали.... Ну главное вышло, да и как ещё. Вчера удалось выполнить задание, поставить условия обработки файла по размеру и адресам, программа делает всё на отлично, проверил и на хрюше и на 7 и на 10 не докопаешься, работает быстро и корректно. Компилятор ни одного предупреждения и совета даже не дал, всё без сучка и задоринки. Правда код получился, какого то смешанного типа, длинноватый, как сын говорит. Но главное работает и безупречно. В четверг сдавать задание. Осталось таблицу из даташита к программе приделать и всё готово. Сейчас комбо- бокс изучаем. Теперь зато знаем, как заменить двоичный код. Ни сразу Рим строился. А сыну тяжеловато, надо и материал по радиоэлектроники изучать +программирование. Не всегда всё так быстро усваивается, как хотелось бы. Что касается почему Вас профи назвал , так это не лесть. Просто препод учит ребят, что кодера профи отличает, короткий код - короткий путь к успеху, где это возможно, без длинных функций и доп. обработок. Краткость, как говорится ,сестра таланта ! А у Вас в три строчки получилось, как у препода, а он большой профи, так его ребята называют. Я вод код обработки условия хотел выложить на проверку, но чего то Вы, меня за смущали, хакером назвали, теперь стесняюсь, а то и сын лузером называет и Вы засмеёте наверное. Хотя мне кажется что код условие который получился, может быть по меньше. Работать, то работает и отлично, но мне кажется что то длинноват код. А сын, старается как может . Пусть лучше старается изучать, чем по подвалам лазить..... Последний раз редактировалось nikitin.leha-201; 22.11.2016 в 13:38. |
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите найти ошибку "Работа с файлами (Pascal)" | Pro_overrseer | Помощь студентам | 3 | 07.11.2013 23:26 |
Turbo Pascal Создание и работа с типизированными файлами(тип запись) | Dina 85 | Помощь студентам | 19 | 19.03.2013 22:35 |
Работа с типизированными файлами ( Pascal / Delphi ) | *Катюшка* | Помощь студентам | 8 | 16.12.2011 19:39 |
Необходимо доработать программу "Паскаль" с типизированными файлами, чтобы результат выводило в текстовый документ а не на экран. | Женька Good | Помощь студентам | 0 | 09.12.2011 21:20 |