Форум: "Начинающим";
Текущий архив: 2011.01.30;
Скачать: [xml.tar.bz2];
Внизmove Найти похожие ветки
← →
stenfit (2010-11-05 15:59) [0]нужно, используя move, скопировать содержимое строковой переменной S1 в строковую переменную S2. Чет не получается. В чем ошибаюсь?
var
S1, S2: string;
Ptr: Pointer;
begin
S1 := "456";
GetMem(Ptr, Length(S1));
try
Move(Pointer(S1)^, Ptr^, Length(S1));
SetLength(S2, Length(S1));
Move(Ptr^, Pointer(S2)^, Length(S1));
ShowMessage(S2);
finally
FreeMem(Ptr);
end;
end;
← →
Amoeba_ (2010-11-05 16:10) [1]Вот так превращаем твой говнокод в нормальный код:
var
S1, S2: string;
begin
S1 := "456";
SetLength(S2, Length(S1));
Move(S1[1], S2[1], Length(S1));
ShowMessage(S2);
end;
← →
Юрий Зотов © (2010-11-05 16:16) [2]А зачем move? S2:=S1, и все. Когда будет надо, все само скопируется.
← →
stenfit (2010-11-05 16:18) [3]а почему ShowMessage возвращает только 45
← →
Anatoly Podgoretsky © (2010-11-05 16:45) [4]Length(S2)?
← →
Amoeba_ (2010-11-05 17:27) [5]
> Юрий Зотов © (05.11.10 16:16) [2]
А может это УЧЕБНОЕ задание. А в реальной жизни, понятное дело, Move тут совсем ни к чему.
← →
Дмитрий Белькевич (2010-11-05 19:46) [6]Меня всегда удивляли учебные задания по программированию. Ведь можно придумать (или посмотреть готовых) множество случаев, где move полезен. Нет же - нужно придумать идиотское его использование и дать в виде задания. А потом же так и пишут. Как научили.
← →
Дмитрий Белькевич (2010-11-05 19:49) [7]
> а почему ShowMessage возвращает только 45
таки да :)
var
S1, S2: string;
begin
S1 := "456";
SetLength(S2, Length(S1));
Move(S1[1], S2[1], Length(S1) * SizeOf(Char));
ShowMessage(S2);
← →
Dennis I. Komarov © (2010-11-09 13:40) [8]Может это задание не на "Move", а "Что есть string"...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.01.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c