Вниз
Скачать: CL | DM;

Складование побайтно 2х чисел.   Найти похожие ветки 

 
The Sound ©   (2006-02-17 18:11) [0]

Привет. Реализовал тут:
[code]
endname2,endname3:string;
e2i,e3i:char;
j:byte;
et:integer;
ets:string;
<...>
endname2 := "12345678909876";
endname3 := "123456789098";
ets:="";

If Length(endname2) > Length(endname3) then
begin
j:=1;
repeat
 j:=j+1;
 e2i:=endname2[j];
 e3i:=endname3[j];
 et  :=strtoint(e2i)+strtoint(e3i);
 ets := ets + IntToStr(et);
until j=Length(endname2);
end;
[/code]

В краце: имеем 2 числа, например "1234" и "123".
Нужно считывать по байтно строчку, и складывать значение из 1-го числа, ко 2-му.
Результат заносить в отдельную переменную, и так, пока не закончиться строчка.
Я написал, на теории(на моей) всё должно нормально работать, в практике же, дельфя ругаеться =/ Подскажите в чём дело =/ И главное как исправить =)


 
Fay ©   (2006-02-17 18:14) [1]

>  дельфя ругаеться
Матом?


 
umbra ©   (2006-02-17 18:30) [2]


> endname2[j]

это не строка, это символ. Скорее всего, поэтому и ругается.


 
McSimm ©   (2006-02-17 18:31) [3]

Delphi не ругается, а сообщает программисту о том, что он ошибся и, чаще всего,  где его ошибка.

until j=Length(endname2);
последний символ endname2 не нужен?

Ошибка: при условии, что Length(endname2) > Length(endname3) вы можете выйти за пределы endname3.

j:=1;
repeat
j:=j+1; // начинаем со второго символа ?


 
Саунд   (2006-02-17 18:38) [4]

McSimm ©   (17.02.06 18:31) [3]
Delphi не ругается, а сообщает программисту о том, что он ошибся и, чаще всего,  где его ошибка.
Извеняюсь, делфи выдаёт ошибку. но к сожалению, где она - не говориться.


последний символ endname2 не нужен?
вы можете выйти за пределы endname3.
начинаем со второго символа ?

Это мелкие ошибки, я на них пока внимание не обратил, т.к. не работает сам процесс =(

umbra ©   (17.02.06 18:30) [2]
Непонимаю =/
endname2 - строчка, [j]- символ из той строчки =/

Ошибка кстатьи вот тут: et  :=strtoint(e2i)+strtoint(e3i);


 
McSimm ©   (2006-02-17 18:43) [5]


> вы можете выйти за пределы endname3.

Это не "мелкая" ошибка, а ошибка, которая приведет к поднятию исключения.
Вы бы текст ошибки хотя бы привели, если сами прочитать не хотите :)


>  e3i:=endname3[j];

Рискну предположить, что здесь все-таки происходит таинственная ошибка.
При попытке прочитать символ строки, находящийся за ее пределами


 
umbra ©   (2006-02-17 18:48) [6]


> Непонимаю =/

и не надо. это я сглупил


 
Саунд   (2006-02-17 19:09) [7]

McSimm ©   (17.02.06 18:43) [5]
Эх, не мой сегодня день.
Есчё раз спасибо за помощ. Всё поправил.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
1-1138970255
Ega23
2006-02-03 15:37
2006.03.05
Использование нескольких TActionList


9-1125601771
astro_m
2005-09-01 23:09
2006.03.05
работа с TV тюнером


2-1140007982
nordik
2006-02-15 15:53
2006.03.05
значение edit передать в формулу


3-1136982771
tytus
2006-01-11 15:32
2006.03.05
ХЕЛППП!!! BDEError Record/Key Deleted


1-1138477891
Gnobobel
2006-01-28 22:51
2006.03.05
Клонирование TPanel с содержимым.




   Наверх