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

Вниз

Вообще ничего не понимаю что происходит со значением переменной.   Найти похожие ветки 

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

Наверх





Память: 0.48 MB
Время: 0.033 c
1-1097356874
fmaker
2004-10-10 01:21
2004.10.24
Как сделать форму которая икогда бы не смогла бы быть активной,


1-1097225113
Fynjy1984
2004-10-08 12:45
2004.10.24
Смешение цветов


1-1097059770
ALex B.
2004-10-06 14:49
2004.10.24
Помоготе с HINT!!!


1-1097451088
Optimizator
2004-10-11 03:31
2004.10.24
Событие


14-1095845490
olookin
2004-09-22 13:31
2004.10.24
Прогнозы на 2-й тур Лиги Чемпионов





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