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

Вниз

Как обойтись без StrLCat ?   Найти похожие ветки 

 
Fanny   (2005-08-22 11:04) [0]

procedure MyProc(a:string);
var
 b:string;
begin
 // надо переменной B присвоить сегмент переменной A (такой же длины как у B)
end;

можно ли вообще обойтись без "выдёргивания" процедуры из SysUtils ???


 
Leonid Troyanovsky ©   (2005-08-22 11:10) [1]


> Fanny   (22.08.05 11:04)  

>  // надо переменной B присвоить сегмент переменной A (такой
> же длины как у B)


SetString? Copy? Move?

--
Regards, LVT.


 
Вжжжик   (2005-08-22 11:55) [2]

почему не сделать


 B:=A; ?


а если сегмент, то


 B:=Copy(A, 2, 5);


а если все-таки хочется через копирование памяти то:


 var
   P : Pointer;
 
 // место под сегмент строки А выделяем в строке В
 // раз сегмент "такой же длины" и строка В гарантированно
 // имеет правильную длину, то ниче выделять не надо,
 // эту строку можно пропустить
 SetLength(B, {длина сегмента} 5);
 // делаем отступ от начала строки А
 P:=Pointer(DWORD(Pointer(A)) + 2 {начало сегмента в строке А});
 CopyMemory(Pointer(B), P, 5 {длина сегмента});



 
Leonid Troyanovsky ©   (2005-08-22 11:58) [3]


> Вжжжик   (22.08.05 11:55) [2]

>  CopyMemory(Pointer(B), P, 5 {длина сегмента});


Move.

--
Regards, LVT.


 
Fanny   (2005-08-22 12:13) [4]

то есть
B := Copy(A,0,Length(A))
должно работать ?

а есть разница между Length(A) и SizeOf(A) ?


 
jack128 ©   (2005-08-22 13:02) [5]

Fanny   (22.08.05 12:13) [4]
а есть разница между Length(A) и SizeOf(A) ?

есть. А - суть указатель, размер его - 4 байта. Length(A) - это длина строки.


 
Игорь Шевченко ©   (2005-08-22 13:06) [6]


> B := Copy(A,0,Length(A))
> должно работать ?


Строки вообще-то с первого символа начинаются, а не с нулевого.


 
Fanny   (2005-08-22 15:18) [7]

всем спасибо



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

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

Наверх




Память: 0.48 MB
Время: 0.026 c
14-1128364792
Darkwing
2005-10-03 22:39
2005.10.23
Книга про базы данных в Delphi


3-1126646105
TALLA
2005-09-14 01:15
2005.10.23
MySQL через ADO, invalid field size


2-1128005225
SergP.
2005-09-29 18:47
2005.10.23
Сохранить и загрузить из файла информацию из массивов


2-1128239239
elysee
2005-10-02 11:47
2005.10.23
CSV(MS-DOS)


14-1128254007
Piter
2005-10-02 15:53
2005.10.23
Подскажите адреса серверов eMule