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

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

Move


GanibalLector ©   (2008-01-18 15:34:00) 


type
 TLine = array[0..255] of AnsiChar;

procedure TForm1.Button18Click(Sender: TObject);
 var Arr:array [0..5] of TLine;
     Text:ShortString;
     I:Integer;
begin
 for I:=0 to Length(Arr)-1 do
 begin
   FillChar(Arr[I] ,SizeOf(TLine),#0);
   Arr[I] := '123456789';
   //
   Move(Arr[I],Text[1],SizeOf(TLine));
   Memo1.Lines.Add(Text);
 end;
end;


Не пойму что я делаю не правильно в Move


han_malign   (2008-01-18 16:15:00) [1]


>    Text:= String(Arr[I]);
>    Memo1.Lines.Add(Text);

Memo1.Lines.Add(Arr[I]);


GanibalLector   (2008-01-18 16:03:00) [2]

Спасибо!


Palladin   (2008-01-18 15:57:00) [3]

правильно


GanibalLector   (2008-01-18 15:56:00) [4]

Т.е. конечный вариант будет выглядеть так :

procedure TForm1.Button18Click(Sender: TObject);
 var Arr:array [0..5] of TLine;
     Text:ShortString;
     I:Integer;
begin
 for I:=0 to Length(Arr)-1 do
 begin
   FillChar(Arr[I] ,SizeOf(TLine),#0);
   Arr[I] := '123456789';
   //
   Text:= String(Arr[I]);
   Memo1.Lines.Add(Text);
 end;
end;

Я правильно понял ?


palva   (2008-01-18 15:49:00) [5]


> palva ©   (18.01.08 15:42) [4]

Мда. Был неправ.


Palladin   (2008-01-18 15:48:00) [6]

как зачем, что бы установить логическуюдлинну строки, у ShortString она хранится по адресу 0 (см [5])...


GanibalLector   (2008-01-18 15:46:00) [7]

2 Palladin
>да и размер TLine 256, а ShortString максимум 255

Исправил TLine = array[0..254] of AnsiChar;

>а размер Text Пушкин устанавливать будет?

не понял. а так понял разговор о SetLength...но не понял зачем.

Если не сложно, покажите как надо.
Спасибо


han_malign   (2008-01-18 15:43:00) [8]

Text[0]:= lstrlen(Arr[i]);

но
Text:= String(Arr[i]);
- было бы правильней...


palva   (2008-01-18 15:42:00) [9]

А компилятор разве на это не ругается? Я вижу два места, где он по-моему должен ругаться. Но не важно.
for I:=0 to Length(Arr)-1 do
здесь Length это длина массива в байтах, а не в элементах.


Palladin   (2008-01-18 15:41:00) [10]

а размер Text Пушкин устанавливать будет?


Palladin   (2008-01-18 15:41:00) [11]

да и размер TLine 256, а ShortString максимум 255


clickmaker   (2008-01-18 15:36:00) [12]

SizeOf(TLine)


Наверх

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