Здравствуйте, гость ( Вход | Регистрация )
Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
---|---|---|---|---|---|
1.9.2008, 7:35 | Схема работы по переводу документации | = 1= Исходная дукументация преобразуется в UTF-8, c коррекцией единственного тэга: с на
Назовем полученое, например, "первой версией" Набросал утилитку на python-е которая это делает: Раскрывающийся текст
Для всех файлов в указанной или текущей директории оканчивающихся на .html создаётся файл .utf-8.html в кодировке utf-8 и поправленным тагом. = Фантазии = Некий робот периодически, если есть обновления в хранилище, запускает нужные утилиты которые конвертируют изменившиеся "переводы" в выше указаные форматы Вполне просто организовывается - в свине есть механизм хуков. Пишем хук на после-коммит. ![]() |
Litkevich Yuriy, | ||
30.8.2008, 0:08 | Правильное написание regexp | 1) Составляем выражение, которое найдёт последовательность символов которую нужно оставить: [\d.]+[WC]?_O(N|FF)\b Кстати, минус у чисел может быть? И ещё куда-то нужно запятую присобачить - из примера не видно. 2) Создаём QRegExp с этим выражением. 3) Для исходной строки ищем все вхождения и собираем из них выходящую строку. Вот реализация на python-е:
Думаю перевести на С++ труда не составит? ![]() П.С. Приведённое выражение поймает и такую последовательность: 1.2.3.4.5._ON Непонятно нужно ли с этим бороться... |
AD, | ||
25.8.2008, 7:13 | Как присоединить сигнал к функции | Кстати, можно сделать такой объект более универсальным:
Тогда использование становится таким:
|
Litkevich Yuriy, niXman, | ||
18.8.2008, 13:02 | Есть ли в Qt видоизмененный QMap | Опять же всё зависит от того, что ты собираешься делать с данными из этого файла. Если эти данные изменятся не будут, то и твоё решение вполне прокатит. Если же будут изменятся, то лучше сделать так: Выбираешь "нормальную форму ключа, например для "km|км" пусть это всегда будет строка km (а можно просто enum использовать, если ключи заранее известны) В мапе хранишь данные для ключей только в "нормальной" форме. При приходе ключа, сначала преобразовываешь его в "нормальную форму", а потом достаёшь данные. |
AD, | ||
18.8.2008, 8:36 | Регулярное выражение от <form...> до первого </form> | Ага, проверил. Qt действительно не понимает конструкций +?, *? и ?? но при переключении во второй синтаксис все квантификаторы делаются "нежадными". Т.е. работает <form[^>]+>(.+)</form> + QRegExp::RegExp2. + setMinimal |
ViGOur, | ||
11.8.2008, 11:07 | Упрощение кода | 1) После проверок где... Код
заменить на
2) Проверку на.. Код
заменить на
3) Изменение, которое после checkStatusDist... У тебя 3 ветки. Если смотреть на код этих веток после if(isContinue && init_gaps)... то ясно что третья ветка - это объединение первых 2. Стало быть мы выносим этот код из 1ий и 2ой ветви в отдельные функции а в третьей ветви вызываем обе этих функции. 4) Ну и из... Из кода (time_t)fabs(double(next -> time_marker - cur -> time_marker)); Делаем функцию timeDist 5) Функции checkStatus* переименовываем в isStatus*. |
AD, | ||
10.8.2008, 14:51 | Приведение типов C++/QT | Для того, чтобы работал qobject_cast, нужно не только унаследоваться от QObject, но и добавить макрос Q_OBJECT в описание класса. Для остальных Qt-шных кастов тоже требуются некоторые телодвижения. В отличие от dynamic_cast для которого всё делается автоматом при наличии хотя бы одного виртуального метода. ![]() |
AD, | ||
6.8.2008, 7:13 | Валидность строки | 2 AD Скорее всего строка тут не причём. ![]() Подобные вещи происходят тогда, когда ты разрушил память - кучу или стек. Например вылетел за границы массива, дважды удалил один и тот же объект, или просто поработал по неинециализированному указателю. Вот программа и валится в самых неожиданных местах. 2 void* Если конструктор вызвался - объект уже инициализирован. В QString() все данные корректно инициализируются, так что мусора там быть не может. Кроме случаев удара по памяти. ![]() |
AD, | ||
4.8.2008, 11:08 | Солнечное затмение | Снималось на бытовой фотик + дискетка. ![]() В реале конечно гораздо красивее. |
AD, void*, | ||
26.7.2008, 10:29 | анекдот | Dr_Mebius: Несколько лет назад мой кабинет был превращен в полигон. По стене на разной высоте были ввинчены шпильки, а на пол прибиты бруски. Задача робота была: самостоятельно провести замеры шпилек, подготовить щит из фанеры (засверлить отверстия правильных диаметров), навесить щит на шпильки и привинтить гайками. Отлаживали программу месяц. Когда сдавали заказчику, он подготовил на полигоне проверку: одну шпильку ввинтили под углом. Когда я заметил это, я затрепетал: что будет? Догадается ли сделать больше диаметр отверстия? Мой программер (молюсь на него) только улыбался. Когда машинка добралась до кривой шпильки, она произнесла: "вот cyka...", навинтила на шпильку гайку и выпрямила молотком. Японцы были в обмороке. Сказали, что не просили машину с "русским" интеллектом. Тем не менее, работу приняли. http://bash.org.ru/quote/397957 |
elesy.ural, mihailikus, | ||
24.7.2008, 10:16 | Секреты и интересные возможности Qt | Не знаю, возможно, это и известный факт, но мне показалось не совсем обычным такое применение функции read/write. При этом применении она становится аналогом функций Windows Api ::ReadFile/::WriteFile: Оно вполне обычное - сохранение буфера. Но мне кажется, код у тебя не правильный. Если сохранение/восстановление происходят в разных программах, или даже при разных запусках одной программы, в поле strOut.s с большой вероятностью будет мусор. |
97WzugSKd31, 9or6UxhWRa1, | ||
![]() |
Текстовая версия | Сейчас: 10.12.2023, 1:13 |