Главная страница
    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.45 MB
Время: 0.045 c
15-1141625540
Knight
2006-03-06 09:12
2006.04.02
Девчонки!!! Всех с наступающим!!!


2-1142499600
atmospheric
2006-03-16 12:00
2006.04.02
наследование класса


2-1142577578
worldmen
2006-03-17 09:39
2006.04.02
Прога D5 не печатает под XP


2-1142930771
pkm
2006-03-21 11:46
2006.04.02
Random.


9-1127285948
Kerk
2005-09-21 10:59
2006.04.02
Игра "Точки"





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