![]() |
|
Модераторы: Poseidon |
![]()
|
|
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 16 Всего: 160 |
Вообщем так, нужно разобрать строку, содержащую брутто-формулу. Эти формулы отражают состав вещества. Нужно выяснить атомы каких элементов и в каком кол-во входят в молекулу вещ-ва, заданную строкой.
Правила разбора такие:
Например, H2O - 2 атома H, 1 атом O. Вопрос: как такое реализовать на Delphi? -------------------- |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 26 Всего: 122 |
формала одна? ну то есть вводишь тока "H2SO4" и больше ничего нету?
|
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 16 Всего: 160 |
Да. -------------------- |
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 30 Всего: 372 |
Значит так, сильно не пинаем.
Каждая заглавная буква - другой хим.элемент, каждая строчная - продолжение предыдущего. Например CaSO4 - 1 Ca, 1 S, 4 O. Скобочки не учел, сил не хватило, но думаю нетрудно будет добавить. Код ужасен, но работает)
До этого рабочего варианта еще строк 300 кода накалякал Это сообщение отредактировал(а) THandle - 4.4.2008, 22:19 |
|||
|
||||
| kemiisto |
|
||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 16 Всего: 160 |
Вот, что пока получилось. Вариант предварительный но вроде работает:
Пример использования:
THandle, спасибо за идею! -------------------- |
||||
|
|||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 16 Всего: 160 |
Играясь с Ruby, потихоньку осваиваю регулярные выражения... Мощная штука, однако!
Вот, что получилось у меня при решении задачи из этой темы:
Это сообщение отредактировал(а) kemiisto - 18.5.2008, 11:57 -------------------- |
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 30 Всего: 372 |
kemiisto, да...
Намного проще получается. Надо тоже регулярки изучить, а не писать непонятные длиннющие куски кода |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |