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

Вниз

Траблы с типами...   Найти похожие ветки 

 
Fenix ©   (2006-03-17 21:01) [0]

Доброе время суток. Чтото воизникла проблема с типами...
у меня структура
TUserInfo=record
UserAge:array [0..20] of char;
.......
end;
.....
Var
a:array of TUserInfo;

когда добавляю так:
a[i].UserAge:="25";
то все нормально.

а когда пытаюсь так:
a[i].UserAge:=edit1.text;
пишет ошибку: несовпадение типа Array и TCaption. Как мне это обойти?


 
Гаврила ©   (2006-03-17 21:51) [1]

Можно использовать для присвоения функции серии "StrCopy"А можно заменить
UserAge: array [0..20] of char;

на
UserAge: string[20];


 
palva ©   (2006-03-17 21:56) [2]

Попробуйте так:

  for k := 0 to 20 do begin
    if k >= Length(Edit1.Text) then begin
      a[i].UserAge[k] := Char(0);
      break;
    end;
    a[i].UserAge[k] := Edit1.Text[k+1]
  end;


 
Гаврила ©   (2006-03-17 22:08) [3]


> palva ©

Для этого и есть функция
function StrPLCopy(Dest: PChar; const Source: string; MaxLen: Cardinal): PChar;

Description

StrPLCopy copies up to a maximum of MaxLen characters from Source into the null-terminated string Dest. StrPLCopy returns a pointer to Dest.
--
То есть вызов такой:
StrPLCopy(a[i].UserAge, edit1.text, High(a[i].UserAge));


 
palva ©   (2006-03-17 23:49) [4]

Гаврила ©   (17.03.06 22:08) [3]
Да, вы правы.


 
palva ©   (2006-03-18 16:01) [5]

Хотя здесь есть небольшое различие. Функция не будет работать со строками длиной 21, а мой код будет:

{$APPTYPE CONSOLE}
uses SysUtils;
var
 a: array [0..20] of Char;
 s: String;
begin
 s := "123456789012345678901";
 StrPLCopy(a, s, High(a));
 WriteLn(a);  // 12345678901234567890
 a[20] := "1";
 WriteLn(a);  // 123456789012345678901
end.

Не знаю нужно ли это автору.


 
Fenix ©   (2006-03-18 16:06) [6]

пользуюсь
function StrPLCopy(Dest: PChar; const Source: string; MaxLen: Cardinal): PChar;
все идеально :)



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

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

Наверх




Память: 0.47 MB
Время: 0.043 c
15-1142136652
grisme
2006-03-12 07:10
2006.04.02
Quake 3 серверы


15-1141838657
Loginov Dmitry
2006-03-08 20:24
2006.04.02
Заморочка при разработке компонента


9-1127337583
Ricks
2005-09-22 01:19
2006.04.02
Люди, подскажите


15-1141385417
КаПиБаРа
2006-03-03 14:30
2006.04.02
А программисты программисты...


4-1137083617
Arazel
2006-01-12 19:33
2006.04.02
Перезагрузка системы без выхода в Out!