Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1139557789
antonn
2006-02-10 10:49
2006.03.05
небольшой вопросик по Java-скрипту


3-1136539564
tytus
2006-01-06 12:26
2006.03.05
Record/Key deleted


15-1139584213
ZeFiR
2006-02-10 18:10
2006.03.05
rtl70.bpl


1-1138383603
Дмитрий_177
2006-01-27 20:40
2006.03.05
Рамка в Image и цвет пикселя в точке


1-1138982654
Apollon_604
2006-02-03 19:04
2006.03.05
Прозрачность компонент





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