Доступ к элементу строки (извиняюсь если было)

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Доступ к элементу строки (извиняюсь если было)

Сообщение borispr » 16.12.2008 14:49:51

Не могу сформулировать это для поиска поэтому возможно спрошу не в первый раз

В Дельфи
S := '123';
S[1] = '1'

Во FreePascal 2.2.2
S := '123';
S[1] = '2'

Это лыжи не едут или я дурак? Может опции надо какие-то выставить, чтобы была совместимость с Дельфи?
borispr
незнакомец
 
Сообщения: 3
Зарегистрирован: 16.12.2008 14:39:31

Re: Доступ к элементу строки (извиняюсь если было)

Сообщение Vadim » 16.12.2008 15:45:45

А S у Вас какого типа? У меня показывает именно так как надо: S[1] = '1'.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Доступ к элементу строки (извиняюсь если было)

Сообщение borispr » 16.12.2008 17:08:36

Тип просто string

Нарыл на сайте текст
Изменения типа string в режиме Delphi. В версии 2.2.0 по умолчанию используется директива компилятора {$h+} вместо {$h-}


У меня начале юнита стояло {$mode objfpc}{$H+}
Как я понял H+ включает длинные строки
Убрал опцию, S[1] стало равно '1', но при этом строки стали короткими.
borispr
незнакомец
 
Сообщения: 3
Зарегистрирован: 16.12.2008 14:39:31

Re: Доступ к элементу строки (извиняюсь если было)

Сообщение gyunter » 16.12.2008 22:24:17

Код: Выделить всё
var
s:string;
begin
s:='123';
writeln('S[1]=',S[1])
end.


Так выводит S[1]=1
gyunter
новенький
 
Сообщения: 12
Зарегистрирован: 05.12.2008 01:02:43
Откуда: Heard & McDonald's Islands

Re: Доступ к элементу строки (извиняюсь если было)

Сообщение borispr » 17.12.2008 13:07:00

Действительно, в самой программе оказалось все правильно! Косяк оказался в другом - я S[1] смотрел через Evaluate в Lazarus
С опцией H+
Expression: S
Result: 0x80624bc '123'
Expression: S[1]
Result: 50 '2'

Без опции
Expression: S
Result: '123'
Expression: S[1]
Result: 49 '1'
borispr
незнакомец
 
Сообщения: 3
Зарегистрирован: 16.12.2008 14:39:31


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

Рейтинг@Mail.ru