Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > [BCB6] TListBox - Обращение к определённой строчке |
Автор: MuForum 3.8.2007, 12:49 | ||||
Доброе время суток! Вчера столкнулся с такой проблемой, что мне при создание главной формы нужно было считать с файла данные, и затем проверить его на наличие запрещенных символов и если в какой-то строчке находиться запрещённый символ, то удалить эту строчку. На первый взгляд всё просто и легко, но не тут то было, так как я провозился больше часа читая статьи из Google, так и не нашел то, что мне надо, затем психанул и уже сам методом логики и тыка решил свою проблему, поэтому решил и сдесь опубликовать решение, так как кто-то ещё может столкнуться с такой проблемой, и чтобы ему не приходилось ломать голову... Задача: Проверить все строчки компонента TListBox на наличие запрещенных символов.
Вот и сам код:
Теперь вопрос к опытным кодерам: Ребята, со стороны косметики функция правильно оформлена? |
Автор: SenkraD 3.8.2007, 12:56 |
MuForum, так пара замечаний 1. если что-то удаляеш иди с конца 2. ItemIndex можно не менять 3. Сохраняй уже в конце - время секономиш |
Автор: MuForum 3.8.2007, 13:32 | ||||
#2, SenkraD - Спасибо за советы, я учёл первые два и вот что получилось:
P.S. -> Третий сейчас думую как реализовать(Если можешь подскажи через что правильнее будет это реализовать) - Идея примерно вот такая:
|
Автор: zkv 3.8.2007, 13:35 | ||
по поводу: вот мое мнение, в комментариях ;)
Резюме: если взялся комментировать, то комментарии должны помогать в разборе кода, а не отвлекать от него ;) |
Автор: SenkraD 3.8.2007, 13:42 |
Ну zkv почти во всё прав. А сохранку делай после того как цикл отработает!!! И не меняю ItemIndex - тратиш время на отрисовку |
Автор: MuForum 3.8.2007, 13:45 |
#4, zkv - Склефосовский, перед тем, чтобы что-то написать надо подумать, и оскорблять человека из-за того, что ог начинающий программист не стоит, так как когда-то и ты начинал... 2) sprintf(T, ListBox1->(*Items)[i].c_str()); - [C++ Error] Main.cpp(566): E2280 Member identifier expected - Сначала проверять свой код надо, а затем писать... 3) int count1=0;//за такие названия пальцы ломать надо ![]() P.S. -> От таких комментариев тошнит... |
Автор: SenkraD 3.8.2007, 13:48 |
MuForum, доростёш - поймёш можно вообще не создавать эту чаровскую строку с завершающим нулём, а работать через методы ListBox1->Items->Strings[индекс]->нужный метод |
Автор: MuForum 3.8.2007, 13:49 |
#5, SenkraD - Спасибо за помощь! На счёт не спал, ты прав, я пошел спать почти в 5 утра, в 7 был подъём, гулять с собакой и мамке помогать, а вчерашний жень весь за компьютером провёл, так что не суди строго из-за того, если туплю! |
Автор: MuForum 3.8.2007, 13:56 |
#9, zkv - Да ты извини если что, просто мне было не приятно читать, что я чуть-ли не баламут от того, что ещё зелёный и неопытный... P.S. -> Спасибо тебе за критику конечно, просто немного мягче это надо делать, так как многие только начинают заниматься программированием! (Я лично только как месяц начал). p.S. -> Ещё раз спасибо парни, что указали на ошибки и поправили меня! |
Автор: MuForum 3.8.2007, 14:16 | ||||
# for all - Вот что в итоге получилось:
Пробовал сделать по другому, но выдаёт еррор при запуске уже самой программы:
Вот содержимое ошибки: Project ConnectServer.exe raised exception class ERangeError with message ". Process stoped. Use Step or Run to continue. |
Автор: SenkraD 3.8.2007, 15:08 | ||
MuForum, у типа String индексания идёт с 1 до Length() включительно
|
Автор: xKOCMOCx 3.8.2007, 18:29 | ||||
А вот моё мнение. Во-первых зачем вообще прорисовывать листбокс, есть же класс:
Во-вторых можно сделать проще:
Так я думую будет быстрее ![]() |
Автор: MuForum 6.8.2007, 02:07 | ||
# for all - Ребята есть ещё одна проблема, пытался решить но что-то не выходит... Задача: Проверить есть ли повторяющие IP адреса, если есть - то удалить.
P.S. -> Но почему-то функция работает ни так как надо, понять почему не многу... |
Автор: SenkraD 6.8.2007, 08:41 | ||
MuForum, у меня щас нету справки по Builder, но точно знаю, что есть свойство связаное с дублированием, по крайней мере у TList точно есть. А так вообще:
P.S. Писал на скорую руку - особо не хаять |
Автор: MuForum 6.8.2007, 15:25 | ||
#15, SenkraD - Ну я снова разобрался, теперь попрошу посмотреть со стороны косметики, как это выглядит!
|
Автор: SenkraD 6.8.2007, 16:01 |
MuForum, по поводу твоей косметики: - ставь не по пробелу, а по табу на местах сдвига - давай нормальные имена переменным - ставь пробелы до и после арифметических знаков |
Автор: dumb 6.8.2007, 16:59 | ||
так, для примера, чуть более короткий вариант решения:
|
Автор: MuForum 6.8.2007, 22:52 |
#18, dumb - Благодарю вас за предоставленный пример, на работе он конечно работает превосходно, правда я сейчас пытаюсь разобраться всё по полочкам, чтобы понять сам механизм. P.S. -> Благодарю всех ребят, кто принимает действия в этой теме! |