Russian Qt Forum
Сентябрь 30, 2024, 20:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 ... 4 5 [6] 7 8 ... 11   Вниз
  Печать  
Автор Тема: string и startsWith  (Прочитано 60609 раз)
Spark
Гость
« Ответ #75 : Май 28, 2013, 14:45 »

thechicho
Все ясно. Спасибо за конкретный ответ. Поменять не долго.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #76 : Май 28, 2013, 16:00 »

А я так и не совсем понял. Оба варианта кода можно использовать. Или второй предпочтительней?
Второй предпочтительней, но тоже не идеал. Улыбающийся
На самом деле здесь при конвертации строки нужно использовать явный кодек (объект QTextCodec). Но пока я бы тебе голову этим не забивал. Улыбающийся
Записан
Spark
Гость
« Ответ #77 : Май 28, 2013, 16:35 »

А я так и не совсем понял. Оба варианта кода можно использовать. Или второй предпочтительней?
Второй предпочтительней, но тоже не идеал. Улыбающийся
На самом деле здесь при конвертации строки нужно использовать явный кодек (объект QTextCodec). Но пока я бы тебе голову этим не забивал. Улыбающийся
Спасибо. Понял.
На данном этапе для меня важно, что бы хотя бы с технической точки зрения (работоспособности и надежности) было верно. Все таки я познаю азы. С набором опыта сам должен начать понимать, как надо было лучше и исправлять ошибки. И в этом плане эта ветка (вернее ее участники) мне помогла осознать больше, что же я делаю Улыбающийся.
И еще раз спасибо за то, что научили пользоваться функциями. Самостоятельно это заняло бы гораздо больше времени. Конечно же придется осознать и подробности - как они устроены. Но теперь хватает материала, что бы двигаться дальше и в обучении и к поставленной цели в плане - подогнать программу под свои запросы.
И хотелось бы, что понимали почему я так пишу. Ну поставьте себя на моем месте, как бы вы ощущали себя после недели обучения. Конечно для меня каждый новый осознанный шаг - это победа. В теории я может и знаю, что то. Ну например о существовании классов и функций и как они пишутся Улыбающийся, но это конечно не дает мне права считать себя программистом. И уж конечно через неделю сложно с ходу различать где, что и определять по сухой справочной информации, а как это выглядит в коде на самом деле. Но теперь я смотрю на листинг и для меня все меньше белых пятен и все больше понимаю, что хотел сказать программист Улыбающийся, а если не ясно, то в справочник могу заглянуть более осознанно и ваши советы меня уже не так сбивают с толку Улыбающийся. Вот такая лирика Улыбающийся.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #78 : Май 28, 2013, 17:34 »

Это впечатление у вас из-за вашей некомпетентности. Не переживайте. Улыбающийся
Почитайте что нибудь про многобайтовые кодировки. Посмотрите на реализацию метода fromStdString...
Моя некомпетентность (которая намного лучше Вашего зазнайства) говорит что для таких кодировок нужен std::wstring, а fromStdString китайскому студенту никак не поможет  Улыбающийся

Это что такое? Очередное ваше произведение? Что с ним не так?
Да то что для строк с нулями внутри очень многое будет работать не так как ожидалось. Поэтому не надо делать вид, мол, fromStdString что-то решает, это мертвому припарка.

Для того, что бы программировать качественный софт, нужны знания.
Да говорите уж прямо "найти готовое и переписать", Вы ведь только этим и занимаетесь, чего скрывать Улыбающийся
Записан
thechicho
Гость
« Ответ #79 : Май 28, 2013, 18:03 »

