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

TFileStream и Abnormal program termination

15.05.2013, 15:21. Показов 1330. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть классы
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
class Street
{
public:
    string Contry;
    string City;
    string Street;
};
 
class Adress : public Street
{
public:
    string House;
    string Room;
};
 
class Human
{
public:
    string Imya;
    string Familia;
    string Otchestvo;
    TDateTime Birthday;
    bool Pol;
};
 
class Contact : public Human, public Adress
{
public:
    vector <string> MobilePhone;
    vector <string> HomePhone;
    vector <string> WorkPhone;
};
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
void __fastcall TForm1::openClick(TObject *Sender)
{
    if (OpenDialog1->Execute()) {
        TFileStream *fs = new TFileStream(OpenDialog1->FileName, fmOpenRead);
        fs->Position = soFromBeginning;
        do {
            Contact temp;
            fs->Read(&temp,sizeof(Contact));
            string a = temp.MobilePhone[0];
            TListItem *Item = ListView1->Items->Add();
            Item->Caption = (temp.Familia + " " + temp.Imya + " " + temp.Otchestvo).c_str();
            Item->SubItems->Add(temp.MobilePhone[0].c_str());
            Item->SubItems->Add(temp.HomePhone[0].c_str());
            Item->SubItems->Add(temp.WorkPhone[0].c_str());
            Item->SubItems->Add((temp.Contry + ", " + temp.City + ", " + temp.Street + " " + temp.House + "-" + temp.Room).c_str());
        } while (fs->Position < fs->Size);
 
        delete fs;
        fs = NULL;
    }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::saveClick(TObject *Sender)
{
    if (SaveDialog1->Execute()) {
        Contact temp2;
        temp2.Familia = "Бакаев";
        temp2.Imya = "Антон";
        temp2.Otchestvo = "Юрьевич";
        temp2.MobilePhone.push_back("+7(953)772-66-97");
        temp2.HomePhone.push_back("+7(4912)57-95-89");
        temp2.WorkPhone.push_back("");
        temp2.Contry = "Россия";
        temp2.City = "Рязань";
        temp2.Street = "Новоселов";
        temp2.House = "56";
        temp2.Room = "11";
 
        TFileStream *fs = new TFileStream(SaveDialog1->FileName, fmCreate);
        fs->Position = soFromBeginning;
        fs->Write(&temp2,sizeof(Contact));
 
        Contact temp1;
 
        temp1.Familia = "Белоусов";
        temp1.Imya = "Сергей";
        temp1.Otchestvo = "Михайлович";
        temp1.MobilePhone.push_back("+7(453)234-23-64");
        temp1.HomePhone.push_back("+7(4912)44-23-53");
        temp1.WorkPhone.push_back("+7(4912)34-23-64");
        temp1.Contry = "Россия";
        temp1.City = "Рязань";
        temp1.Street = "Новоселов";
        temp1.House = "50";
        temp1.Room = "96";
 
        fs->Write(&temp1,sizeof(Contact));
        delete fs;
        fs = NULL;
 
        fs = new TFileStream(SaveDialog1->FileName, fmOpenRead);
        fs->Position = soFromBeginning;
        do {
            Contact temp;
            fs->Read(&temp,sizeof(Contact));
            string a = temp.MobilePhone[0];
            TListItem *Item = ListView1->Items->Add();
            Item->Caption = (temp.Familia + " " + temp.Imya + " " + temp.Otchestvo).c_str();
            Item->SubItems->Add(temp.MobilePhone[0].c_str());
            Item->SubItems->Add(temp.HomePhone[0].c_str());
            Item->SubItems->Add(temp.WorkPhone[0].c_str());
            Item->SubItems->Add((temp.Contry + ", " + temp.City + ", " + temp.Street + " " + temp.House + "-" + temp.Room).c_str());
        } while (fs->Position < fs->Size);
 
        delete fs;
        fs = NULL;
    }
}
При запуске openClick происходит ошибка "Abnormal program termination", хотя при запуске saveClick все работает отлично. В чем может быть проблема?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.05.2013, 15:21
Ответы с готовыми решениями:

abnormal program termination
Здравствуйте. При выполнении лабы у меня возникла ошибка &quot;abnormal program termination&quot; в строчке if num1 == 0 и так далее, короче...

Abnormal program termination?
Суть в чем. Разбираю чужой код и нашел ошибку. Когда нажимаю кнопку вылетает «Abnormal program termination» Нашел где это...

Abnormal program termination
В общем возникает эта ошибка. Я даже знаю какая часть кода её вызывает, но изменить ничего не могу:( Если из кода убрать эту часть, то...

2
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.05.2013, 00:30
Редкостный бред ваш код однако, бегом выкидывать его на мусорку, а затем сразу браться читать книги...

Это на основе чего можно было придти к выводу что TFileStream выполняет сериализацию объектов класса С++ ?

Тут либо boost::serialization который не факт что работает в Builder, то ли писать ручками
( хотя не исключено что есть еще что-то кроме boost)
1
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 7
16.05.2013, 00:33  [ТС]
Avazart, уже выкинул и переписал по другому. Спасибо за ответ.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.05.2013, 00:33
Помогаю со студенческими работами здесь

Килоггер вызывает ошибку abnormal program termination
Доброго времени суток!!! Программа перехватывает нажатие на PrintScreen. В программе есть DLL библиотека с Хуками, которая и...

Проблема 'abnormal program termination' загрузки сохраненного в скомпилированной программе изображения
Здравствуйте, уважаемые форумчане, возникла дилемма, в довольно ёмкой программе (код которой могу предоставить) произошла ошибка:...

"Abnormal program termination" при закрытии формы
При закрытии формы вылетает сообщение &quot;Abnormal program termination&quot;, и проект закрывается. Форма вызывается, как: std::auto_ptr...

"Зависание" и затем Abnormal Program Termination
Есть структура с большим количеством переменных и функций, в т.ч. переменные AnsiString. Объявляется статический массив этой структуры. В...

Ошибка: "Abnormal program termination"
При закрытии формы появляется ошибка: &quot;Abnormal program termination&quot;. Unit1.h #ifndef Unit1H #define Unit1H ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru