Текущий архив: 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.46 MB
Время: 0.052 c