//Да говорите уж прямо "найти готовое и переписать", Вы ведь только этим и занимаетесь, чего скрывать
а зачем писать то, что уже есть? зачем придумывать алгоритм, если уже есть рабочий? если вы получаете моральное удовольствие, написав что-то готовое, используя низкоуровневые функции, которые кто-то до вас уже написал, кстати говоря, то это ваши проблемы. это не задачи программистов. это задачи программистов-ученых, архитекторов. если у вас завышенное чсв, то мы то здесь причем. мы обычные кодеры, у нас свои задачи и свои решения этих задач. к нам свои требования.
вот вы сами то что спроектировали, придумали? это вы спроектировали архитектуру STL?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #80 : Май 28, 2013, 18:04 »

Моя некомпетентность (которая намного лучше Вашего зазнайства) говорит что для таких кодировок нужен std::wstring, а fromStdString китайскому студенту никак не поможет  Улыбающийся
Чего это вдруг? Вы знаете между ними разницу? Похоже что нет. Подмигивающий
В string спокойно может лежать UTF-16 и с ним нормально можно будет работать. Если знать как.

Да то что для строк с нулями внутри очень многое будет работать не так как ожидалось.
Конечно, все ваши поделки.

Да говорите уж прямо "найти готовое и переписать", Вы ведь только этим и занимаетесь, чего скрывать Улыбающийся
Не-не готовое переписываете только вы. Что и демонстрируете в каждой теме. Улыбающийся
Но, к сожалению, все ваши велики не дотягивают по функциональности и на 10% до тех стандартных решений, которые вы хотите повторить. Отсюда и вся ваша не любовь в стандартным решениям.
Смотрите, когда передо мной стоит задача, я продумываю ее решение в голове, сажусь и пишу ее реализацию используя стандартные средства. Дальше я провожу тесты, анализирую, что я могу улучшить алгоритмически. Потом только идет профилировшик, в котором я смотрю тонкие места и если я вижу, что этими местами являются стандартные средства, то я переписываю их оптимально для конкретной задачи.
У вас подход другой, вы садитесь и вместо решения задачи, пишите в течении недели кучу своих плохо работающих велосипедов, потом дело доходит(?) до решения непосредственной задачи, которая решается хоть как нибудь (неделю то уже потратили), а потом начинается ваша традиционная "оптимизация" с отказом от конструкторов, каставанием к простым указателям и т.д., которая дает сущие копейки по сравнению алгоритмической оптимизацией (на которую времени/знаний не хватило) и наконец, вы довольный собой выходите сюда и с видом эксперта начинаете рассказывать о "ущербности готовых решениях". Я не чего не пропустил? Улыбающийся
« Последнее редактирование: Май 28, 2013, 18:32 от Old » Записан
Spark
Гость
« Ответ #81 : Май 28, 2013, 18:44 »

Граждане берегите здоровье! Оно вам еще пригодиться. Не растрачивайте его на пустяки.
Ну а если много свободного времени, надоело работать только на заказы, хочется чего то для души, то есть вполне приличная тема для самовыражения своих творческих наклонностей. Может кому и придется по душе. Давно искал честных единомышленников.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #82 : Май 28, 2013, 19:50 »

Смотрите, когда передо мной стоит задача, я продумываю ее решение в голове, сажусь и пишу ее реализацию используя стандартные средства. Дальше я провожу тесты, анализирую, что я могу улучшить алгоритмически. Потом только идет профилировшик, в котором я смотрю тонкие места и если я вижу, что этими местами являются стандартные средства, то я переписываю их оптимально для конкретной задачи.
У вас подход другой, ...
Ах какой Вы молодец! Улыбающийся  Но давайте будем более конкретны. Возьмем тот же самый пример  для std::string. Сколько я буду писать find_replace? Ну минут 5-10. Хорошо, пусть где-то ошибся, еще столько на отладку. Ладно, пусть еще нужны какие-то утилы, да, с пол-дня. Переживу, разве это проблема/катастрофа? А сколько Вы будете бегать-искать? Вот уж не знаю. Где же Ваше решение на бусте ? Что-то не наблюдаю, было бы интересно.

