Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Enthusiast
3 / 3 / 2
Регистрация: 12.10.2012
Сообщений: 21

Ошибки во время исполнения программы

01.12.2012, 00:44. Показов 1362. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех форумчян.
Во время исполнения программы система выдает 2 ошибки (см. вложения).
Кто сталкивался с такими? Чем они могут быть вызваны. Подскажите опытные люди.
Миниатюры
Ошибки во время исполнения программы  
Изображения
 
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.12.2012, 00:44
Ответы с готовыми решениями:

Создание объектов во время исполнения программы
ну от должна вона работать,а не работает,викладою.там все далжно работать,нзнаю.там описание только к кнопке,и все,больше описаний...

Изменение значения Label во время исполнения программы
В поле edit ввожу строку, как реализовать подсчет длины строки в поле Label во время ввода(т.е. чтобы совместно с вводом изменялось и...

Разное время исполнения программы
"Баловался" с кодом питона и наткнулся на интересный результат: один и тот же код выполняется разное время. Почему так? Понятно, что...

11
angstrom
01.12.2012, 00:50
Название программы составляет коммерческую тайну?
Эти картинки ничем не помогут решению проблемы, а судя по тому как старательно затёрто название программы, код вы не выкладите. Единственное что можно сказать, идёт обращение в недопустимый адрес. К примеру, в не созданный объект или уже удалённый.
 Аватар для Enthusiast
3 / 3 / 2
Регистрация: 12.10.2012
Сообщений: 21
01.12.2012, 00:57  [ТС]
Цитата Сообщение от angstrom Посмотреть сообщение
Название программы составляет коммерческую тайну
нет, просто привычка такая.
Вот фрагмент кода:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const
  EnLetters: set of Char = ['a'..'z', 'A'..'Z'];
  Numbers: set of Char = ['0'..'9'];
var
  counter, CountOfNumInPw: Integer;
  EnLetter, Number: Char;
begin
  Result := '';
  if ChkCheckBoxState(cbEn) then
    for counter := 1 to pwLength do
    begin
      EnLetter := '0';
      while not (EnLetter in EnLetters) do
        EnLetter := chr(Random(58) + 65);
      Result := Result + EnLetter
    end;
  if ChkCheckBoxState(cbNum) then // Отсюда начинаются ошибки
    CountOfNumInPw := (pwLength * 40) div 100;
    for counter := 1 to CountOfNumInPw do
    begin
      Number := 'a';
      while not (Number in Numbers) do
        Number := chr(Random(10) + 48);
      Result[Random(Length(Result)+1)]:= Number
    end
end;
Ошибочную часть пометил, уверен что проблема в ней, так как проверял.
Программа генерирует строку из букв и чисел, со строкой справляется безотказно, а вот когда доходит дело до чисел..начинается -
3-4 строки генерируются нормально, а дальше уже ошибки.
0
angstrom
01.12.2012, 01:15
Не пробовали посмотреть содержимое Result в 24-ой строке?
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33421 / 21527 / 8240
Регистрация: 22.10.2011
Сообщений: 36,935
Записей в блоге: 12
01.12.2012, 01:16
Ты выбрал самый неудачный фрагмент для копирования сюда. Ни что такое ChkCheckBoxState, ни что такое cbNum из приведенного фрагмента неясно. Какой ты ждешь помощи? Телепатической?
0
 Аватар для Enthusiast
3 / 3 / 2
Регистрация: 12.10.2012
Сообщений: 21
01.12.2012, 01:27  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Ты выбрал самый неудачный фрагмент для копирования сюда
Вот пояснил основные моменты
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const
  EnLetters: set of Char = ['a'..'z', 'A'..'Z']; //Задается множество англ.букв
  Numbers: set of Char = ['0'..'9']; // и символов
var
  counter, CountOfNumInPw: Integer; //counter переменная для счета цикла, CountOfNumInPw - количество цифр в строке
  EnLetter, Number: Char;           //переменные которые будут содержать вставляемые символы
begin                                   //EnLetter - букву, Number - соответственно цифру
  Result := '';                         //Инициализируем результат
  if ChkCheckBoxState(cbEn) then        //Функция ChkCheckBox возращает логический результат проверки состояния флажка
                                            //cbEn.State.cbChecked
    for counter := 1 to pwLength do         //Цикл заполнения строки
    begin
      EnLetter := '0';                      { Каждый раз генерируется новая буква и добавляется  
      while not (EnLetter in EnLetters) do      к результату
        EnLetter := chr(Random(58) + 65);
      Result := Result + EnLetter           }
    end;
  if ChkCheckBoxState(cbNum) then           // Отсюда начинаются ошибки
    CountOfNumInPw := (pwLength * 40) div 100;  //Узнаем 40 процентов от длины строки
    for counter := 1 to CountOfNumInPw do   //И заполняем эти 40% числами
    begin                                   //При чем, положение чисел в строке опять же генерируется 
      Number := 'a';                            //рандомно
      while not (Number in Numbers) do
        Number := chr(Random(10) + 48);
      Result[Random(Length(Result)+1)]:= Number
    end
end;
Цитата Сообщение от angstrom Посмотреть сообщение
Не пробовали посмотреть содержимое Result в 24-ой строке?
Убираю без ошибок всё. Хм..
0
angstrom
01.12.2012, 01:27
У тебя ошибка в этой строке
Delphi
1
  Result[Random(Length(Result)+1)]:= Number
возможно генерирование 0, ну и соответственно запись в строку по 0-му смещению вызывает бардак.
Исправь так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const
  EnLetters: set of Char = ['a'..'z', 'A'..'Z'];
  Numbers: set of Char = ['0'..'9'];
var
  counter, CountOfNumInPw, I : Integer;
  EnLetter, Number: Char;
begin
  Result := '';
  if ChkCheckBoxState(cbEn) then
    for counter := 1 to pwLength do
    begin
      EnLetter := '0';
      while not (EnLetter in EnLetters) do
        EnLetter := chr(Random(58) + 65);
      Result := Result + EnLetter
    end;
 
  if ChkCheckBoxState(cbNum) then
    CountOfNumInPw := (pwLength * 40) div 100;
    for counter := 1 to CountOfNumInPw do
    begin
      Number := 'a';
      while not (Number in Numbers) do
        Number := chr(Random(10) + 48);
      I := Random(Length(Result)) + 1;
      Result:= Copy(Result, 1, I - 1) +  Number + Copy(Result, I, Length(Result));
    end;
end;
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33421 / 21527 / 8240
Регистрация: 22.10.2011
Сообщений: 36,935
Записей в блоге: 12
01.12.2012, 01:31
Цитата Сообщение от angstrom Посмотреть сообщение
У тебя ошибка в этой строке
До этой строки черт знает что может произойти в ChkCheckBoxState, текст которой автор упорно хочет сохранить в тайне. Например, допустим, что там проверяется состояние какого-то CheckBox-а, а cbNum (фиг знает где описанная, глобальная) просто имеет такое значение, что этого CheckBox-а не существует. Отсюда и вылезет AV с первого скриншота.
0
 Аватар для Enthusiast
3 / 3 / 2
Регистрация: 12.10.2012
Сообщений: 21
01.12.2012, 01:33  [ТС]
angstrom, огромнейшее спасибо. Не уследил.
Извиняюсь за нубство, я практикуюсь всего 2-ой день после теории.

Добавлено через 1 минуту
Цитата Сообщение от UI Посмотреть сообщение
ChkCheckBoxState
ChkCheckBoxState простая функция, созданная с целью повысить удобочитаемость кода.
Delphi
1
2
3
4
5
6
7
function ChkCheckBoxState(cb: TCheckBox): Boolean;
begin
  if (cb.State = cbChecked) then
    Result := True
  else
    Result := False
end;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33421 / 21527 / 8240
Регистрация: 22.10.2011
Сообщений: 36,935
Записей в блоге: 12
01.12.2012, 01:35
Это никому не нужная функция, выбрось ее. Она только ухудшает код.
Delphi
1
2
  if cbNum.State = cbChecked then
    CountOfNumInPw := (pwLength * 40) div 100;
ничем не хуже, зато сразу понятно, что происходит.
1
angstrom
01.12.2012, 01:35
Неудобный код, так сделай:
Delphi
1
2
3
4
function ChkCheckBoxState(cb : TCheckBox) : Boolean;
begin
  Result := cb.Checked;
end;
 Аватар для Enthusiast
3 / 3 / 2
Регистрация: 12.10.2012
Сообщений: 21
01.12.2012, 01:39  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Это никому не нужная функция, выбрось ее. Она только ухудшает код.
Спасибо, учту при написании кода.

Добавлено через 56 секунд
angstrom, еще раз спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.12.2012, 01:39
Помогаю со студенческими работами здесь

Определение функции во время исполнения программы
Добрый день! Прошу помощи. Скажите, реально ли определить функцию во время исполнения программы? Задача вообще такова: есть набор...

Как-нибудь можно предотвратить ошибки типа UNKNOWN IDENTIFIER во время исполнения?
Нормальной ide для кодинга на питоне нет, поэтому приходится работать в обычном редакторе с подсветкой синтаксиса. Поэтому я регулярно...

Оценить время исполнения программы, собственные команды
Нашел старую задачу, долго над ней думал, кое-что наработал, но не решил Реализовал почти все команды, но как сделать loop не могу...

Как определить платформу во время исполнения программы?
Коллеги ! Кто знает, как во время исполнения программы на Java определить под какой операционкой она работает: Windows, Unix или Linux ?

boost threads - время исполнения программы флуктуирует. Почему?
Есть программа, написанная с использованием библиотеки boost-threads. Программа параллельно считает интеграл. Имеется 2 нити исполнения,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru