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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.05 c
1-1141199372
Ньюб2
2006-03-01 10:49
2006.04.02
Чтение/запись 8 байт в материнке


15-1142318332
iamdanil
2006-03-14 09:38
2006.04.02
Cкачать Delphi


15-1141583271
pasha_golub
2006-03-05 21:27
2006.04.02
Минусовка Metallica "Nothing Else Matters"


1-1140902492
Grol
2006-02-26 00:21
2006.04.02
Умолчать о ошибке после закрытия программы


3-1138969011
GLFox
2006-02-03 15:16
2006.04.02
Firebird+модем





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