Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Массивы [D7]


Neket ©   (2007-01-04 16:46:00) 

Подскажите как можно присвоить массиву   szTip: array [0..63] of AnsiChar; обычную строковую переменную кроме как

s:='Wazuuuup!!!'
For i:=1 to length(s) do
szTip[i]:=s[i];


begin...end   (2007-01-04 17:32:00) [1]

StrLCopy(szTip, PChar(s), Pred(sizeof(szTip)))


ors_archangel   (2007-01-04 16:52:00) [2]

Должно работать такое

 Move(s[1],szTip[0],length(s)+1);

но лучше

if s = nil then
 szTip[0] := #0
else
 Move(s[1],szTip[0],length(s)+1);

иначе, если s - пустая строка, то в szTip будт не понять что, это можно игнорировать только если известно, что szTip проинициирован нулями (ведь нам нужен ASCIIZ, да?), а ещё лучше

if s = nil then
 szTip[0] := #0
else
 Move(s[1],szTip[0],max(length(s)+1,length(szTip)-1));

чтобы не было "переполнения", в этом случае при length(s) > length(szTip) получаем ASCIIZ, где конечный ноль будет записан в szTip[high(szTip)].
з.ы. Наверно, есть ещё методы, но этот хотя бы от ошибок защищён


Наверх

Титульная страница Поиск, карта сайта Написать письмо