А "зависимость" таскать? Уж на что хорош буст - и то давеча получил по рогам с переходом на MSVC 2012. Перелить в QString - много ума не надо, так ведь файл стал зависим - теперь уже без Qt не ходит. Потребуется реализация без UI или с др UI - и приплыли. Из-за чего? Крошечных пионерских утилит?

Самое интересное что писать какие-то утилы все равно придется. Ну вот недавно

- Есть начальное имя файлa, напр MyFile.txt
- Если файл с таким именем уже существует, изменить имя на MyFile copy.txt
- Если MyFile copy.txt уже существует, изменить имя на MyFile copy 2.txt
- и.т.д

Может и здесь будете искать готовое? Я вижу что в этом стремлении Вы уже дошли до полного абсурда  Улыбающийся
« Последнее редактирование: Май 28, 2013, 19:54 от Igors » Записан
thechicho
Гость
« Ответ #83 : Май 28, 2013, 20:35 »

//Может и здесь будете искать готовое? Я вижу что в этом стремлении Вы уже дошли до полного абсурда
достаточно нескольких минут поиска как правило, чтобы найти алгоритм (решение) для элементарной задачи.
по-моему, абсурд тратить время на написание велосипеда, если не стоит задача максимальной скорости работы кода.
и полнейший абсурд, что вы навязываете вашу точку зрения так, будто это неприложная истина.
повторюсь, если вам нравится ваш стиль программирования, это ваши проблемы. это не значит, что так должны делать все.
вы хоть что-то стоящее написали, что могли бы использовать другие в своей работе? что-то я ничего такого не встречал.
но я встретил qt. и qt мне не навязывает, что единственно верный способ программирования - это использование qt. в отличие от вас.
идея перевести string в QString была изсходя из того, что это форум, посвященный Qt. и это логично. если бы это был форум, посвященный разработке на чистом c++, то такая идея была бы нелогичной.
мне интересно, вы действительно думаете, что только вы один можете писать на чистом c++:) я тоже могу:) любой сможет, если будет такая необходимость. что вы пытаетесь доказать? покажите какой-нибудь полезный для сообщества ваш проект?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #84 : Май 28, 2013, 20:55 »

Ах какой Вы молодец! Улыбающийся  Но давайте будем более конкретны. Возьмем тот же самый пример  для std::string. Сколько я буду писать find_replace? Ну минут 5-10. Хорошо, пусть где-то ошибся, еще столько на отладку. Ладно, пусть еще нужны какие-то утилы, да, с пол-дня.
Ну я не знал, что вы пишите только хелловорлды.
А теперь давайте посмотрим на это серьезней:
Мне нужно быстро написать утилитку, которая конвертирует данные из одного формата в другой.
Нужна нормальная обработка параметров командной строки - за сколько сделаете за 10-15 минут? Аналогичное бустовскому Program Options - с подобным функционалом 10-15 дней.
Теперь мне нужны конфигурационные файлы. За сколько сделаете - за 10-15 минут? Аналогичное бустовскому Property Tree - с подобным функционалом 10-15 дней.
Теперь мне нужно парсить исходные файлы и формировать из них другие текстовые файлы (заголовки). За сколько сделаете регулярку - за 10-15 минут? Аналогичное бустовскому - никогда.
Теперь мне нужно разбирать исходные файлы для своего языка сценариев и генерировать байткод. За сколько сделаете свой bison/yacc или spirit - за 10-15 минут? Никогда.
А мне нужно работу работать и такие утилитки мне иногда нужно делать по несколько в день. Вы это велосипедить будете по пол года и не отладитесь никогда. Не у всех есть столько свободного времени, а писать find_replace я в детстве отлюбил.
Записан
SimpleSunny
Гость
« Ответ #85 : Май 28, 2013, 21:00 »

Моя некомпетентность (которая намного лучше Вашего зазнайства) говорит что для таких кодировок нужен std::wstring, а fromStdString китайскому студенту никак не поможет  Улыбающийся

Просто был случай. Получал я входные данные от 3й стороной в Win-1251 и почему-то иногда там был '\0' в середине. После этого пришлось учитывать.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #86 : Май 28, 2013, 21:32 »

Мне нужно быстро написать утилитку,
Теперь мне нужны ..
Теперь мне нужно ..
Теперь мне нужно ..
Разве я предлагал писать все-все самому? Напротив, я заметил что без использования тулзоа сейчас не прожить. Так зачем жульничать и приписывать мне бог знает что? Улыбающийся Просто во всем надо знать меру. Вот 2 конкретных примера: find_replace (std::string) и с именем файла. Не запираюсь, я считал и считаю что для такой мелочи запрягать тулзы непрактично, больше времени уйдет на освоение, написать самому во всяком случае быстрее. Вы со мной не согласны? Так пожалуйста, приведите грамотный (по Вашему мнению) пример реализации - используя буст или что угодно. Почему же я его еще не увидел? Улыбающийся  Почему только одни общме слова и (как всегда) охаивание велосипедистов?  Улыбающийся

Вообще откуда такое отношение к велосипеду? Мне кажется что освоив какие-то инструменты человек подсознательно чувствует свою зависимость от них, ну и вымещает свою неудовлетворенность на невинных жертвах Улыбающийся Чем лучше мы знаем вещь - тем беспомощнее мы без нее. Что поделать, все имеет обратную сторону..
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #87 : Май 28, 2013, 22:01 »

больше времени уйдет на освоение, написать самому во всяком случае быстрее.
Вот это ключевой момент. Если не знаешь ничего, то на освоение уйдет куча времени.
Достаточно один раз освоить и будете использовать все время. Вы же против самого освоения.

Так пожалуйста, приведите грамотный (по Вашему мнению) пример реализации - используя буст или что угодно.
Пожалуйста: http://www.boost.org/doc/libs/1_53_0/doc/html/string_algo/reference.html#header.boost.algorithm.string.replace_hpp

Почему только одни общме слова и (как всегда) охаивание велосипедистов?  Улыбающийся
Да никто их не охаивает. Каждый из нас пишет велосипеды, каждый. Только одни их пишут из маленьких готовых кирпичиков, а другие из маленьких велосипедиков. В зависимости от наивности заказчика и наличия свободного времени у разработчика.

Вообще откуда такое отношение к велосипеду? Мне кажется что освоив какие-то инструменты человек подсознательно чувствует свою зависимость от них, ну и вымещает свою неудовлетворенность на невинных жертвах Улыбающийся Чем лучше мы знаем вещь - тем беспомощнее мы без нее. Что поделать, все имеет обратную сторону..
Вы молотком пользоваться умеете? Вы сильно от него подсознательно зависите? Вымещаете свою неудовлетворенность на ком нибудь? Насколько вы беспомощны без молотка?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #88 : Май 28, 2013, 22:06 »

Разве я предлагал писать все-все самому? Напротив, я заметил что без использования тулзоа сейчас не прожить. Так зачем жульничать и приписывать мне бог знает что? Улыбающийся
Ну да, здесь еще не предлагал,  а тут бах, предложил:
Вот 2 конкретных примера: find_replace (std::string)
Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #89 : Май 29, 2013, 09:23 »

Накормили как лисица журавля Улыбающийся И что я должен с этим делать? Где примерчик который можно передрать? Наверное надо продраться сквозь лес итераторов, уяснить, разобраться, вжиться во все темплейиы - и тогда наступит нирвана. Ну лозунг известный "20 лет упорного труда - 20 тысяч лет счастья"

Отсутствие рабочего примера ясно показывает что сами-то Вы этого не делали. Ну да, "кто не умеет делать - учит как надо делать"  Улыбающийся
Записан
Страниц: 1 ... 4 5 [6] 7 8 ... 11   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.101 секунд. Запросов: 23.