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

TFileStream и Abnormal program termination

15.05.2013, 15:21. Показов 1313. Ответов 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
8484 / 6151 / 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
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru