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

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

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

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

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

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

Цитата:
Сообщение от BDA Посмотреть сообщение
Архив стер (все равно он с паролем). Верную чексумму назвал бы correct (ну это не важно). Лучше выкладывайте просто код - легче искать недочеты. Из количества строк не нужно вычитать единицу. Нумерация строк в текстовых редакторах чаще всего начинается с единицы, так что в сообщениях об ошибках тоже лучше так. Для hex строка ":" сейчас считается корректной - нужно проверять на минимальную длину. Для srec первый символ должен быть S, а второй от 0 до 9, а сейчас могут быть любыми.

Да, всё верно Я позже когда тестил строки вернул i+1 отсчёт .
correct поменял .
Код вроде весь есть на сайте, я чтоб 10 кодов не выкладывать, место экономлю.
(Для hex строка ":" сейчас считается корректной - нужно проверять на минимальную длину. Для srec первый символ должен быть S, а второй от 0 до 9, а сейчас могут быть любыми)

А вот этот момент тоже отловил в экспериментах, Вы меня опередили.
Получается что надо ставить новые условия для минимальной длины и для символов ?

Цитата:
Сообщение от BDA Посмотреть сообщение
Для hex строка ":" сейчас считается корректной - нужно проверять на минимальную длину. Для srec первый символ должен быть S, а второй от 0 до 9, а сейчас могут быть любыми.
А какую длину, шапка 14 байт верхняя, нижняя 10, встроке 16, а бывает и 32 и как проверять на минимальную длину?

Srec S проверяем , а второй символ 113 ,214 и 315 9 вроде нет и быть не должно в первых символах?
И как тут ставить, или я чего то не понимаю ?
К стате длину строки надо проверять и для Srec, вырезал один байт, поменял контролку и прога не находит ошибок, а тритон сразу заброковал что неправильная длина строки.
Так что для Srec тоже минимальную длину строки тоже надо, как и для Hex.

Проблема однако....
Изображения
Тип файла: jpg 1.JPG (7.1 Кб, 8 просмотров)

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

Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
10 кодов не выкладывать, место экономлю
Код текстом занимает в 100 раз меньше места, чем один архив
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
Получается что надо ставить новые условия для минимальной длины и для символов ?
Зависит от желаемого результата. Если ограничиться только проверкой контрольной суммы, то можно оставить и текущий вариант. А если проверять на строгое соответствие описанию формата, то многое еще требуется проверять.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
и как проверять на минимальную длину?
Например, можно выбрать наименьшую из возможных длин. Если меньше неё то ошибка. Более сложный вариант, сначала узнавать тип записи, и на его основании выбирать минимальную длину.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
вроде нет и быть не должно в первых символах?
Только S4 вызывает вопросы, так как зарезервирована. Но можно это проигнорировать и проверять хотя бы:
Код:
if (st[i][2] < '0') or (st[i][2] > '9') then
  // строка неизвестного типа
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 03.04.2022, 22:20   #373
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код текстом занимает в 100 раз меньше места, чем один архив
ок !
sergey.serg-72 вне форума Ответить с цитированием
Старый 03.04.2022, 22:23   #374
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

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

