Здравствуйте, гость ( Вход | Регистрация )
AD | Дата 19.8.2008, 8:58 |
Цитата(trdm) А почему такой дурацкий формат у файла? csv тут блин намного правильнее использовать... Так задано, что все входные файлы должны быть формата *.ini! |
|
trdm | Дата 18.8.2008, 15:40 |
А если серьезно, то для того, чтобы разобрать этот файл: А почему такой дурацкий формат у файла? csv тут блин намного правильнее использовать... |
|
AD | Дата 18.8.2008, 13:24 |
я бы два словаря использовал: QMap<QString, QString> - m/s = м/с QMap<QString, double> - m/s = 1 Красиво, я бы сказал, элегантное решение, но ресурсоемкое! Два мепа. Я подумаю, может быть, где-то твой вариант будет очень хорошо подходить! Еще раз огромное спасибо обоим! А в данном случае решение выглядит так. Вроде бы неплохо, тоже:
В результате получилось такое:
P.S. Про нормальную форму теперь понятно! Как видно из кода, это делается сразу! |
|
Tonal | Дата 18.8.2008, 13:18 |
Я примерно это и имел в виду, только к первому словарю часто нужна ещё некоторая обработка, типа убрать пробелы, перевести в нижний регистр... Поэтому и написал про преобразование в нормальную форму которое в простейшем случаем может свестись к поиску в хеше. |
|
Litkevich Yuriy | Дата 18.8.2008, 13:14 |
я бы два словаря использовал: QMap<QString, QString> - m/s = м/с QMap<QString, double> - m/s = 1 |
|
AD | Дата 18.8.2008, 13:07 |
Опять же всё зависит от того, что ты собираешься делать с данными из этого файла. Если эти данные изменятся не будут, то и твоё решение вполне прокатит. Если же будут изменятся, то лучше сделать так: Выбираешь "нормальную форму ключа, например для "km|км" пусть это всегда будет строка km (а можно просто enum использовать, если ключи заранее известны) В мапе хранишь данные для ключей только в "нормальной" форме. При приходе ключа, сначала преобразовываешь его в "нормальную форму", а потом достаёшь данные. Прости, но я не понял как сделать то, что ты предлагаешь! А в моем решении, которое, впрочем, я уже сделал, данные будут изменяться только статически и не очень сильно. Ну попросту добавят еще какие-нибудь размерности в заданном формате и все. |
|
Tonal | Дата 18.8.2008, 13:02 |
Опять же всё зависит от того, что ты собираешься делать с данными из этого файла. Если эти данные изменятся не будут, то и твоё решение вполне прокатит. Если же будут изменятся, то лучше сделать так: Выбираешь "нормальную форму ключа, например для "km|км" пусть это всегда будет строка km (а можно просто enum использовать, если ключи заранее известны) В мапе хранишь данные для ключей только в "нормальной" форме. При приходе ключа, сначала преобразовываешь его в "нормальную форму", а потом достаёшь данные. |
|
AD | Дата 18.8.2008, 12:40 |
Цитата Зачем тебе это нужно? Зачем, зачем? Нужно и все тут! А если серьезно, то для того, чтобы разобрать этот файл:
Альтернативное решение я уже привел. |
|
Tonal | Дата 18.8.2008, 12:08 |
Зачем тебе это нужно? | |
AD | Дата 18.8.2008, 12:01 |
Альтернатива-то есть, но мне она не нравится, потому что в данном случае поможет, а в других нет. В данном случае, можно попросту делать QMap большего размера и записывать туда 2 разных ключа, но с одним и тем же значением. | |
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.3.2024, 11:52 |