Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/22: Рейтинг темы: голосов - 22, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 23

Access violation at address 32ABE860 in module cc32100mt.dll. read of address f8338338

15.03.2010, 18:00. Показов 4444. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
кто знает эту ошибку. При сохранении stringgrid в файл выдается критическая ошибка
Access volidation at address 32ABE860 in module cc32100mt.dll. read of address f8338338

Программа скомпилировалась успешно. А вот при нажатии на кнопку сохранить выдала ошибку.

Вот код:

C++
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include <Stdio.h>
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#include <iomanip.h>
#include <fstream.h>
#include <sstream.h>
 
 
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
struct btrud
{ char family [20];//фамилия
  char name [20];//имя
  char Patronymic [20];//отчество
  char pol [3];//пол
  char address [5];//адрес
  char speciality [10];//должность
  char experience[3];//стаж
  char education [20];//образование
  char phone [20];//телефон
};
btrud rabotnik[9];
FILE* f;
 
void __fastcall TForm1::N4Click(TObject *Sender) //Сохранение БД
{
int i;
//Ввод в структуру
for (i=0; i<=100; i++)
 
strcpy(rabotnik[i].family, AnsiString(StringGrid1->Cells[0][i+1]).c_str());
 
f=fopen("f:\\baza.txt","wb");
fwrite(rabotnik, sizeof(rabotnik), 1, f);
fclose(f);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.03.2010, 18:00
Ответы с готовыми решениями:

Access violation at address 501F084A in module vcl120.bpl. Read of address 00000374
Привет всем! Который день не могу продолжить работу с программой из-за такой ошибки: 'Access violation at address 501F084A in module...

Access violation at address 004A9FE5 in module 'Project1.exe'. Read of address 0003FFFC
Здравствуйте, помогите устранить ошибку, Access violation at address 004A9FE5 in module 'Project1.exe'. Read of address 0003FFFC. Вот...

Access violation at address 00404083 in module 'Projectl.exe'. Read of address 00000000.
Кинул на форму PasswordDlg, в главной форме вверху вписал #include &quot;PassWord.h&quot; и на формкриэйт главной формы вписал...

19
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
16.03.2010, 11:58
boris2010, а это так и надо, чтобы в массив из 9 элементов записывалось 100 элементов?
0
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 23
16.03.2010, 12:43  [ТС]
boris2010, а это так и надо, чтобы в массив из 9 элементов записывалось 100 элементов
нет, а что из за этого ошибка?
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
16.03.2010, 12:47
boris2010, а ты как думаешь?
Если памяти выделено на 9 элементов, а ты пишешь 100.
0
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 23
16.03.2010, 13:02  [ТС]
непомогло.вот сделал 9 элементов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void __fastcall TForm1::N3Click(TObject *Sender)//открыть БД
{
f=fopen("D:\\baza.txt","rb");
fread(rabotnik,sizeof(rabotnik), 1, f);
for(int i=0;i<10;i++)
{
    StringGrid1->Cells[0][i+1]=rabotnik[i].family;
    StringGrid1->Cells[1][i+1]=rabotnik[i].name;
    StringGrid1->Cells[2][i+1]=rabotnik[i].Patronymic;
    StringGrid1->Cells[3][i+1]=rabotnik[i].pol;
    StringGrid1->Cells[4][i+1]=rabotnik[i].address;
    StringGrid1->Cells[5][i+1]=rabotnik[i].speciality;
    StringGrid1->Cells[6][i+1]=rabotnik[i].experience;
    StringGrid1->Cells[7][i+1]=rabotnik[i].education;
    StringGrid1->Cells[8][i+1]=rabotnik[i].phone;
}
fclose(f);
}
Добавлено через 52 секунды
непомогло вот сделал 9 элементов
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::N4Click(TObject *Sender) //Сохранение БД
{
int i;
 for (i=0; i<10; i++)
 
strcpy(rabotnik[i].family, AnsiString(StringGrid1->Cells[0][i+1].Length()).c_str());
 f=fopen("F:\\baza.txt","wb");
fwrite(rabotnik, sizeof(rabotnik),1, f);
 
fclose(f);
}
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
16.03.2010, 13:04
boris2010, с арифметикой как?
От нуля включительно до десяти исключительно сколько элементов?
Подсказка: 10.
0
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 23
16.03.2010, 13:23  [ТС]
for (i=0; i<12; i++)ошибка
for (i=0; i<11; i++)ошибка
for (i=0; i<10; i++)ошибка
for (i=0; i<9; i++)ошибка
for (i=0; i<8; i++)ошибка
может в этом ошибка
C++
1
fwrite(rabotnik, sizeof(rabotnik),1, f);
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
16.03.2010, 13:58
Может, надо проверить, что файл открылся?
C++
1
2
3
4
if (f)
{
  fwrite(rabotnik, sizeof(rabotnik),1, f);
}
0
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 23
16.03.2010, 14:07  [ТС]
спасибо,сейчас ошибку перестал выдавать, но ничего в файл не записывает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::N4Click(TObject *Sender) //Сохранение БД
{
int i;
 for (i=0; i<10; i++)
 
strcpy(rabotnik[i].family, AnsiString(StringGrid1->Cells[0][i+1].Length()).c_str());
 f=fopen("F:\\baza.txt","wb");
 if (f)
{
  fwrite(rabotnik, sizeof(rabotnik),1, f);
}
fclose(f);
}
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
16.03.2010, 14:16
Смотри, почему файл не открывается.
1) У тебя вообще нет диска F
2) В его корень тебе писать запрещено
3) Файл уже есть, и ты его чем-то держишь (открыл в просмотрщике, например)
0
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 23
16.03.2010, 15:45  [ТС]
эх намучаюсь я с этим сохранением файла
1) Файл создается
2) Записывается не то что нужно (вместо данных цифра 7) в файл

