Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2021, 20:16   #151
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 114
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
В статье про SREC есть ссылка на программу SRecord, которая сама исправляет контрольные суммы (с установленным флагом ignore-checksums) - http://srecord.sourceforge.net/man/m..._examples.html.
Вот оказывается уже есть программа.
sergey.serg-72 вне форума Ответить с цитированием
Старый 04.04.2021, 20:29   #152
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 114
По умолчанию

sergey.serg-72,

BDA, мне тут ребята подкинули актуальный вопрос : Есть много софтов, много программаторов и каждый работает только с определённым расширением. Пример : Тритон все свои файлы подписывает на выходе как MOT, другой программатор как S19, третий как SREС....
В описании к SREC идут расширения : .s19, .s28, .s37, .s,.s1, .s2, .s3, .sx,.srec или .mot

Понятно что всё едино и всё по одному алгоритму, просто подписывает каждый производитель под себя. И если один софт будет брать S19,S28,S37 и только, то второй только Mot.
Хотя файл на выходе один и тот же.

Решается этот момент просто: после сохранения переименовывают файл и всё.
Но это не совсем думаю правильно.
А вот редактор при сохранении окно появляется сохранить как, и в один клик на вёл на формат и в таком (каком указал) и сохраняется, что очень удобно.

Отсюда вопрос а как можно сделать в нашей программе чтоб когда появилось окно сохранения, можно было выбрать из фильтра и какой выбрал, в таком расширении и сохранилось, так можно сделать?
С фильтром и окном открытия понятно, но вот наводишь на выбранный и всё ровно не сохраняет, либо в ручную вводить, либо переименовывать. А вот как сделать чтоб был выбор при сохранении ?
Код:
dlgsave1.Filter := 'S19 (*.s19)|*.S19;*.s19|,MoT (*.Mot)|*.Mot;*.Mot|,S28(*.S28)|*.S28;*.S28|,SX (*.SX)|*.SX;*.SX|';

if not dlgSave1.Execute then
exit;
Изображения
Тип файла: jpg Сохранить как.JPG (76.2 Кб, 1 просмотров)
sergey.serg-72 вне форума Ответить с цитированием
Старый 05.04.2021, 01:23   #153
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 6,019
По умолчанию

Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
какой выбрал, в таком расширении и сохранилось, так можно сделать?
Можно. file_format сейчас без точки (например, "s19"), тогда:
Код:
dlgSave1.Filter := Format('Motorola %s (*.%s)|*.%s|Motorola (*.srec, *.s)|*.srec; *.s', [UpperCase(file_format), file_format, file_format]);
dlgSave1.FileName := ChangeFileExt(dlgOpen1.FileName, '.' + file_format);
dlgSave1.DefaultExt := file_format + '|srec';
Будет выбор между s19 и srec.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 06.04.2021, 00:58   #154
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 114
По умолчанию

BDA,

BDA, просили Вас ещё поблагодарить за помощь от всей группы , все сдали Джонс в Шоке !!! он не ожидал от слова совсем, Ваш код произвёл фурор, всё понятно, просто и без лишних буферов и прочего. У нас один чел, принёс свой вариант , у него какой-то родственник кодер на С+, Там код на 3 страницах, куча процедур функций, буфер , Джонс орал на него как бешаный, там Джонс с трудом разобрался, там на пол года изучения...... Джонс думал что у всех так будет.
А получилось как раз на оборот, что по hex, что по srec . Джонс довольный сразу стал умягчился и даже анекдот рассказал. В общем просто в восторге остался. Все сдали . Девчонки особенно счастливы очень были, оказывается так мало , для счастья людям надо, не думал даже....
У меня правда ЧП, вчера зуб разболелся ночью , еле до утра протерпел, с утра к зубному, зуб к удалению, да ещё передний... Короче на зачёт пришёл с развороченной челюстью и кровища шла... Еле до сидел пары , но всё сдал, Спасибо Вам огромное!!!

Единственный момент был по hex, так как hex без смещения был, мы его отработали на 8 странице. Всё отлично, но шапка 02000004%.4x%.2x%s' не выводилась, Джонс сказал надо сделать... ребята растерялись, а я в больничке был, ботан растерялся.... Я во время пришёл, причину нашёл, почему не выводилась.

Код:
 const
BYTES_IN_LINE = 16;
var
fbin: TMemoryStream;
ftxt: TMemoryStream;
s, data_s: string;
b: TBytes;
i, count,  high_addr, cur_high_addr: integer;
sum: byte;
low_addr: word;
begin
with dlgOpen1 do
begin
Filter := 'Binary file (*.bin)|*.bin';
if Execute then
begin
fbin := TMemoryStream.Create;
ftxt := TMemoryStream.Create;
fbin.LoadFromFile(FileName);
SetLength(b, BYTES_IN_LINE);
high_addr :=0;
while fbin.Position < fbin.Size do
begin
low_addr := fbin.Position ;
cur_high_addr := (fbin.Position ) div $10000;
if cur_high_addr <> high_addr then
begin
high_addr := cur_high_addr;
sum := 6 + high_addr mod $100 + high_addr div $100;
sum := -sum;
s := Format(':02000004%.4x%.2x%s', [high_addr, sum, sLineBreak]);
ftxt.Write(s[1], Length(s));
end;
count := fbin.Read(b[0], BYTES_IN_LINE);
sum := count + low_addr mod $100 + low_addr div $100;
data_s := '';
for i := 0 to count - 1 do
begin
data_s := data_s + IntToHex(b[i], 2);
Inc(sum, b[i]);
end;
sum := -sum;
s := Format(':%.2x%.4x00%s%.2x%s', [count, low_addr, data_s, sum, sLineBreak]);
ftxt.Write(s[1], Length(s));
end;
s := ':00000001FF';
ftxt.Write(s[1], Length(s));
dlgSave1.Filter := 'Intel HEX File (*.hex)|*.hex';
dlgSave1.FileName := ChangeFileExt(FileName, '.hex');
if dlgSave1.Execute() then
begin
ftxt.SaveToFile(dlgSave1.FileName);
Application.MessageBox(' HEX  Файл  успешно  записан.', 'Сообщение', MB_Ok + MB_ICONINFORMATION);
end;
fbin.Free;
ftxt.Free;
end;
end;
end;
Проблема была тут :high_addr :=0; а чтоб шапка была, надо так ::high_addr :=-1;
Так что быстро этот момент исправили, в остальном всё отлично.

Джонс был на радостях и мне из за сочувствия дал свой код , преобразование из srec, в bin.
При чём с учётом смещения. Код простой, как у Вас, а ребятам которые по hex, следующим заданием будет из hex, в бин, с учётом смещения. Я освобождён от этого Джонс дал мне код, я естественно ребятам, которые по srec. Так что всё удачно прошло.
Я добавил в свой конвертер и преобразование из srec в бин. Прога ещё универсальней стала.
Джонс конечно ещё тот злыдень, но коды у него тоже простые и понятные.
Так что по srec, полный комплект теперь.

Последний раз редактировалось sergey.serg-72; 06.04.2021 в 01:02.
sergey.serg-72 вне форума Ответить с цитированием
Старый 06.04.2021, 01:10   #155
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 114
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Будет выбор между s19 и srec.
Что касается этого , то не совсем так, выбирать можно не только s19 и srec
А на выбор, я чуток подправил, выбор даётся шире.
Завтра ещё по гоняю, а то температура что то поднялась, реакция пошла на удаление... Не в форме сегодня

Код:
 dlgSave1.Filter := Format('S19 (*.s19)|*.S19;*.s19|MoT (*.Mot)|*.Mot;*.Mot|S28(*.S28)|*.S28;*.S28|S37 (*.S37)|*.S37;*.S37|Srec (*.Srec)|*.Srec;*.Srec| ', [UpperCase(file_format), file_format, file_format]);
dlgSave1.FileName := ChangeFileExt(dlgOpen1.FileName, '.' + file_format);
dlgSave1.DefaultExt := file_format + '|srec';
sergey.serg-72 вне форума Ответить с цитированием
Старый 07.04.2021, 05:46   #156
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 6,019
По умолчанию

Поздравляю со сдачей. Зубы любят болеть в самый неподходящий момент.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
А на выбор, я чуток подправил, выбор даётся шире.
Действительно. Мне сначала показалось, что в DefaultExt нужно вписать все расширения в соответствии с фильтром. Но даже с одним расширением выбор из расширений фильтра срабатывает.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 07.04.2021, 21:18   #157
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 114
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Поздравляю со сдачей. Зубы любят болеть в самый неподходящий момент.
Спасибо !!! да, не просто не в подходящий, а совсем не вовремя , да ещё передний...

