|
0 / 1 / 0
Регистрация: 10.02.2019
Сообщений: 88
|
||||||
Delphi 6-7 Записать данные из буфера в типизированный файл , переведённые из string в Hex формат27.02.2020, 23:40. Показов 5753. Ответов 53
Метки нет (Все метки)
Здравствуйте уважаемые форумчане !
Возникла необходимость , при написании программы которая, переводит данные из string в hex и записывает данные, в типизированный (бинарный файл). Как переводить данные нашёл, проблема заключается в том, как записать переведённые в hex данные в бинарный файл и сохранить файл с записанными данными. Запись одного байта получается, а чтоб полностью не выходит. Прошу помощи.
0
|
||||||
| 27.02.2020, 23:40 | |
|
Ответы с готовыми решениями:
53
Записать данные в типизированный файл Записать данные в типизированный файл Как записать данные в типизированный файл |
|
0 / 1 / 0
Регистрация: 10.02.2019
Сообщений: 88
|
||||
| 01.03.2020, 05:22 [ТС] | ||||
|
Добавлено через 10 минут Можно с этого момента по подробней? Кто брал и как перекручивал? Я ваш код скопировал всё до единой строчки, чтоб опробовать. Вы видели что ваш код, записывает в файл? Вы виделе на фото моём, что требуется и что должно записываться в файл и как. А теперь попробуйте вашем кодом выполнить данную задачу! Код не выполняет поставленной задачи и реализации её. И обижаться не стоит , если на такой задачи по два дня решать, то не знаю, что это за профи. Честное слово , не обижайтесь. Или кто ни будь из профи, пусть возьмёт ваш код и попробует, выполнить задачу. А потом посмотрим как он перекручивает и как перестанет работать, то, что не работает. Добавлено через 10 минут Задача решилась, помогли добрые люди на другом ресурсе. Как я и предполагал, задача решалась двумя строками к моему коду. Я немножко не так, сделал, давно этим не занимался. Вот теперь программа выполняет всё, как должно быть. Прошу закрыть тему , больше объяснять и ждать пришлось, к сожалению.
0
|
||||
|
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,142
|
||
| 01.03.2020, 05:57 | ||
|
Ну и еще сейчас выходные - возможно никто не заходит сюда Мне, например, так и непонятно. с какого по какой байт можно использовать в прошивке? нужно заменять существующие байты? или вставить перед ними?
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
||||
| 01.03.2020, 10:19 | ||||
|
0
|
||||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
|
| 01.03.2020, 10:20 | |
|
Да уж, зря я сюда влез. Ещё в 4 посте было понятно, что ТС не пробиваем.
0
|
|
|
0 / 1 / 0
Регистрация: 10.02.2019
Сообщений: 88
|
||
| 01.03.2020, 23:31 [ТС] | ||
|
В том то и дело, что обычно в выходные больше возможности и времени. Задача простая, как пишем Петров по русски, так ведь?, если перевести и StrToHex то получится : CF E5 F2 F0 EE E2 правильно? далее какие значения стоят в свободной зоне прошивы бинарного файла? только два варианта либо : FF, либо 00 ? так вот за место FF, или 00 записываются данные CF E5 F2 F0 EE E2 . " Мне, например, так и непонятно. с какого по какой байт можно использовать в прошивке? нужно заменять существующие байты? или вставить перед ними?" Количество байт зависит от Фамилий Петров - 6 букв, Бендер-Задунайский 16 букв, соответственно больше и байт будет Как тут можно чётко сказать сколько байт, программа должна обрабатывать любое количество байт и переводить их и записывать в указанную зону. А как можно не заменить байты, чтоб записать на их место данные? Считайте пустую микросхему пзу, какие там данные будут? FFFFFFF, или 00000000, когда записываете данные в пзу что происходит? а происходит то, что FF,или 00 затираются , а на их место записываются байты прошивки. Как можно записать по другому я не пойму? И как можно записать данные перед FF, или 00? есть чёткий объём пзу, 256, 512 и.т.д байт. Соответственно пока микросхема пустая , там либо FF, или 00 (пустота). С адреса 0 по 10000..... Естественно, либо полностью записывается микросхема (что редко) тогда нет свободной зоны и все FF, или 00 затираются. Если не полностью заполнена данными, то есть свободные места, либо в начале прошивы с адреса0, либо в конце с адреса 1000.В свободные места и записываются данные не относящиеся к самой прошивы. Байты зависят от данных, фамилий, имён и.т.д Бывает в 50 байт обходится, а бывает и в 160.... Главное есть свободная зона, там всегда байт 150-200 есть.В эту зону и записываются данные. Адрес не главное, может с 0 по 100, а может с 1000 -11000. Установил в программе адрес с которого начинается запись данных в свободную зону, а дальше зависит от данных их может быть 50 байт, а может и 100. Как букв в фамилии и имени. Кто вам скажет точно сколько букв в фамилии незнакомого человека? Так и тут. Естественно данные не должны выходить за свободное место в прошиве. В одной микросхеме много места, во второй ограничено 50-80 байтами. Всё это естественно учитывается . Главное для программы: перевести с русского на CF E5 F2 F0 EE E2 и переведённые данные записать с указанного адреса, естественно затирая пустые символы FF, или 00. Вроде всё понятно изложил в фото. Как сейчас программа делает, всё как и надо, ввёл данные Петров..... нажал на кнопку, перевёл CF E5 F2 F0 EE E2 , ввёл в edit адрес с которого начинать запись, а дальше , конечный адрес, зависит от количества байт, нажал на кнопку загрузка файла, файл загружается считывает из МЕМО переведённые данные и адрес записи, записывает данные и сохраняет файл. Всё в один клик и в потоке. Всё просто оказалось. Я неправильно с буфером чуток делал. Мой код основной, там две строки исправить и всё, программа рабочая. Проверил сегодня при записи и считывании полёт отличный. На другом форуме кодер с полуслова понял что требуется, сказал что я не первый уже и показал ошибки в моём коде, объяснил. Оказалось я неправильно чуток делал. Времени 10 минут и задача решена. В чём проблема он меня спросил, почему такую ерунду два дня не могли решить, что там за кодеры?..... Странно, задача на 5 минут два дня решится не могла. И код мой не корявый, а на 90 процентов правильный, только 2 строки изменить и всё. А выложенный тут, код и он проверил, не делает этот код того, что должен был делать, это раз, два, зачем считывать данные? зачем две кнопки загрузки файла спросил он? делается в два клика, набрал текст, нажал, перевёл, второй кнопкой загрузка файла, запись и сохранение , с перезаписью файла, всё. Зачем лишние движения и код выложенный не рабочий, для данной задачи, ответ профи!
0
|
||
|
0 / 1 / 0
Регистрация: 10.02.2019
Сообщений: 88
|
||
| 01.03.2020, 23:39 [ТС] | ||
|
Я сам бывший любитель, но если точно, не могу помочь в решении задачи, ничего не советую и не даю не понятных советов. Что знаю, покажу код и объясню что и как делается .
0
|
||
|
0 / 1 / 0
Регистрация: 10.02.2019
Сообщений: 88
|
||
| 02.03.2020, 00:07 [ТС] | ||
|
Чел пробиваем как раз, просто чел не знал что на данном ресурсе, любители и не профи.... Чел потом врубился в это, но понадобилось время. Поэтому мой совет, чтоб люди не ждали неделями помощи. Кому то срочно надо, по зарез, может от этого зависит его будущее (студент например). Просто чтоб не отнимать время у людей, надо на главной странице ресурса, объяснить что профи здесь бывают редко, а остальные любители и начинающие...... И людям понятней и времени с экономить можно. И раз здесь любители и начинающие, то раздел для начинающих, лучше убрать, или сделать основным, так, как все любители. Чтоб не обнадёживать людей, не всегда есть у людей по 2 дня, или неделю ждать. Согласитесь, это не маловажный вопрос. И непробиваемых будет меньше и не допониманий. Я сразу стал понимать, что профи нет, по задоваемым вопросам, это после подробных фото (наглядно). И описания что надо. Я с начало думал что может что не так объясняю, потом врубился что дело имею, с такими же как я. По этому сообразил и на другой ресурс. У другого может не быть времени и не сразу сообразит иногда это очень важно.
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
||
| 02.03.2020, 01:33 | ||
|
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
||||
| 02.03.2020, 01:41 | ||||
![]()
0
|
||||
|
пофигист широкого профиля
4770 / 3207 / 862
Регистрация: 15.07.2013
Сообщений: 18,615
|
|||
| 02.03.2020, 03:43 | |||
Сообщение было отмечено Serg -1980 как решение
Решение
0
|
|||
|
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,142
|
||||||
| 02.03.2020, 07:33 | ||||||
Сообщение было отмечено Serg -1980 как решение
Решение
Serg -1980, ваша задача решается гораздо проще чем кажется. возможно одной кнопкой обойтись даже.. зависит от потребностей.
вот так можно прочитать бинарный файл, записать в него байты и пересохранить
я не просто так спрашивал откуда можно (с какого байта) считывать. я рекомендую резервировать только определенное количество байт в прошивке для этих целей. иначе у вас текст наложится друг на друга. Например первый раз записали текст очень длинный 20 символов. Второй раз - короткий 10 символов. у вас смешается все. первые 10 символов из второго текста и еще +10 символов с первого
1
|
||||||
|
0 / 1 / 0
Регистрация: 10.02.2019
Сообщений: 88
|
||
| 03.03.2020, 17:05 [ТС] | ||
|
Добрый день ! Ребята всё отлично решилось и реализовалось, программа всё делает на отлично. Не поверите , всё делается при помощи : FS: TFileStream; и одной, всего лишь одной переменной. Адрес для записи в прошиву можно сделать автоматически в программе, что не очень удобно. Я реализовал ввод адреса в ручном режиме, адрес вводится в программе ,его можно менять от 0 до 005СВЕ3 и больше короче , какой ввели в программе, на тот и запишется. Ввёл процедуру проверки, если адрес не ввёдён, то программа оповестит и предложит ввести адрес. Естественно адрес вводится через Edit, в который можно вводить только цифры и латиницы, но это мелочи. После набора текста и нажав на кнопку перевести в Hex , появляются данные сколько слов - байт в данном тексте. Что помогает с оринтироватся сколько строк необходимо для размещения текста, от этого можно добавлять, или убавлять данные текста. Так что проблем нет. В процессе работы выяснился один пикантный момент при работе с компонентом Мемо, нашлось простое и эффективное решение, без лишних функций и телодвижений. Но главное : FS: TFileStream; и одной, всего лишь одной переменной. Без всяких наворотов, всё делается в потоке , набрал текст , нажал на кнопку перевода, тут и информация о количестве байт(слов) в тексте, далее вводим адрес на который записывать будем, далее кнопка загрузки файла. Файл загружается, туда записываются данные на определённый адрес и файл сохраняется, оповещение : данные записаны, файл сохранён. Всё. Удобно, быстро, информативно. Вчера кодеру профи отправил свой код и прогу, сегодня он отписался : прогнал прогу, всё отлично, но главное, что настолько оригинальное решение, что не требуется дополнительных переменных, переводов , циклов и прочего. Он в шоке от оригинального решения, + с мемо разрешилась трабла, которая многим мозг парила. В общем смотрите прошивы во вложении. В программе всё учтено. Мозги иногда даже профи заменяют. Это я просто давно не занимался, забросил всё.
0
|
||
|
0 / 1 / 0
Регистрация: 10.02.2019
Сообщений: 88
|
|||||||
| 03.03.2020, 17:28 [ТС] | |||||||
|
Сегодня в основную программу добавлю процедуру, затирания лишних данных, FF,00. Принцип работы такой : набирается текст, переводится, далее загружаем файл, туда записывается новая информация, скажем в 80 байт, а старая информация была 160 байт. Программа перезапишет первые 80 байт старой информации, на 80 байт новой. (Старые данные затираются, а на их место новые данные). Далее старые 80 байт старой и уже не нужной информации , заполняются FF, или 00 всё. И так каждый разбудет автоматически, новые данные, поверх старых (за место старых), остольное запоняется FF, или 00. Это совсем не проблема как раз. Сейчас доделываю и буду тестить. Как пример для затирания старых данных в файле :
p.s Не вижу где опция закрыть тему? как открыть понятно, а как закрыть тему?
0
|
|||||||
|
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,142
|
||
| 03.03.2020, 18:24 | ||
|
0
|
||
|
0 / 1 / 0
Регистрация: 10.02.2019
Сообщений: 88
|
||
| 03.03.2020, 21:52 [ТС] | ||
|
AHBAR понял, спасибо ! но вы правы , может кто захочет продолжить, может кому пригодится . Пока не буду закрывать тему с вашего разрешения. В общем закончил полностью программу, сделал в программе так : загружается файл со старыми данными, перво- на перво, очищается зона старых данных FF, далее идёт запись новых данных, по этому не надо уже заботится что будет смещение, или останутся старые данные. Очищается полностью зона со старыми данными и сразу же производится запись новых данных, всё в потоке, в один клик кнопки. Получилось, даже лучше чем хотел изначально. AHBAR Вам спасибо за помощь, Вы самый адекватный участник и у Вас самые правильные вопросы, которые навели на то, чтоб улучшить программу. Ребятам которые писали вот это : Брать рабочий код, перекручивать его так, что он перестаёт работать и потом обвинять всех вокруг - действительно, "Слов нет, занавес .....". и вот это .... buf1:array[0...333] of byte; r:TSomeMyRecord; s:string; f:=TFileStream.Create(filename, ....); f.write(buf[0], xxx); f.write(buf1[0], yyy); f.write(r, zzz); f.write(s[1], ttt); Совет ! лучше не участвовать в темах, чем лишь бы что и как ответить , да потом ещё и обвинять. Всё проще делается и эффективно. Вот выкладываю свою черновую (на ней отрабатывал процедуру очистки), прога полностью функциональна, очищает файл прошивы полностью, или конкретную зону, хоть 10 байт. Может кому пригодится . Это мой ответ AHBAR, он интересовался как можно очистить, вот пример. В проге всё на автомате, в один клик, очистка, потом запись. А это черновик, кому интересно пробуйте, пишите что не так . Так сказать моя отработка за попытку помочь, чтоб не говорили некоторые, что на халяву, конфетку хочу.....
0
|
||
|
0 / 1 / 0
Регистрация: 10.02.2019
Сообщений: 88
|
||
| 03.03.2020, 21:56 [ТС] | ||
|
но чуток по другому, а так да, можно как и у Вас, но у меня по проще, по своему.
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
||
| 03.03.2020, 22:05 | ||
|
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
|
| 03.03.2020, 22:07 | |
|
И ещё нет того чудесного кода, который делает именно то, что тебе было нужно.
0
|
|
|
0 / 1 / 0
Регистрация: 10.02.2019
Сообщений: 88
|
||
| 03.03.2020, 22:23 [ТС] | ||
|
AzAtom гражданин вы хороший, я не знаю каким Вы редактором пользуетесь, честное слово, плохо видно по вашему фото, сейчас бесплатных редакторов куча. За таким фигом что стояла такая задача и она выполнена , не благодаря Вам и вашему коду от слова совсем ни строчки от вашего кода. Зачем вам название чудесного форума, но если так интересно наберите в поисковике и он на первых строчках идёт.Форум популярный, профи там полно, помощь быстрая и конкретная, да и понимают с пол слова. Что есть, то есть. Успокаиватся мне не надо, я свою задачу выполнил, даже лучше, чем хотелось. Грязью , я ни кого не поливал, я просто высказал своё мнение. Что 1) долго два дня помощи ждать, это перебор, 2) коды с кучей переменных и прочих функций, это не тот путь для конкретной задачи. Всё решается проще посмотрите у AHBAR, почти как у меня, всё просто и понятно и всё в один клик. С задачей я справился сам, + помог человек на другом форуме, показал где ошибался. Сейчас многое вспоминаю сам. Всё же программирование требует постоянной практики, а я целый год этим не занимался. Так что не преувеличевайте помощи на данном форуме. Я сказал правду, Вам это не понравилось, понять могу, но обвинять меня , что я грязью поливаю кого то , это не правда. С уважением Serg - 1980.
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
|||||
| 03.03.2020, 22:42 | |||||
![]() Добавлено через 10 минут
0
|
|||||
| 03.03.2020, 22:42 | |
|
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|