![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Посимвольное присваивание Строк
Kran © (2002-07-31 11:15:00)Ребята обьясните что неправильно делаю.В Object Pascal Reference
написано, да и в обычном паскале такое всегда было: Со строками можно работать как и с массивами символов.Постоянно выдаёт ошибку
var
s1,s2 :String;
i:byte;
begin
s1:="";
s2:="Qaz ";
for i:=1 to length(s1) do
s1[i]:=s2[i];
ShowMessage(s1);
end;
Внук (2002-07-31 11:45:00) [1]>>Anatoly Podgoretsky © (31.07.02 11:35)
Ага, забыл :)
Anatoly Podgoretsky (2002-07-31 11:35:00) [2]Kran © (31.07.02 11:15)
Ни в одном из диалектов Паскаля такого не было. Всегда требовалось или явное и неявное указание длины и нельзя писать за пределы этой длины.
Внук © (31.07.02 11:24)
Аналогично, требуется указание длины, по умолчанию 255, но при таком варианте обращение, требуется ручнка корректировка актуальной длины строки.
kull (2002-07-31 11:31:00) [3]
> Kran © (31.07.02 11:28)
А Copy() и Pos() не проще?
Kran (2002-07-31 11:28:00) [4]За Setlength спасибо забыл что так надо делать, а s1:=s2 не прокатит тк мне нужно получить допустим не все символы а только до символа разделителя.
MBo (2002-07-31 11:24:00) [5]>такой же как и s2
s1:=s2;
Внук (2002-07-31 11:24:00) [6]Я полагаю, будет все в порядке, если использовать тип ShortString или соответствующий ключ компилятора, иначе см. Alx2 © (31.07.02 11:22)
Skier (2002-07-31 11:23:00) [7]>Kran
var
s1,s2 :String;
i:byte;
begin
s1:="";
s2:="Qaz ";
SetLength(s1, length(s2));
for i:=1 to length( s2) do
s1[i]:=s2[i];
ShowMessage(s1);
end;
Alx2 (2002-07-31 11:22:00) [8]ну тогда установи для нее подходящую длину и вперед!
Kran (2002-07-31 11:19:00) [9]Ну я и хочу чтоб она стала не пустой а такой же как и s2
Skier (2002-07-31 11:17:00) [10]>Kran
У тебя s1 пустая строка !