Главная страница
    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.036 c
9-1087477228
Sormy
2004-06-17 17:00
2004.10.24
Как преобразовывать палитры цветов?


1-1097549094
VAV
2004-10-12 06:44
2004.10.24
Контейнер для текстов


14-1097072739
infom
2004-10-06 18:25
2004.10.24
Где взять функция, которая парсит запрос ?


3-1096194063
Merfi
2004-09-26 14:21
2004.10.24
Запрос(Query)


1-1096978895
Kiwork
2004-10-05 16:21
2004.10.24
Контекстное меню TWebBrowser не работает





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