Форум: "Основная";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
ВнизОпределение длины стринга Найти похожие ветки
← →
ORMADA (2003-10-10 12:15) [0]Есть стринг
str :string[8];
на начальном этапе он пустой =>length(str)=0
а как поучить реальный размер этой переменной т.е. 8 ?
← →
Skier (2003-10-10 12:16) [1]>ORMADA © (10.10.03 12:15)
SizeOf()
← →
Verg (2003-10-10 12:18) [2]high(Str)
← →
ORMADA (2003-10-10 12:19) [3]thanks Skier но надо писать почему то
sizeof(str)-1
← →
Skier (2003-10-10 12:22) [4]>ORMADA © (10.10.03 12:19) [3]
1) Лучше писать Verg © (10.10.03 12:18) [2]
2) Лучше не называть переменную str
← →
Skier (2003-10-10 12:33) [5](посыпает голову пеплом) - мой первый пост, считать глупостью !
← →
ORMADA (2003-10-10 12:36) [6]верно high возвращает то что нужно простоя я раньше дамал что high только к массивам относиться а по поводу имнования это ваще отбалды для примера
thanks=>Skier
← →
Anatoly Podgoretsky (2003-10-10 12:39) [7]ORMADA © (10.10.03 12:19) [3]
а реальный размер этой переменной 9
← →
Verg (2003-10-10 12:40) [8]
The standard functions High and Low operate on short-string type identifiers and variables. High returns the maximum length of the short-string type, while Low returns zero.
(C) Delphi Help
← →
ORMADA (2003-10-10 12:41) [9]=>Anatoly Podgoretsky ПОЧЕМУ ?????????? из-за нумерации с 0 ?
← →
Johnmen (2003-10-10 12:55) [10]>Skier © (10.10.03 12:33)
Нет. Не глупость. Просто забыл учесть особенности типа.
Кстати, размер все равно будет получен на этапе компиляции.
← →
Skier (2003-10-10 12:57) [11]>Johnmen © (10.10.03 12:55) [10]
Нет. Я настаиваю ! :)
В контесте вопроса вполне хватит и High(...)
← →
sts (2003-10-10 12:59) [12]2 ORMADA © (10.10.03 12:41) [9]
1 -й байт - длина строки
← →
Плохиш_ (2003-10-10 13:00) [13]Skier © (10.10.03 12:57) [11]
В контесте вопроса 8 не есть реальный размер этой переменной
← →
ORMADA (2003-10-10 13:03) [14]=>Плохиш c чего ты взял ? вопрос
Есть стринг
str :string[8];
на начальном этапе он пустой =>length(str)=0
а как поучить реальный размер этой переменной т.е. 8 ?
8 и есть то что Я хочу получить т.е. то что стоит м/у []
← →
han_malign (2003-10-10 13:03) [15]>я раньше дамал что high только к массивам относиться
- а это и есть массив array[0..8]of char, только с дополнительной compiler magic...
← →
Verg (2003-10-10 13:04) [16]
> Плохиш_ (10.10.03 13:00) [13]
> Skier © (10.10.03 12:57) [11]
>
> В контесте вопроса 8 не есть реальный размер этой переменной
Ну если хочет человек иметь именно 8 из String[8] - пусть имеет. :)
Главное - знать чего хочешь.
← →
[lamer]Barmaglot (2003-10-10 13:18) [17]Ну и мои пять копеек...
procedure TForm1.Button1Click(Sender: TObject);
const
s: string="lamer";
var
p: pInteger;
begin
p:=@S[1];
Dec(p,1);
Edit1.text:=inttostr(p^);
end;
← →
ORMADA (2003-10-10 13:31) [18]А ка тогда это можно сделать по другому т.е. создать стринг длиной x символов пустых т.е." "
я делаю это так но
s:="";
for i := 1 to X do
s := s + " ";
может быть можно сделать как-нить иначе.
← →
Anatoly Podgoretsky (2003-10-10 13:33) [19]ORMADA © (10.10.03 13:03) [14]
Ну опять а реальный размер этой переменной 9, тебе нужен не размер переменной, а максимально возможную длину тексата, для этого один из двух приведенных вариантов, при том вариант с High предпочтительный, поскольку первый с -1 хакерский, основанный на знание текущей структуры такокой строки. А на внутреннм знание много народу погорело.
← →
Verg (2003-10-10 13:40) [20]
> может быть можно сделать как-нить иначе.
S:=StringOfChar(" ", X);
← →
[lamer]Barmaglot (2003-10-10 13:50) [21]бр-р-р-р
Может я чего не понимаю?
SetLength() установить размер строки.....
FillChar() Заполнить строку определенным символом, в твоем случае пробелом.
← →
ORMADA (2003-10-10 14:03) [22]thanks =>Skier,Verg ,[lamer]Barmaglot,Anatoly Podgoretsky за реальные советы!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.01 c