На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (495) « Первая ... 375 376 [377] 378 379 ...  494 495  ( Перейти к последнему сообщению )  
> Delphi vs C++ vs C# , ну и Java немножко, где-то ближе к старшему байту номеров страниц
    Цитата jack128 @
    Assert(Length(Str8) = 12); // ВНЕЗАПНО кол-во байт

    Не внезапно:
    Цитата
    For single-byte and multibyte strings, Length returns the number of bytes used by the string.
      Цитата Romkin @
      UnicodeString должна глотать

      Как именно?? Конкретный пример кода можешь дать?
      Цитата Romkin @
      Явно же не ansistring, издеваешься.

      Это не Я издеваюсь, а Эмбаркадеро. Открываем модуль System.pas и видим: UTF8String = type AnsiString(65001); Чем UTF32 хуже/лучше??

      Добавлено
      Цитата Romkin @
      For single-byte and multibyte strings, Length returns the number of bytes used by the string.

      Но при этом для UnicodeString - кол-во символов? Логично.
        Цитата KILLER @
        Цитата D_KEY @
        Все эти стринги появились до активного использования стандартных строк.

        До этого о них не знали? Или их в стандарте небыло?

        Стандарта и самого-то не было. По крайней мере Qt был зачат в начале 90х. Первый стандарт С++ появился в 98, и не сразу всеми поддерживался, были различия в реализациях.
        Сообщение отредактировано: D_KEY -
          Цитата jack128 @
          Открываем модуль System.pas и видим: UTF8String = type AnsiString(65001); Чем UTF32 хуже/лучше??

          Тем, что у него размер элемента не 1 (это минимально), а 4 байта, однако.

          Добавлено
          Цитата jack128 @
          Но при этом для UnicodeString - кол-во символов? Логично.

          Увы :( То есть, для ansistring и unicodestring - символы. Фактически оно возвращает количество байт деленное на размер элемента, без пробега. Написать свою функцию - не проблема.
          UCS4 - должна быть та же UnicodeString, с установкой через SetCodePage. Но в 2010, к сожалению, не реализовано.
            Цитата D_KEY @
            Стандарта и самого-то не было. По крайней мере Qt был зачат в начале 90х. Первый стандарт С++ появился в 98, и не сразу всеми поддерживался, были различия в реализациях.

            Ну вот, в итоге имеем кучу типов стрингов, при работе с разными проектами, к чему тут делфистов цеплять? :-? ... Да и не везде этот могучий std::string использовать получается, как выше уже написал при работе с WinApi функциями, он летит глубоко в топку...
            Сообщение отредактировано: KILLER -
              Цитата KILLER @
              Ну вот, в итоге имеем кучу типов стрингов, при работе с разными проектами, к чему тут делфистов цеплять? :-?

              Разговор шел о traits, строки - просто пример. В новом стандарте уже 4 класс строк на его основе.

              Цитата
              Да и не везде этот могучий std::string использовать получается, как выше уже написал при работе с WinApi функциями, он летит глубоко в топку...

              Сделай характеристики для символов WinAPI и юзай std::basic_string.
              Кстати, это может быть хорошей иллюстрацией для данного обсуждения.
              Чего там не так с WinAPI строками-то?
                Цитата D_KEY @
                Сделай характеристики для символов WinAPI и юзай std::basic_string.

                Хм. Как насчет выделения памяти в разных менеджерах для разных типов строк?
                  Цитата D_KEY @
                  Сделай характеристики для символов WinAPI и юзай std::basic_string.

                  Интересно было бы посмотреть на это <_<

                  Цитата D_KEY @
                  Чего там не так с WinAPI строками-то?

                  То что функции как правило принимают LPTSTR буфер, куда записывают данные, в расшифровке, с выключенным юникодом LPTSTR - это char*, с включенным юникодом - это wchar_t*. И что мне передавать в такую функцию? std::string::c_str() ? Ну тогда ахтунг будет... :ph34r:
                    Цитата Romkin @
                    Хм. Как насчет выделения памяти в разных менеджерах для разных типов строк?

                    В плюсах всем контейнерам можно указывать аллокатор.
                      Цитата KILLER @
                      То что функции как правило принимают LPTSTR буфер, куда записывают данные, в расшифровке, с выключенным юникодом LPTSTR - это char*, с включенным юникодом - это wchar_t*. И что мне передавать в такую функцию? std::string::c_str() ? Ну тогда ахтунг будет... :ph34r:

                      ExpandedWrap disabled
                        typedef std::basic_string<TCHAR> tstring;

                      Не?
                        Цитата D_KEY @
                        Не?

                        как работать с этим?
                        Что мне передавать, например в функцию:

                        ExpandedWrap disabled
                          DWORD WINAPI GetCurrentDirectory(
                            __in   DWORD nBufferLength,
                            __out  LPTSTR lpBuffer
                          );


                        ??
                        Сообщение отредактировано: KILLER -
                          KILLER, ну, так это out параметр. Тут уж ничего не попишешь.
                            Цитата MyNameIsIgor @
                            KILLER, ну, так это out параметр. Тут уж ничего не попишешь.

                            Так я и говорю, что толку от могучего std::string, когда работешь с WinApi тем же ? Или с какой нибудь Сшной библиотекой, которых уйма просто... std:string, std::string'ом, да не везде его поюзаешь, какой классный он бы нибыл...
                              Цитата KILLER @
                              Так я и говорю, что толку от могучего std::string, когда работешь с WinApi тем же ? Или с какой нибудь Сшной библиотекой, которых уйма просто...

                              Во-первых, это интимные проблемы WinAPI и сишных либ. Во-вторых, строки в плюсах и не проектировали для работы с такими библиотеками.
                                Цитата MyNameIsIgor @
                                Во-первых, это интимные проблемы WinAPI и сишных либ.

                                Как это может быть проблеммой WinAPI и сишных либ? :o

                                Цитата MyNameIsIgor @
                                Во-вторых, строки в плюсах и не проектировали для работы с такими библиотеками.

                                новедь они работают как раз с последовательностями типа char* ...
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 375 376 [377] 378 379 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.4888 ]   [ 14 queries used ]   [ Generated: 30.07.26, 17:58 GMT ]