Цитата:
Сообщение от BDA Посмотреть сообщение
Действительно. Мне сначала показалось, что в DefaultExt нужно вписать все расширения в соответствии с фильтром. Но даже с одним расширением выбор из расширений фильтра срабатывает.
А я в инете нашёл про DefaultExt, там три расширения было, подумал а почему и больше не попробовать? и всё получилось отлично.

sergey.serg-72,

А сегодня на уроке к нашему Джонсу коллега пришёл, Джонс сказал что это Ас среди кодеров, известный в широких, профессиональных кругах . Сегодня ребята задавали вопросы,и спрашивали какой язык программирования лучший и какая среда? Так вот, этот Ас ответил следующее : Delphi7 + KOL & MSK и все остальные "в этой жизни" пролетают, как "фанера над Парижем".

Что в Дельфи можно сделать всё и не хуже С+ и прочих , он владеет 4 языками в совершенстве и я был шокирован, я думал Дельфи, уже устарела и прошлый век.... Но после его слов был приятно удивлён. Правда он не объяснил (времени не хватило) что такое KOL & MSK, но думая какие то доп модуля, или приложение к Делфи , которое уменьшает размер exe, или делает компактными.
Но понял что Делфи ещё рано списывать. Поищу что такое KOL & MSK и с чем её едят.

А код по преобразованию из srec , в bin простой всего 35 строк, всё так просто и понятно.
Мне хорошо, мне не делать больше и ребятам по srec, а вот по hex попали , придётся ребятам ещё по мучатся.... Всё же хорошо что srec мне достался.
И задание новое дали, но я его уже сделал, в один клик, растащить целый файл данных на три.
Сделал влёт, в один клик. Более того в первые новый приём освоил, название файла по определённым данным через цикл, вывожу в Label и смотря какое определение при сохранении задаю имя каждому из трёх. Идея мне пришла в голову, и всё получилось.Значит имя можно задавать из label, или любого другого компонента.
Так что уроки даром не прошли. Я за час всё сделал и сейчас другим помогаю (медвежья услуга) , батан всё еще в ступоре, в три клика не может реализовать. А я в один клик всё сделал.Да ещё с новой фишкой. Пусть Джонс офигеет ещё чуток.

Последний раз редактировалось BDA; 09.04.2021 в 02:07.
sergey.serg-72 вне форума Ответить с цитированием
Старый 08.04.2021, 00:04   #158
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 114
По умолчанию

sergey.serg-72,
Вот может пригодится ! Чуток дополнил для удобства, а то у srec, много слишком расширений, и не знаешь на какой попадёшь. Так что дополнил .

Вот мой, точней мой и Джонса .
Вложения
Тип файла: rar Converter_.rar (180.1 Кб, 2 просмотров)

Последний раз редактировалось BDA; 09.04.2021 в 02:06.
sergey.serg-72 вне форума Ответить с цитированием
Старый 10.04.2021, 02:22   #159
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 114
По умолчанию

sergey.serg-72,
Не много подправил !
Вложения
Тип файла: rar Converter_.rar (178.5 Кб, 2 просмотров)
sergey.serg-72 вне форума Ответить с цитированием
Старый 10.04.2021, 23:57   #160
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 114
По умолчанию

sergey.serg-72,

Добавление ещё не большое !
Вложения
Тип файла: rar Converter_Finish_.rar (179.0 Кб, 2 просмотров)
sergey.serg-72 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 20000 рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно создать "батник", вырезать из "2.txt" первых n строк и вставить их в "1.txt" temphard Помощь студентам 2 03.09.2013 15:03
Удаление первых n-строк из txt-файла Neksion Помощь студентам 2 10.07.2013 17:12
Создать чтение из файла и запись в файл txt на С++ skifre Фриланс 0 01.06.2012 15:16
поиск и выципление строк из txt файла D_e_n_n Помощь студентам 7 04.02.2011 05:39
C# Представление txt файла как массива строк asheb Помощь студентам 7 20.04.2010 11:51


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS