Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

move для string   Найти похожие ветки 

 
LD   (2004-04-07 17:48) [0]

всем привет
в форуме ето обсуждалось что не рекомендуется
пользоваться MOVE для пересулки строчных переменных
в масив байт (в какомто случаее ето дает сбой )но в каком не помню. естьли для етого какая нить другая процедура
с возможностью указания начальной точки вставки ??


 
Тимохов ©   (2004-04-07 17:50) [1]

задача то в чем?
есть copy.
если вам нужно скопировать кусочек строки в массив char и вы обязуетесь сами отвечать за освобождение памяти из под этого массива, то пользуйтесь move наздоровье.


 
Anatoly Podgoretsky ©   (2004-04-07 17:57) [2]

Пусть еще попробует под Д8


 
Тимохов ©   (2004-04-07 17:59) [3]


> Anatoly Podgoretsky ©   (07.04.04 17:57) [2]

Анатолий, не далее как недели две назад вы сами сказали, что в массы net пойдет не скоро, скорее всего ближе к конце десятилетия (простите если переврал).
Так, что win32 и д <= 7 имхо еще поживут...


 
LD   (2004-04-07 18:18) [4]

TO Тимохов
по поводу COPY
толи я чегото не догоняю толи .....

var
buff:array[0..200] of char;
sname:string[20];
begin
sname:="12345";
buff:=copy(sname,2,1);
end;
но на приведенный пример компилятор сильно ругается
о несоответствии типов
P.C.
а вообще в масив надо загнать не тока string но и integer


 
Тимохов ©   (2004-04-07 18:21) [5]

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


 
MBo ©   (2004-04-07 18:23) [6]

Move прекрасно для этого подходит.
Если buff:array[0..200] of char; будет использоваться в строковых функциях, надо позаботиться о том, чтобы завершающий ноль имелся.


 
WebErr ©   (2004-04-07 18:25) [7]


> buff:=copy(sname,2,1);

Не, ну ваще!!!

> buff:array[0..200] of char;

Я блин не могу!
function Copy(S; Index, Count: Integer): string;
:)))))))


 
WebErr ©   (2004-04-07 18:28) [8]


Move(@sname[1], @buff[0], Length(sname));


 
LD   (2004-04-07 21:40) [9]

а ка с помощью MOVE перекинуть типизированный масив. веть он является указателем на данные а не самими данными  
var
tempbuff:array of record N:integer;Name:string[20];end;
buff:array[0..200]of char;
begin
move(typebuff[0],buff[0],nn);
end;
результатом выполнения является переброска адреса памяти
на который указывал typebuff


 
panov ©   (2004-04-07 21:58) [10]


type
 TMyRec=packed record
   N:integer;
   Name:string[20];
 end;
var
 tempbuff:packed array of TMyRec;
 buff:array[0..200]of char;
begin
 SetLength(tempBuff,2);
 tempbuff[0].N := 1;
 tempbuff[0].Name := "aaaaaaaaaa";
 tempbuff[1].N := 2;
 tempbuff[1].Name := "bbbbbbbbbb";

 move(tempbuff[0],buff[0],SizeOf(tempbuff)*SizeOf(TMyRec));



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
7-1078090769
Duk
2004-03-01 00:39
2004.04.25
Процессор и кулер


14-1080635255
able
2004-03-30 12:27
2004.04.25
WIndows 2003 server


7-1078403652
mike_g
2004-03-04 15:34
2004.04.25
Работа с com портами


7-1077707481
CrytoGen
2004-02-25 14:11
2004.04.25
проблемы с CreateProcessAsUser


1-1081250493
Эли
2004-04-06 15:21
2004.04.25
Цвет выделенного текста и шрифта в Memo