Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];

Вниз

Почему при записи в строковую переменную возникает ошибка?   Найти похожие ветки 

 
San1712   (2007-11-03 10:51) [0]

Почему при записи в строковую переменную возникает следующая ошибка "access violation at 0x004060e5: write of address 0x00030e04"
public
s:string;

var i:integer;
for i:=1 to StrToInt(Form2.Edit1.Text) do s:=s+Summa[random(Length(Summa))];


 
Reindeer Moss Eater ©   (2007-11-03 11:01) [1]

строка s не инициализирована


 
Reindeer Moss Eater ©   (2007-11-03 11:03) [2]

Точнее строка Summa пустая.


 
Leonid Troyanovsky ©   (2007-11-03 11:11) [3]


> Reindeer Moss Eater ©   (03.11.07 11:03) [2]

> Точнее строка Summa пустая.

Или random выдает 0.

--
Regards, LVT.


 
sniknik ©   (2007-11-03 11:27) [4]

> Или random выдает 0.
а в этом случае ошибка разве не "выход за граници массива"?

AV это у него скорее Form2 не создана в момент обращения.


 
Reindeer Moss Eater ©   (2007-11-03 11:41) [5]

здесь рандом не должен дать ноль


 
Reindeer Moss Eater ©   (2007-11-03 11:44) [6]

Хотя нет, вру.


 
Leonid Troyanovsky ©   (2007-11-03 11:56) [7]


> sniknik ©   (03.11.07 11:27) [4]

> а в этом случае ошибка разве не "выход за граници массива"?

Самое чудное, что в TD2006 во-ще никакой рантайм ошибки не возникает,
т.е. для x:= 0; summa[x] просто вернет #0 :)

Ну, конечно, если писать константу: summa[0], то компилятор выдаст
[Pascal Error] Unit1.pas(17): E2157 Element 0 inaccessible - use "Length" or "SetLength"

--
Regards, LVT.


 
oxffff ©   (2007-11-03 12:29) [8]


> Самое чудное, что в TD2006 во-ще никакой рантайм ошибки
> не возникает,
> т.е. для x:= 0; summa[x] просто вернет #0 :)


Если строка пустая, то будет попытка обращения к полю length у StrRec.


 
Leonid Troyanovsky ©   (2007-11-03 13:18) [9]


> oxffff ©   (03.11.07 12:29) [8]

> Если строка пустая, то будет попытка обращения к полю length
> у StrRec.

О.., вот оно вожделенное AV :)
Т.е., пустая строка и индекс 0.
Спасибо за разъяснения.

А про Range check error я напраслину погнал,
забыл ребилдить, sorry.

--
Regards, LVT.


 
San1712   (2007-11-03 14:06) [10]

Забыл указать что сумма у меня не строка а Summa array of char. Размер массива я потом высталяю SetLength.


 
San1712   (2007-11-03 14:09) [11]

Но когда происходит запись в строку s из массива, размер и содержимое массива определёно.


 
Leonid Troyanovsky ©   (2007-11-03 14:18) [12]


> San1712   (03.11.07 14:06) [10]

> Забыл указать что сумма у меня не строка а Summa array of char

Гы.
А больше ничего не забыл? Про Form2, например.
И почему "потом", если надо "до".

--
Regards, LVT.



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

Форум: "Начинающим";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.06 c
2-1194206035
неугомонный
2007-11-04 22:53
2007.11.25
цвет шрифта toolbutton


15-1192775222
zdm77
2007-10-19 10:27
2007.11.25
Забыл математику


15-1193027762
Моисеенко
2007-10-22 08:36
2007.11.25
RT11


15-1193199347
Riply
2007-10-24 08:15
2007.11.25
Потоки от Касперского.


3-1184003913
IMHO
2007-07-09 21:58
2007.11.25
SQLite 3





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