|
13 / 10 / 5
Регистрация: 11.10.2019
Сообщений: 290
|
|||||||||||||||||||||
Обработка исключений списка19.08.2021, 08:42. Показов 1216. Ответов 10
Метки нет (Все метки)
Доброе утро форумчане. Вопрос про извлечение значений из списка.
Допустим у меня есть динамический список например 5 элементов,иногда он может содержать 6 или 7 элементов. просто громоздко выходит,может быть так что и условий куча будет либо попытки с исключением. Как грамотно извлекать данные из списка чтобы не было ошибок при извлечении. не знаем сколько элементов,но знаем минимум например 5 элементов обязательных,а остальные по возможности и максимум например не больше 10 элементов будет. Для примера:
Изначально добавлял условия,не красиво выходит писать несколько условий.
Или может допустим сделать минимумом пусть будет 10 элементов,то изначально смотрим сколько элементов если меньше 10 то добавляем в список пустой элемент,чтобы ровно 10 было и тогда ошибки не возникнет никакой при чтении. Такой вариант наверно будет лучше. Поделитесь. То есть вот так наверно лучше будет
0
|
|||||||||||||||||||||
| 19.08.2021, 08:42 | |
|
Ответы с готовыми решениями:
10
Обработка исключений
Обработка исключений |
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 19.08.2021, 09:09 | |
|
XY Problem in action
Добавлено через 1 минуту Сергей225, расскажи изначальную задачу и ситуации в которых может произойти сие непотребство. Ты явно что-то не то делаешь.
0
|
|
|
13 / 10 / 5
Регистрация: 11.10.2019
Сообщений: 290
|
|
| 19.08.2021, 09:19 [ТС] | |
|
iSmokeJC, Да по любому не то,точнее не правильно продумано))) просто когда изначально делал проект,не задумывался как и в чем хранить данные для передачи через фтп. В текстовый файл данные отправляются на фтп в виде строки разделенной на табуляцию, при получении(чтении) раскладываю в список и вытаскиваю значения. Теперь то понял что дерьмо было сделано когда понадобилось добавить новые данные при передаче или изменению,программа же не знает сколько элементов в списке после разложения из строки и уверен рано или поздно ошибка возникнет если будет не сходиться,вот и решил как то временно доработать на случай чтобы жестких ошибок не было с вылетом программы. А потом когда время будет то переделаю может полностью этот момент.
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 19.08.2021, 09:26 | |
|
Сергей225, а зачем обращаться к данным жестко по индексу? Вот в чем вопрос.
Добавлено через 3 минуты Даже если тебе нужен последний элемент например. Не зная длины списка всегда можно указать индекс [-1]
0
|
|
|
13 / 10 / 5
Регистрация: 11.10.2019
Сообщений: 290
|
|
| 19.08.2021, 09:32 [ТС] | |
|
iSmokeJC, Потому что стоит тот порядок в котором лежат данные. Например извлечь дату то лежит в [4] и так далее.
Добавлено через 2 минуты iSmokeJC, Просто если использую -1 то это что за данные будут номер или дата? вот поэтому и проставил жестко по индексу чтобы знать где какие данные лежат.
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 19.08.2021, 09:34 | |
|
Так если порядок, равно как и количество элементов, нарушится - прога упадет в любом случае.
Добавлено через 2 минуты Сергей225, вот ради смеха - приведи кусок кода, который парсит эти данные. И два куска данных - обычный и хм, необычный.
0
|
|
|
13 / 10 / 5
Регистрация: 11.10.2019
Сообщений: 290
|
|
| 19.08.2021, 09:36 [ТС] | |
|
iSmokeJC, Вот я и хочу предостеречь если попытаюсь прочитать не существующий элемент по индексу. Скорее всего пока сделаю как и написал в последнем примере,если меньше определенного количества элементов в списке то забить пустыми в список,чтобы при попытке прочитать не упало ничего.
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 19.08.2021, 09:37 | |
|
Сергей225, покажи код который есть сейчас.
То, что ты хочешь сделать - лютый костылище.
0
|
|
|
13 / 10 / 5
Регистрация: 11.10.2019
Сообщений: 290
|
||||||
| 19.08.2021, 09:41 [ТС] | ||||||
|
iSmokeJC, Да вот допустим. Первые 8 символов знаю обязательно есть. Дальше когда пришлось добавить новые данные,но чтобы на случай были совместимы со старыми версиями и писал условия.Затем еще сейчас нужен добавить 10 элемент то вот и понял что головная боль будет,если так оставить дальше. Вот и подумал что может ограничить и сделать например максимум 15 элементов,но на деле нужны 10 например,Чтобы когда обновлять не писать дополнительные условия а прописать только чтение по какому то индексу.
0
|
||||||
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 19.08.2021, 09:54 | |
![]() Да тут вся прога - лютый костылище. Тогда сорь, твой подход ничего уже не испортит, пиши как задумал. Гг. Если будут доп.данные и ты в условии определяешь новые переменные, то далее в коде нужно и их проверять на валидность? Я б по-человечески переписал, но хозяин-барин как говорится...
1
|
|
|
13 / 10 / 5
Регистрация: 11.10.2019
Сообщений: 290
|
|
| 19.08.2021, 10:00 [ТС] | |
|
iSmokeJC, Хорошо. Да думаю так и напишу чтобы заполнились в списке пустые элементы. А на другой стороне тот кто отправляет,нужно переделать и по другому отправлять или даже скорее в другом формате.
0
|
|
| 19.08.2021, 10:00 | |
|
Помогаю со студенческими работами здесь
11
Обработка исключений
Обработка исключений Обработка исключений Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|