Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.25;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.04 c
2-1194122176
SveTTT
2007-11-03 23:36
2007.11.25
подсчет строк в DbGridEh


1-1189017087
Fin
2007-09-05 22:31
2007.11.25
Как заполучить и в чём хранить 20 разрядное число ...


2-1193932102
AlexanderMS
2007-11-01 18:48
2007.11.25
Как прочитать первую строку из текстового файла?


15-1192354956
Stanislav
2007-10-14 13:42
2007.11.25
Сканер памяти (типа ArtMoney)


3-1184030234
binom82
2007-07-10 05:17
2007.11.25
unicod и DBGrid





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