помогите пожалуйста!

Добавлено через 1 час 1 минуту
добился того что стало сохранять фамилию. А остальные данные из stringgrid не сохраняет
djn rjl
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void __fastcall TForm1::N4Click(TObject *Sender) //Сохранение БД
{
int i;
 for (i=0; i<10; i++)
 
strcpy(rabotnik[i].family, AnsiString(StringGrid1->Cells[0][i+1]).c_str());
 strcpy(rabotnik[i].name, AnsiString(StringGrid1->Cells[1][i+1]).c_str());
strcpy(rabotnik[i].Patronymic, AnsiString(StringGrid1->Cells[2][i+1]).c_str());
strcpy(rabotnik[i].pol, AnsiString(StringGrid1->Cells[3][i+1]).c_str());
strcpy(rabotnik[i].address, AnsiString(StringGrid1->Cells[4][i+1]).c_str());
strcpy(rabotnik[i].speciality, AnsiString(StringGrid1->Cells[5][i+1]).c_str());
strcpy(rabotnik[i].experience, AnsiString(StringGrid1->Cells[6][i+1]).c_str());
strcpy(rabotnik[i].education, AnsiString(StringGrid1->Cells[7][i+1]).c_str());
strcpy(rabotnik[i].phone, AnsiString(StringGrid1->Cells[8][i+1]).c_str());
 
 
f=fopen("F:\\baza.txt","wb");
 if (f)
{
  fwrite(rabotnik, sizeof(rabotnik),1, f);
}
fclose(f);
}
Добавлено через 6 минут
Спасибо всем вам. теперь все сохраняет. просто всавил for.
у меня появилась проблемка stringgrid сохраняет вот так имя-иван , фамилия - иванов
написал stringgrid имя - ИванИванов

как от этого избавиться. он вместе сливает слова?
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
16.03.2010, 16:08
А где видно, что получается ИванИванов ?
0
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 23
16.03.2010, 16:15  [ТС]
c++ builder в файл вместе так и почему то сохраняет. Вот пример содержимого файла

Иванов Иван Петрович мужМосквкассир 5 высшее 57654 Ветров Алексей Сидорович мужПетервоенный 4 среднее 89076

открывает он также слова вместе(город вообще последние бувы затер)

