IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Ф-я Length(s)
klem4
сообщение 4.03.2006 11:00
Сообщение #1


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Как вы можете объяснить результат этой рпограммы ? Строка изменяется, а длина остается прежней.

uses crt;
var
s : string;
T : char;
i : byte;

begin
clrscr;
s := 'TEST';
for i := length(s) + 1 to 20 do s[i] := 'r';
writeln('s[6] = ', s[6]);
writeln('length(s) = ',length(s));
readln;
end.



Сообщение отредактировано: klem4 - 4.03.2006 11:00


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 9)
APAL
сообщение 4.03.2006 11:03
Сообщение #2


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


А ты укажи новую длину в s[0]
cool.gif


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 4.03.2006 11:06
Сообщение #3


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Действительно, странно по идее паскаль сам долже этим заниматься smile.gif


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 4.03.2006 11:07
Сообщение #4


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Самый первый пост:
http://forum.pascalnet.ru/index.php?s=&sh...indpost&p=19856

Цитата(klem4 @ 4.03.2006 11:06) *

Действительно, странно по идее паскаль сам долже этим заниматься smile.gif

Он это делает сам если используешь методы обращения к строке, а не прямое ее изменение.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 4.03.2006 11:07
Сообщение #5


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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



yes2.gif


Даже странно что я никогда с этим не сталкивался)


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.03.2006 12:15
Сообщение #6


Гость






Цитата
странно по идее паскаль сам долже этим заниматься
Это смотря какой Паскаль еще... У тебя FPC? Там трюки с 0-м символом не проходят... 1000 раз говорили - не занимайтесь грязным хаком, используйте предназначенные для работы со строками процедуры, для переносимости...
 К началу страницы 
+ Ответить 
klem4
сообщение 4.03.2006 12:28
Сообщение #7


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Да, пробовал на FPC. Все получилось, а как по науке это сделать ?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.03.2006 12:40
Сообщение #8


Гость






Вот так:
uses crt;
var
s : string;
begin
clrscr;
s := 'TEST';
while length(s) < 20 do s := s + 'r'; { <--- }

writeln('s[6] = ', s[6]);
writeln('length(s) = ',length(s));
readln;
end.

Никакого Хака и работать должно на всех компиляторах...
 К началу страницы 
+ Ответить 
Altair
сообщение 4.03.2006 23:04
Сообщение #9


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Строка изменяется, а длина остается прежней.

Вспомним молодость.... мой первый пост на форуме, на этом.. любимом (еще бы...) форуме!
неправильная работа со строками в TP7

ну разве мог я тогда подумать, зайдя на вот этот форум...Прикрепленное изображение
что будет все, что сейчас есть у меня... ?!?!

Не хватает только нашего AlaRic'a, ...

ну простите меня, модераторы за сентиментальность smile.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 4.03.2006 23:54
Сообщение #10


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Цитата
1000 раз говорили - не занимайтесь грязным хаком, используйте предназначенные для работы со строками процедуры, для переносимости...


И я о том же:
Цитата
Он это делает сам если используешь методы обращения к строке, а не прямое ее изменение.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 17:11
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"