Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
6-1091797258
Дмитрий Ботвин
2004-08-06 17:00
2004.10.24
Создание общего ресурса


6-1092291016
RomanAD
2004-08-12 10:10
2004.10.24
Подключение к Active Directory


1-1097513743
Shved
2004-10-11 20:55
2004.10.24
Путь к файлам


1-1097392068
lid
2004-10-10 11:07
2004.10.24
MDI


1-1097064080
Vikont
2004-10-06 16:01
2004.10.24
Проблема открытия отчета в FastReport





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