Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

Цитата:
Сообщение от BDA Посмотреть сообщение
Нет, это исправление о включении/невключении последнего байта диапазона. А тут есть общие адреса в итоговых диапазонах. Я не знаю, насколько это важно программаторам и преподавателю, но сейчас в выходном файле существуют адреса, для которых данные указаны несколько раз (например, адрес 20F0).
Да я тоже честно говоря не знаю, диапазоны Батана, главное что при сравнении с его прогой, всё один, в один. А его прога зачёт и препод ни чего не сказал , значит ошибок нет и всё корректно.
Значит задача выполнена. Жалко что к зачёту не успел тогда. Но главное всё при сравнении делает один, в один. Значит всё правильно мы сделали.

А вот сегодня полный провал по вставки bin в s19 , даже у батана с ошибками вышла. Остальные все , в пролёте.... Хорошо хоть поделились s19 в s19 и моя bin в bin , как то смягчила полный провал. Вот это печаль... С первым заданием не успел, второе провалил....
sergey.serg-72 вне форума Ответить с цитированием
Старый 18.03.2022, 18:28   #332
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
главное что при сравнении с его прогой, всё один, в один
Так в его результирующем файле нет пересекающихся диапазонов. Надеюсь, что вы не вручную сравниваете файлы, а, например, diff'ом или meld'ом. Еще может влиять способ задания диапазонов - одни и те же числа могут по-разному интерпретироваться в его и нашей программе. Ну раз вас всё устраивает, то больше не буду возвращаться к вопросу наложения диапазонов.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 19.03.2022, 18:17   #333
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Так в его результирующем файле нет пересекающихся диапазонов. Надеюсь, что вы не вручную сравниваете файлы, а, например, diff'ом или meld'ом. Еще может влиять способ задания диапазонов - одни и те же числа могут по-разному интерпретироваться в его и нашей программе. Ну раз вас всё устраивает, то больше не буду возвращаться к вопросу наложения диапазонов.
Сравниваю в редакторе Тритона (каждый раз убеждаюсь что нет лучшего редактора) , Изменил диапазон сделал так ;
Код:
 ($01870, $01870, $4000),
($4000, $4000, $08000),
Но разнице при сравнении нет, что так, что так, всё идентично. Диапазон пересакаеться и последний затирает данные первого, но на выходе данные идентичны всё ровно.

а, например, diff'ом или meld'ом.

Таких редакторов не знаю. Тритон при открытии файла, в каком бы то ни было формате , hex ,S19 и.т.д Открывает и сравнивает как bin . Если неправильная строка, или файл повреждён, то пишет что повреждён и не открывает. Редактор Тритон бесплатный и просто бомба, я аналогов не вижу. Не разу не подвёл всегда корректен.
Фото сравнения в архиве.
Вложения
Тип файла: rar сравнение флто.rar (221.7 Кб, 1 просмотров)
sergey.serg-72 вне форума Ответить с цитированием
Старый 20.03.2022, 00:19   #334
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
Открывает и сравнивает как bin
Да, при таком сравнении файлы совпадут. Тритон мог бы ради приличия хотя бы сообщать о существовании перекрытия. Если программатор будет записывать данные построчно, то память будет утюжиться лишний раз, как мне кажется.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
Если неправильная строка, или файл повреждён, то пишет что повреждён и не открывает.
Опять же, Тритон мог бы писать и номер строки, которая не понравилась, а он, вроде, не пишет.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 20.03.2022, 01:24   #335
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Да, при таком сравнении файлы совпадут. Тритон мог бы ради приличия хотя бы сообщать о существовании перекрытия. Если программатор будет записывать данные построчно, то память будет утюжиться лишний раз, как мне кажется.
Ну не знаю ,а как ещё сравнивать? разработчик Тритона профи как раз по программаторам и знает все нюансы , если бы такая необходимость была то наверное бы оповещал. А раз так всё реализовано, значит всё нормально. Значит утюженье не критично. А вот про номер строки, тут согласен, неплохо бы номер строки некорректной сообщать.
А потом я же изменил диапазоны, сейчас вроде ни чего не перекрывает, разве опять не правильно? Сколько редакторов, но Тритон просто красава !!! Чувствуется рука большого профи.

Цитата:
Сообщение от BDA Посмотреть сообщение
Опять же, Тритон мог бы писать и номер строки, которая не понравилась, а он, вроде, не пишет.
Да, к сожалению номер строки не пишет. Просто, пишет если файл не корректный.
Вот бы программку сварганить для проверки файлов и пересекаются ли диапазоны и какая строка не нравиться.

А мои новые диапазоны разве опять пересекаются ? вроде исправил .

Последний раз редактировалось BDA; 21.03.2022 в 02:28.
sergey.serg-72 вне форума Ответить с цитированием
Старый 21.03.2022, 02:27   #336
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
если бы такая необходимость была то наверное бы оповещал
Скорее автор не сталкивался с "кустарными" srec-файлами, в которых диапазоны пересекаются.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
сейчас вроде ни чего не перекрывает
Да, вроде не перекрывает.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
Вот бы программку сварганить
Так сварганьте
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
пересекаются ли диапазоны
Если именно для проверки диапазонов (самих чисел, а не в итоговом файле), то можно приспособить тестилку с 30 страницы этой темы, чуть исправив для текущего способа описания диапазонов.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 21.03.2022, 02:50   #337
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Так сварганьте
Сварганил бы, если мог, программка нужная как оказалось.
Если с Вашей помощью, то сваргинил бы и джонс думаю был бы доволен, и я реабилитировался бы после провала...

