Текущий архив: 2004.10.24;
Скачать: CL | DM;
ВнизВообще ничего не понимаю что происходит со значением переменной. Найти похожие ветки
← →
Hereticsoul © (2004-10-06 13:37) [0]Уважаемые мастера вот кусок кода:
//..................
type
Titems = record
ID: integer;
Name: string;
Access_Level: integer;
Parent_Number: integer;
Level: integer;
Number_In_Category: integer;
Comment: string;
Count: integer;
typ: integer;
replace: string;
end;
type
tnodes = record
count: integer;
item: ttreenode;
end;
//.............
var
aclevel, i: integer;
items: array[0..50] of titems;
nodes: array[0..500] of tnodes;
nodes1: array[0..500] of tnodes;
//...............
procedure TForm5.sButton1Click(Sender: TObject);
var
data: TIdMultiPartFormDataStream;
item, tmp,temps: string;
flg, x, flg1, i10: integer;
z, z1: ttreenode;
zzz:tstringlist;
begin
//...........здесь я получаю верную(!) строку item с разделителями
while pos("|", item) > 0 do
begin
items[flg].ID := strtoint(copy(item, 0, pos("|", item) - 1));
//showmessage(copy(item, 0, pos("|", item) - 1));
delete(item, 1, pos("|", item));
items[flg].Name := copy(item, 0, pos("|", item) - 1);
//showmessage(copy(item, 0, pos("|", item) - 1));
delete(item, 1, pos("|", item));
items[flg].Access_Level := strtoint(copy(item, 0, pos("|", item) - 1));
delete(item, 1, pos("|", item));
items[flg].Parent_Number := strtoint(copy(item, 0, pos("|", item) - 1));
delete(item, 1, pos("|", item));
items[flg].Level := strtoint(copy(item, 0, pos("|", item) - 1));
delete(item, 1, pos("|", item));
items[flg].Number_In_Category := strtoint(copy(item, 0, pos("|", item) - 1));
delete(item, 1, pos("|", item));
items[flg].Comment := copy(item, 0, pos("|", item) - 1);
delete(item, 1, pos("|", item));
items[flg].typ := strtoint(copy(item, 0, pos("|", item) - 1));
delete(item, 1, pos("|", item));
items[flg].replace := copy(item, 0, pos("|", item) - 1);
delete(item, 1, pos("|", item));
flg := flg + 1;
items[0].Count := items[0].Count + 1;
end;
x := 0;
nodes[0].count := 0;
nodes[1].count := 0;
for i := 0 to items[0].Count-1 do
begin
if items[i].Level = 0 then
begin
temps:=items[i].Name;
nodes[nodes[0].count].item := tree.Items.AddChild(z1, temps);
//!!!! и вот здесь значение переменной
items[items[0].count-1].Name принимает вид что-то вроде " ¬C XIІ xµ 8 яяяяяяяя & { " - набор непонятных символов. nodes1[nodes[0].count].item := nodes[nodes[0].count].item;
nodes[0].count := nodes[0].count + 1;
nodes1[0].count := nodes1[0].count + 1;
nodes1[nodes[0].count].item := tree.Items.AddChild(nodes[nodes[0].count - 1].item, "1");
nodes1[0].count := nodes1[0].count + 1;
nodes1[nodes[0].count].item := tree.Items.AddChild(nodes[nodes[0].count - 1].item, "2");
nodes1[0].count := nodes1[0].count + 1;
end;
end;
ПОЧЕМУ????
← →
Семен Сорокин © (2004-10-06 14:35) [1]range check error выставь
← →
Hereticsoul © (2004-10-06 15:10) [2]Ой млин а это как?Простите за глупость.
← →
Hereticsoul © (2004-10-06 15:15) [3]Вообщем выставил ее и теперь он мне ее выдает в начале заполнения на строке
items[flg].ID := strtoint(copy(item, 0, pos("|", item) - 1));
← →
Семен Сорокин © (2004-10-06 15:20) [4]
> Hereticsoul © (06.10.04 15:15) [3]
> Вообщем выставил ее и теперь он мне ее выдает в начале заполнения
> на строке
>
> items[flg].ID := strtoint(copy(item, 0, pos("|", item) -
> 1));
flg вышел за границу массива items
← →
Amoeba © (2004-10-06 15:21) [5]
> items[flg].ID := strtoint(copy(item, 0, pos("|", item) -
> 1));
У строки нет символа с индексом 0. Счет начинается с 1.
RTFM!!!
← →
Hereticsoul © (2004-10-06 15:25) [6]I>
> У строки нет символа с индексом 0. Счет начинается с 1.
> RTFM!!!
А почему ошибку не выдает??
И когда ставлю 1 то первый знак строки куда-то подозрительно проподает
← →
Hereticsoul © (2004-10-06 15:26) [7]И вообще 0 это не индех а позиция каретки и она может быть нулевой
← →
Семен Сорокин © (2004-10-06 15:28) [8]
> Hereticsoul © (06.10.04 15:26) [7]
> И вообще 0 это не индех а позиция каретки и она может быть
> нулевой
не спорьте, а лучше почитайте справку по copy
← →
Amoeba © (2004-10-06 15:30) [9]
> Hereticsoul © (06.10.04 15:26) [7]
> И вообще 0 это не индех а позиция каретки и она может быть
> нулевой
Чушь городишь. В орешник захотелось? Позиция каретки здесь ни при чем. Этот параметр - индекс превого символа в строке, с которого начинается копируемый фрагмент. И он не может быть меньше единицы.
Читай справку по Copy до полного прояснения.
← →
ЮЮ © (2004-10-07 03:47) [10]>И когда ставлю 1 то первый знак строки куда-то подозрительно проподает
begin
//...........здесь я получаю верную(!) строку item с
разделителями
значит получаешь неверную(!) строку
← →
Hereticsoul © (2004-10-07 13:55) [11]Удалено модератором
Страницы: 1 вся ветка
Текущий архив: 2004.10.24;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.031 c