Добавлено через 44 секунды
++ builder в файл вместе так и почему то сохраняет. Вот пример содержимого файла

Иванов Иван Петрович мужМосквкассир 5 высшее 57654 Ветров Алексей Сидорович мужПетервоенный 4 среднее 89076

открывает он также слова вместе(город вообще последние бувы затер)
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
16.03.2010, 16:22
Ну сколько символов на город отвели, столько и сохранило.

Чтобы не сливались, надо отводить под символьные переменные на 1 символ больше, чем планируется вводить. Но тогда вместе с каждой строчкой будет храниться и завершающий 0. Если Вам критично, надо ставить дополнительную обработку. Если нет - просто сделайте поля больше размером.
0
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 23
16.03.2010, 16:35  [ТС]
под поля у меня отведено 20 символов если это вы имеете ввиду,см.ниже
C++
1
2
3
4
struct b
{
char family[20]
};
а вот про доп.обработку можно поподробнее

Добавлено через 5 минут
мой волшебный c++ нолики не ставит.И это хорошо. Увеличил длину строки и не стало урезать.
Доп.обработки нет.Думаю пока сойдет.
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
16.03.2010, 16:36
извините что вмешиваюсь, а не легче это все к БД подвязать, и тогда автоматом отпадут все косяки?
еще раз извините...
1
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
16.03.2010, 16:38
Так я думаю, задача чисто учебная - куда тут из пушки по воробьям
0
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 23
16.03.2010, 16:40  [ТС]
Спасибо вам всем за помощь. Если вам не трудно не подскажите как сортировать данные в StringGrid(фамилию).
есть только код для сортировки символьного массива. А как сортировать stringgris не могу понять.
C++
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
29
30
#include <iostream.h>
#include <conio.h>
const int n=10;
int main()
{
char mas[n],temp;
int i,j;
for(i=0;i<n;i++)
{
cout<<"mas["<<i<<"]= ";
cin>>mas[i]; cout<<endl;
}
cout<<"---"<<endl;
//------------------------------------------
for(i=0;i<n;i++)
{
temp=mas[i];
j=i-1;
while (j>=0& temp<mas[j])
{
mas[j+1]=mas[j];
j--;
}
mas[j+1]=temp;
}
for(i=0;i<n;i++)
cout<<mas[i]<<endl;
getch();
return(0);
}
как его можно переделать?
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
16.03.2010, 16:43
Цитата Сообщение от boris2010 Посмотреть сообщение
как сортировать данные в StringGrid(фамилию).
TStringGrid::Columns есть ни что иное как TStringList, у которого есть метод Sort()
точную информацию смотри в справке

Добавлено через 44 секунды
Цитата Сообщение от Black Fregat Посмотреть сообщение
Так я думаю, задача чисто учебная - куда тут из пушки по воробьям
подвязать аксессовский файлик.. делов то... какая уж тут пушка?
0
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 23
16.03.2010, 16:46  [ТС]
спасибо проблема с вашей помощью решилась. Можно эту тему теперь закрыть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.03.2010, 16:46
Помогаю со студенческими работами здесь

Ошибка Access violation at address XXXXXXX in module 'vcl240.bpl'. Read of address XXXXXX
Доброго времени суток. Проблема следующая: при определенной последовательности действий в приложении вылетает ошибка, работа приложения...

Access Violation at address in module read of address
Программа выдают ошибку, не могу устранить. На моем компьютере работает корректно, на чужих нет. Отменил галочку в...

Access violation at address in module. Read of address
Помогите пожалуйста разобраться с ошибкой #include &lt;vcl.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; #pragma hdrstop ...

Ошибка access violation at address in module borlndmm.dll write of address
Всем здравствуйте. Не могу побороть ошибку &quot;access violation at address in module borlndmm.dll write of address &quot;. Попробую объяснить....

Ошибка при динамической привязке dll библиотеки Access violation at address 00000000. Read of address 00000000
Добрый день В моем коде я динамически привязал библиотеку dll к приложению. При нажатии кнопки на форме, которая должна вызвать...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru