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

Вниз

Как обойтись без 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.10.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.057 c
3-1126604417
Пытающийся
2005-09-13 13:40
2005.10.23
Помогите поднять SQL2000 Server


4-1124292871
ArtemESC
2005-08-17 19:34
2005.10.23
Убрать курсор


1-1127979875
Asmys Software
2005-09-29 11:44
2005.10.23
Ring-0


6-1120059597
olevacho_
2005-06-29 19:39
2005.10.23
Как Узнать адрес шлюза на компе в локальной сети


2-1127926187
gvv
2005-09-28 20:49
2005.10.23
DaysBetween





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский