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

Вниз

Move   Найти похожие ветки 

 
GanibalLector ©   (2008-01-18 15:34) [0]


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


 
clickmaker ©   (2008-01-18 15:36) [1]

SizeOf(TLine)


 
Palladin ©   (2008-01-18 15:41) [2]

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


 
Palladin ©   (2008-01-18 15:41) [3]

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


 
palva ©   (2008-01-18 15:42) [4]

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


 
han_malign ©   (2008-01-18 15:43) [5]

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

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


 
GanibalLector ©   (2008-01-18 15:46) [6]

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

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

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

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

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


 
Palladin ©   (2008-01-18 15:48) [7]

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


 
palva ©   (2008-01-18 15:49) [8]


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

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


 
GanibalLector ©   (2008-01-18 15:56) [9]

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

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;

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


 
Palladin ©   (2008-01-18 15:57) [10]

правильно


 
GanibalLector ©   (2008-01-18 16:03) [11]

Спасибо!


 
han_malign ©   (2008-01-18 16:15) [12]


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

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



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

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

Наверх




Память: 0.49 MB
Время: 0.023 c
2-1200905130
Max.66RUS
2008-01-21 11:45
2008.02.10
Очень срочно!!! Заплачу WMZ!!! Нужна помошь!!!


2-1200224535
Lotse
2008-01-13 14:42
2008.02.10
Вопрос о работе программы вне среды Delphi


15-1199361047
pufffff
2008-01-03 14:50
2008.02.10
произвольная перезагрузка компа


15-1199960045
Kold
2008-01-10 13:14
2008.02.10
второй монитор


15-1199546183
Сканер
2008-01-05 18:16
2008.02.10
Вас не раздражает когда "считывают" ?