Форум: "Начинающим";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
ВнизСкладование побайтно 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 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c