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

Вниз

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

Наверх





Память: 0.47 MB
Время: 0.042 c
2-1200655402
_Shuler_
2008-01-18 14:23
2008.02.10
ХИНТ


2-1200415604
Michael
2008-01-15 19:46
2008.02.10
Преобразование word a в 2 byte a


2-1200661708
Alex_C
2008-01-18 16:08
2008.02.10
TColorDialog - убрать лишние цвета


9-1167271020
maxProg
2006-12-28 04:57
2008.02.10
Direct3D


6-1179909476
allucard
2007-05-23 12:37
2008.02.10
Как нажать кнопку в WebBrowser и выбрать раскрыв. список





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