Цитата:
Сообщение от BDA Посмотреть сообщение
Если именно для проверки диапазонов (самих чисел, а не в итоговом файле), то можно приспособить тестилку с 30 страницы этой темы, чуть исправив для текущего способа описания диапазонов.
А вот с этого момента по подробней пожалуйста ! Что можно сварганить и будет проверять не пересекаются ли диапазоны и числа? Надо сварганить тогда ..

Последний раз редактировалось BDA; 21.03.2022 в 03:56.
sergey.serg-72 вне форума Ответить с цитированием
Старый 21.03.2022, 03:55   #338
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
Что можно сварганить и будет проверять не пересекаются ли диапазоны
Да немного упростить код с 30 страницы:
Код:
procedure TForm1.btn1Click(Sender: TObject);
const
  ranges: array[0..8] of array[0..2] of Int64 = (
    // new start, old start, old end
    ($01870, $01870, $04000),
    ($020F0, $020F0, $08000),
    ($08000, $00000, $04000),
    ($0C000, $0C000, $10000),
    ($18000, $04000, $08000),
    ($28000, $08000, $0C000),
    ($38000, $0C000, $10000),
    ($48000, $10000, $14000),
    ($58000, $14000, $18000)
  );
var
  i, j: integer;
  range_end_i, range_end_j: Int64;
begin
  with mmo1 do
  begin
    Clear;
    Lines.BeginUpdate;
    for i := Low(ranges) to High(ranges) do
    begin
      range_end_i := ranges[i, 2] + ranges[i, 0] - ranges[i, 1];
      for j := i + 1 to High(ranges) do
      begin
        range_end_j := ranges[j, 2] + ranges[j, 0] - ranges[j, 1];
        if (range_end_i > ranges[j, 0]) and (ranges[i, 0] < range_end_j) then
          Lines.Add(Format('%d intersects %d', [i, j]));
      end;
    end;
    Lines.EndUpdate;
  end;
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 21.03.2022, 16:44   #339
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Да немного упростить код с 30 страницы:
Код:
Вчера сбой что ли был на сайте, выкинуло и не мог войти больше на сайт?

В Вашем коде как я понял используется мемо, далее включён диапазон батана, не мои диапазоны.

А где загрузка файла в программу? и по чему используется один диапазон ? а , если разные диапазоны и их надо проверять ? программка должна как мне видится универсальной быть, чтоб проверяла диапазоны ( не пересекаются ли) нет ли нахлёста между диапазонами.
Чтоб выводила в программу какая строка повреждена и где нахлёст.

А в данном коде как я понял проверяется один диапазон и всё. При чём нет вывода информации и загрузки файла.

Цитата:
Сообщение от BDA Посмотреть сообщение
Да немного упростить код с 30 страницы:
Опробовал , работает, но , если разные диапазоны? постоянно открывать исходник вводить новые диапазоны и проверять? это не удобно и не совсем правильно.

1) Надо вывод инфы, пересекает, или не пересекает выводить лучше в label.
2) Чтоб была возможность ввести новый диапазон для проверки , для этого использовать мемо, чтоб туда скопировать, или вбить диапазон и проверить его.

Значит надо увязать как то мемо и ranges чтоб ввёл диапазон в мемо, нажал на кнопку и проверил.

3) Если диапазоны не пересекаются вывод, что всё гуд!

типа так :
Код:
var
  i, j: integer;
  range_end_i, range_end_j: Int64;
begin
  with mmo1 do
  begin
    Clear;
    Lines.BeginUpdate;
    for i := Low(ranges) to High(ranges) do
    begin
      range_end_i := ranges[i, 2] + ranges[i, 0] - ranges[i, 1];
      for j := i + 1 to High(ranges) do
      begin
        range_end_j := ranges[j, 2] + ranges[j, 0] - ranges[j, 1];
        if (range_end_i > ranges[j, 0]) and (ranges[i, 0] < range_end_j) then
          Lines.Add(Format('%d пересекает  %d', [i, j]))
          else
          Mmo1.Text:=('Нет пересечений диапазонов  ');
      end;
    end;
    Lines.EndUpdate;
  end;
end;

end.
Но не работает почему то условие.

Последний раз редактировалось BDA; 21.03.2022 в 18:17.
sergey.serg-72 вне форума Ответить с цитированием
Старый 21.03.2022, 18:16   #340
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
включён диапазон батана, не мои диапазоны
Это не так важно, чьи именно диапазоны. Они просто для примера.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
Чтоб выводила в программу какая строка повреждена и где нахлёст.
Так эта программа только для проверки перехлеста диапазонов, заданных в том же виде, как и в коде генерации bin->srec.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
постоянно открывать исходник вводить новые диапазоны и проверять?
Ну это же вспомогательная программа для проверки диапазонов перед использованием в коде преобразования. Сначала изменять описание диапазонов в ней, компилировать и проверять отсутствие пересечений, а потом просто копировать массив целиком в код преобразования. Но вы вольны сделать сколь угодно красивый интерфейс.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
А в данном коде как я понял проверяется один диапазон и всё.
Нет, проверяется пересечение каждого с каждым диапазоном, просто пересекаются только нулевой с первым в данном случае.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



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