Вверх ↑
Этот топик читают: Гость
Ответов: 2059
Рейтинг: 131
#16: 2015-09-14 21:20:21 ЛС | профиль | цитата
...Строки (String), с другой стороны, намного проще использовать. Большинство вещей выполняется автоматически, само собой. Но множество API функций Windows (или Linux) требуют нуль-терминированных строк PChar, а не строк Delphi String. К счастью, тип String специально устроен так, что они фактически тоже являются указателями на строки, завершающиеся нулём (этот терминатор никак не используется Delphi и компилятор постоянно таскает его со строками только на этот случай). Так что любую строку String вы можете использовать и как PChar – просто приводя тип:...

P.S.
это одна строковая переменная, содержащая набор печатных символов. А текст -- это именно набор строк разделенных символами 0D0A

Вот это похоже на правду.
карма: 6

0
Ответов: 16884
Рейтинг: 1239
#17: 2015-09-14 21:53:18 ЛС | профиль | цитата
flint2, а в чем разница между стихом и стихотворением?
Только не говори, что это одно и то же.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 2059
Рейтинг: 131
#18: 2015-09-14 22:02:36 ЛС | профиль | цитата
Я бы рассуждал так:
стихотворение - это процесс создания стиха -действие.
Стих - это конечный продукт полученный в процессе стихотворения.
Не знаю, как стихотворение, но поэма может содержать: стих первый, стих второй и т.д.
P.S.
Так я в начале схемку приложил, можно ли сделать тоже самое без замены 0D0A?
карма: 6

0
Ответов: 16884
Рейтинг: 1239
#19: 2015-09-14 22:20:39 ЛС | профиль | цитата
Стих в терминологическом значении – ритмически упорядоченный фрагмент поэтической речи, составляющий одну строку стихотворного текста с регулярно чередующимися ударными и безударными слогами, от количества которых зависит стихотворный размер.

Стихотворение – небольшое поэтическое произведение, написанное стихами, структурно объединяющее ритмически организованные строфы с фиксированным на определенных слогах ударением.

И получается : Стих - это строка, а Стихотворение - это текст.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#20: 2015-09-14 22:27:14 ЛС | профиль | цитата
flint2 писал(а):
Так я в начале схемку приложил, можно ли сделать тоже самое без замены 0D0A?

Наши компоненты не предназначены для работы с нультеримнальными строками. Так что поможет только попытка эмуляции, что ты и сделал
карма: 22

0
Ответов: 8886
Рейтинг: 823
#21: 2015-09-14 22:34:38 ЛС | профиль | цитата
flint2 писал(а):
..Так я в начале схемку приложил..
Денультерменированную?
Не_нуль_терменированная.jpg
карма: 19

0
файлы: 1Не_нуль_терменированная.jpg [68.5KB] [516]
Ответов: 2059
Рейтинг: 131
#22: 2015-09-14 22:47:48 ЛС | профиль | цитата
Леонид,
Да!
nesco,
Понял.
Tad,
И получается : Стих - это строка, а Стихотворение - это текст.

Не знаю, как стихотворение, но поэма может содержать: стих первый, стих второй и т.д.

Почти одинаково.
карма: 6

0
Ответов: 16884
Рейтинг: 1239
#23: 2015-09-14 23:25:02 ЛС | профиль | цитата
Леонид, а выбрать HEX и промотать до конца, чтобы я увидел 00 в конце, слабо ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8886
Рейтинг: 823
#24: 2015-09-15 00:31:42 ЛС | профиль | цитата
Tad, удалил уже и корзинку почистил а так не слабо
карма: 19

0
Ответов: 2059
Рейтинг: 131
#25: 2015-09-15 01:21:37 ЛС | профиль | цитата
http://forum.hiasm.net/forum_serv.php?q=56&id=4035
карма: 6

0
Ответов: 16884
Рейтинг: 1239
#26: 2015-09-15 06:58:10 ЛС | профиль | цитата
flint2, а картинка про что ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 2059
Рейтинг: 131
#27: 2015-09-15 10:24:41 ЛС | профиль | цитата
Tad, картинка про ноль в конце у строковой переменной.
Курсором отмечена длина строки, в соседнем младшем адресе - количество ссылок на переменную.
Получается так: число ссылок на переменную - длина - буковки - ноль.
карма: 6

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#28: 2015-09-15 11:08:23 ЛС | профиль | цитата
flint2, ты все объяснил, кроме одного -- зачем тебе это геморрой
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#29: 2015-09-15 11:49:42 ЛС | профиль | цитата
Про "зачем" я не стал спрашивать.
А спрошу про это
flint2 писал(а):
но строки с завершающим нулем не содержат байтов длины.
flint2 писал(а):
Курсором отмечена длина строки
Что скажешь ?
------------ Дoбавленo в 11.49:
nesco писал(а):
зачем тебе это геморрой
(выражение москвичей. Питерцы говорят "головная боль" )
Просто он не знает про
Недостатки нуль-терминированной строки:
1. долгое выполнение операций получения длины и конкатенации строк;
2. отсутствие средств контроля за выходом за пределы строки, в случае повреждения завершающего байта возможность повреждения больших областей памяти, что может привести к непредсказуемым последствиям — потере данных, краху программы и даже всей системы;
3. невозможность использовать символ завершающего байта в качестве элемента строки.
4. невозможность использовать некоторые кодировки с размером символа в несколько байт (например, UTF-16), т.к. во многих таких символах, например Ā (0x0100), один из байтов равен нулю (в то же время, кодировка UTF-8 свободна от этого недостатка).


Как, в таких случаях, говорят
укр.поговорка писал(а):
Циган знає що кобилі робить

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#30: 2015-09-15 12:15:45 ЛС | профиль | цитата
Tad писал(а):
Просто он не знает про

Вот чем мне и нравится строковая переменная Delphi, так это тем, что одним мановением руки любой стрим или кусок памяти может превратиться в эту самую строковую переменную, и она будет содержать весь набор символов, которые там находятся, пусть хоть все они будут нулями
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)