Последний раз редактировалось sergey.serg-72; 03.04.2022 в 22:37.
sergey.serg-72 вне форума Ответить с цитированием
Старый 03.04.2022, 22:27   #375
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Цитата:
Сообщение от sergey.serg-72
10 кодов не выкладывать, место экономлю
Код текстом занимает в 100 раз меньше места, чем один архив
Цитата:
Сообщение от sergey.serg-72
Получается что надо ставить новые условия для минимальной длины и для символов ?
Зависит от желаемого результата. Если ограничиться только проверкой контрольной суммы, то можно оставить и текущий вариант. А если проверять на строгое соответствие описанию формата, то многое еще требуется проверять.
Цитата:
Сообщение от sergey.serg-72
и как проверять на минимальную длину?
Например, можно выбрать наименьшую из возможных длин. Если меньше неё то ошибка. Более сложный вариант, сначала узнавать тип записи, и на его основании выбирать минимальную длину.
Цитата:
Сообщение от BDA Посмотреть сообщение
Например, можно выбрать наименьшую из возможных длин. Если меньше неё то ошибка. Более сложный вариант, сначала узнавать тип записи, и на его основании выбирать минимальную длину.
Это не вариант от слова совсем, достаточно убрать из строки один, два байта и поменять контролку и всё, программа обманута, а файл не корректный.
Наверное по типу записи надо, я вчера об этом думал, по другому ни как, одна халтура....
sergey.serg-72 вне форума Ответить с цитированием
Старый 03.04.2022, 22:35   #376
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Только S4 вызывает вопросы, так как зарезервирована. Но можно это проигнорировать и проверять хотя бы:
Код:
if (st[i][2] < '0') or (st[i][2] > '9') then
Тоже не вариант, один, два байта убрал из строки, поменял контролку и обманул программу...
Нет, тоже не вариант. Вы смеялись над тритоном, а он, ни одного касяка не пропустил, как не старался, обмануть не удалось, файл отбраковывался. И пишет правильно, если проблема в строке, так и пишет. В общем всё трудней и не однозначно оказалось. Пока прогу отбраковываем, не корректная она.
sergey.serg-72 вне форума Ответить с цитированием
Старый 04.04.2022, 23:26   #377
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
if (st[i][2] < '0') or (st[i][2] > '9') then
// строка неизвестного типа
Как это должно работать можете пример показать, что то не работает.....
Но зато отловил так : :11300000C94F2510C940A4B0C94F2510C9 4F2514E и прога пропускает типа нет ошибок, хотя символ S заменён на двоеточие, можно на 0,1,2 и прога пропускает как корректный. Пришлось условие ставить .

Код:
 if st[i][1] <> 'S' then
begin
Lines.Add(Format('Не хватает символа  S str № %d: %s', [i+1, st[i]]));
continue;
end;
sergey.serg-72 вне форума Ответить с цитированием
Старый 05.04.2022, 01:43   #378
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Только S4 вызывает вопросы, так как зарезервирована. Но можно это проигнорировать и проверять хотя бы:
Код:
if (st[i][2] < '0') or (st[i][2] > '9') then
А не лучше ли так ?
Код:
if (st[i][2] <> '0') and (st[i][2] <> '1')and (st[i][2] <> '2')and (st[i][2] <> '3') and (st[i][2] <> '4')  and (st[i][2] <> '5')   and (st[i][2] <> '6')   and (st[i][2] <> '7') and (st[i][2] <> '8')and (st[i][2] <> '9')  then
begin
Lines.Add(Format('Это строка не  Srec str ¹ %d: %s', [i+1, st[i]]));
continue;
end;

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

Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
а питон всё проверяет ?
Нет, не всё. Что именно скрипт проверял, я уже писал.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
Тритона обмануть мне не удалось не разу
Мне удалось. Если скормить строку "S304000000FB", то никаких ошибок не выдается, но эта строка слишком коротка, чтобы быть корректной записью типа S3.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
Пришлось условие ставить
Да, нужно S проверять.
Цитата:
Сообщение от sergey.serg-72 Посмотреть сообщение
А не лучше ли так ?
А смысл перечислять все варианты, если два сравнения делают то же?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 05.04.2022 в 05:40.
BDA вне форума Ответить с цитированием
Старый 05.04.2022, 06:29   #380
sergey.serg-72
Форумчанин
 
Регистрация: 12.03.2019
Сообщений: 376
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Нет, не всё. Что именно скрипт проверял, я уже писал.
То
Цитата:
Сообщение от BDA Посмотреть сообщение
Нет, не всё. Что именно скрипт проверял, я уже писал.
Тогда не крутой питон, а SRecord ? действительно всё может ?
sergey.serg-72 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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