Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.033 c
4-1077361547
Gas
2004-02-21 14:05
2004.04.25
Как определить, "занято" ли окно/приложение?


1-1081170427
vv_fran
2004-04-05 17:07
2004.04.25
Почему дата 12/30/1899 - нулевая в Делфи?


1-1081155133
MegaVolt
2004-04-05 12:52
2004.04.25
Простенький архиватор.


4-1077881103
BVV
2004-02-27 14:25
2004.04.25
WH_GETMESSAGE и WH_CALLWNDPROC


3-1080720517
Samovar inc.
2004-03-31 12:08
2004.04.25
Fast





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский