![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по работе с Move
Walter White © (2014-05-15 11:23:00)Нужно ли Buf в Move приводить к PChar?
var
S1, S2: string;
Buf: Pointer;
begin
S1 := 'test';
GetMem(Buf, 255);
try
Move(PChar(S1)^, PChar(Buf)^, 255); // <- PChar(Buf)^ ?
S2 := PChar(Buf);
finally
FreeMem(Buf);
end;
или можно:
Move(PChar(S1)^, Buf^, 255);
Dimka Maslov (2014-05-16 16:33:00) [1]А ещё почему именно 255?
Cobalt (2014-05-16 11:20:00) [2]Не верьте коду, найденному "в интернетах" - там 90% говнокод.
Пока не разъясните, зачем нужно приведение к PChar - не делайте так.
MBo (2014-05-15 13:22:00) [3]Промежуточное приведение к string лишнее.
Walter White (2014-05-15 12:15:00) [4]
> RWolf © (15.05.14 11:30) [1]
> S2 := S1;
> UniqueString(S2);
> не?
>
> brother © (15.05.14 11:38) [2]
> чего сделать то хотите?
пишу наследника TDataSet, в нем перегружаю метод GetFieldData(Field: TField; Buffer: Pointer): Boolean;
для FieldType = ftString нужно в Buffer записать строку. Как это правильно сделать? Делаю так:
Move(PChar(SL[Field.Index])^, PChar(string(Buffer))^, 255);
Работает, но есть сомнения.
brother (2014-05-15 11:38:00) [5]чего сделать то хотите?
RWolf (2014-05-15 11:30:00) [6]
S2 := S1;
UniqueString(S2);
не?