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

Ошибка: Project Project4.exe raised exception class EConvertError with message "Болонское" is not a valid date and time'

06.06.2019, 22:13. Показов 3016. Ответов 9

Студворк — интернет-сервис помощи студентам
При выскакивании ошибки, программа помечает 67-76 строку (Я сделал переносы чтобы было приятнее глазу, а так у меня 67-76 в одну строку, похожа на 33-ю строку кода).
В StringGrid я не использовал никаких Objects.
TDateTime - не использую вообще.
"Болонское" - это слово я использовал только в ComboBox1 и нигде больше.

Прошу, помогите решить проблему.

Другими методами не пользуюсь и не умею, а учиться не хватит времени. Потому прошу помочь разобраться и исправить не меняя слишком много. Я в Builder 6 начинающий и многого не знаю, потому прошу, по возможности, все корректировки пояснять.

Вот мой код (Поиск: По шаблону/Фильтр)

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <memory>
 
#include "Unit10.h"
#include "Unit2.h" // Окно с информационной таблицей
#include "Unit5.h" // Окно с итоговой таблицей
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm10 *Form10;
//---------------------------------------------------------------------------
__fastcall TForm10::TForm10(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm10::Button1Click(TObject *Sender)
{//Кнопка поиска
                                                    //col столбец    x
                                                   //row строка     y
    int g=1, s;
 
    if (Form2->Image10->Tag == 1)
    {
            
        for (int y = 1; y < Form2->StringGrid1->RowCount; y++)
        {
            for (int x = 0; x < Form2->StringGrid1->ColCount; x++)
            {
                if ((Form2->StringGrid1->Cells[1][y]==ComboBox1->Text)||(Form2->StringGrid1->Cells[2][y]==ComboBox2->Text)||(Form2->StringGrid1->Cells[3][y]==ComboBox3->Text)||(Form2->StringGrid1->Cells[4][y]==ComboBox4->Text)||(Form2->StringGrid1->Cells[5][y]==ComboBox5->Text))
                {
                    Form5->Show();
 
                    for (int i = 0; i < Form2->StringGrid1->ColCount; i++) // Загрузка 1-й строки (шапки)
                    {
                        std::auto_ptr<TStringList> Data(new TStringList);
 
                        Data->LoadFromFile("3.txt");
                        for(int i=0;i<Data->Count;i++)
                            {
                                Form5->StringGrid1->Rows[i]->Delimiter=L';';
                                Form5->StringGrid1->Rows[i]->DelimitedText= Data->Strings[i];
                            }
                    }
 
                    for (int i=0; i < Form2->StringGrid1->ColCount; i++)
                    {
                        Form5->StringGrid1->Cells[i][g] = Form2->StringGrid1->Cells[i][y];
                    }
                    g++;
                    x=Form2->StringGrid1->ColCount+1;
                }
            }
        }
    }
 
    if (Form2->Image11->Tag == 2)
    {
            
        for (int y = 1; y < Form2->StringGrid1->RowCount; y++)
        {
            for (int x = 0; x < Form2->StringGrid1->ColCount; x++)
            {
                if (((Form2->StringGrid1->Cells[1][y]==ComboBox1->Text)&&
                (Form2->StringGrid1->Cells[2][y]==ComboBox2->Text)&&
                (Form2->StringGrid1->Cells[3][y]==ComboBox3->Text)&&
                (Form2->StringGrid1->Cells[4][y]==ComboBox4->Text)&&
                (Form2->StringGrid1->Cells[5][y]==ComboBox5->Text))||
                ((Form2->StringGrid1->Cells[1][y]==(ComboBox1->Text==" "))&&
                (Form2->StringGrid1->Cells[2][y]==(ComboBox2->Text==" "))&&
                (Form2->StringGrid1->Cells[3][y]==(ComboBox3->Text==" "))&&
                (Form2->StringGrid1->Cells[4][y]==(ComboBox4->Text==" "))&&
                (Form2->StringGrid1->Cells[5][y]==(ComboBox5->Text==" "))))
                {
                    Form5->Show();
 
                    for (int i = 0; i < Form2->StringGrid1->ColCount; i++) // Загрузка 1-й строки (Шапки)
                    {
                        std::auto_ptr<TStringList> Data(new TStringList);
 
                        Data->LoadFromFile("3.txt");
                        for(int i=0;i<Data->Count;i++)
                            {
                                Form5->StringGrid1->Rows[i]->Delimiter=L';';
                                Form5->StringGrid1->Rows[i]->DelimitedText= Data->Strings[i];
                            }
                    }
 
                    for (int i=0; i < Form2->StringGrid1->ColCount; i++)
                    {
                        Form5->StringGrid1->Cells[i][g] = Form2->StringGrid1->Cells[i][y];
                    }
                    g++;
                    x=Form2->StringGrid1->ColCount+1;
                }
            }
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.06.2019, 22:13
Ответы с готовыми решениями:

Project Project1.exe raised exception class EConvertError with message is not a valid floating point value
Здраствуйте я пишу программцу Конвертор я ее почти доделал только выникла проблема я хочу чтобы выбивала моя ошибка нарисованая на фотошопе...

ProjectPract6P.exe raised exception class econverterror with message ''' is not a valid floating point value
Здравствуйте. При запуске появляется ошибка &quot;project Pract6P.exe raised class exception econverterror with message ''' is not a valid...

ProjectPract6P.exe raised exception class econverterror with message'''isnot a valid floating point value-C++ Buider 6.0
Здравствуйте. При запуске появляется ошибка &quot;project Pract6P.exe raised class exception econverterror with message ''' is not a valid...

9
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
06.06.2019, 22:44
AngelNochi,
похоже нужен полный код.

а что в том файле? Data->LoadFromFile("3.txt");


Цитата Сообщение от AngelNochi Посмотреть сообщение
x=Form2->StringGrid1->ColCount+1;
а здесь цикл закончится?
StringGrid-ы перед заполнением чистишь?
0
1 / 1 / 0
Регистрация: 20.05.2019
Сообщений: 4
06.06.2019, 22:53  [ТС]
Data->LoadFromFile("3.txt"); Здесь у меня шапка

В нем написана 1 строка: "Номер";Вид;Фирма;Длина;Вес;Тест

Конец цикла не x=Form2->StringGrid1->ColCount+1; а фигурная скобка "}"
Пока i не будет больше количества столбцов (Количество видно из 3.txt, а что в нем я написал) цикл не закончится.
Однако этот цикл просто вставляет то что нашел в новую таблицу.

Мог Вас не правильно понять, если так, прошу переформулировать вопрос или как-то конкретнее "надавить".

StringGrigы чистить не умею, потому не чищу...
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
06.06.2019, 23:02
после первого
C++
1
                if ((Form2->StringGrid1->Cells[1][y]==ComboBox1->Text)||(Form2->StringGrid1->Cells[2][y]==ComboBox2->Text)||(Form2->StringGrid1->Cells[3][y]==ComboBox3->Text)||(Form2->StringGrid1->Cells[4][y]==ComboBox4->Text)||(Form2->StringGrid1->Cells[5][y]==ComboBox5->Text))
выполнение в скобках заканчивается
C++
1
2
 g++;
                    x=Form2->StringGrid1->ColCount+1;
т.е. x=Form2->StringGrid1->ColCount+1
значит цикл (х) по условию прекратится.
потому что х>Form2->StringGrid1->ColCount;


и в цикле каждый раз будет загружаться файл?
C++
1
2
3
4
5
                    for (int i = 0; i < Form2->StringGrid1->ColCount; i++) // Загрузка 1-й строки (шапки)
                    {
                        std::auto_ptr<TStringList> Data(new TStringList);
 
                        Data->LoadFromFile("3.txt");
это лишнее.
1
1 / 1 / 0
Регистрация: 20.05.2019
Сообщений: 4
06.06.2019, 23:07  [ТС]
Мы присваиваем x значение Form2->StringGrid1->ColCount+1, мы не сравниваем и это не может закончить цикл.

Спасибо за советы. Но что на счет ошибки?
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
06.06.2019, 23:12
Цитата Сообщение от AngelNochi Посмотреть сообщение
Но что на счет ошибки?
а как я могу ее поймать?
нужен проект целиком.
чистить стрингрид можно так
C++
1
2
 for (int i=0; i<StringGrid1->RowCount; i++)
 StringGrid1->Rows->Clear();
1
Модератор
 Аватар для D1973
9926 / 6463 / 2457
Регистрация: 21.01.2014
Сообщений: 27,416
Записей в блоге: 3
07.06.2019, 08:19
Цитата Сообщение от lifeforce Посмотреть сообщение
StringGrid1->Rows->Clear();
C++
1
StringGrid1->Rows[i]->Clear();
2
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
07.06.2019, 08:35
Лучший ответ Сообщение было отмечено AngelNochi как решение

Решение

Цитата Сообщение от AngelNochi Посмотреть сообщение
что на счет ошибки?
Начиная с 72 строки вы сравниваете ячейки таблицы (тип String) с результатом сравнения текста комбобокса с пробелом (тип Bool), а это некорректно. "Болонское" встречается первым, поэтому такое сообщение (хотя смотрится не менее некорректно...).
1
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
07.06.2019, 12:03
Лучший ответ Сообщение было отмечено AngelNochi как решение

Решение

D1973, спасибо за поправку. писал на коленке, невнимательно.

Цитата Сообщение от AngelNochi Посмотреть сообщение
(Form2->StringGrid1->Cells[1][y]==(ComboBox1->Text==" ")
C++
1
(Form2->StringGrid1->Cells[1][y]==ComboBox1->Text)

ну а если надо сравнивать ComboBox1->Text с пустым местом то это так ComboBox1->Text==""


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
void __fastcall TForm10::Button1Click(TObject *Sender)
{//Кнопка поиска
                                                    //col столбец    x
                                                   //row строка     y
    int g=1, s;
                         std::auto_ptr<TStringList> Data(new TStringList); 
                        Data->LoadFromFile("3.txt");
                        for(int i=0;i<Data->Count;i++)
                            {
                                Form5->StringGrid1->Rows[i]->Delimiter=L';';
                                Form5->StringGrid1->Rows[i]->DelimitedText= Data->Strings[i];
                            }
                     
    if (Form2->Image10->Tag == 1)
    {
            
        for (int y = 1; y < Form2->StringGrid1->RowCount; y++)
        {
            for (int x = 0; x < Form2->StringGrid1->ColCount; x++)
            {
                if ((Form2->StringGrid1->Cells[1][y]==ComboBox1->Text)
                    ||(Form2->StringGrid1->Cells[2][y]==ComboBox2->Text)
                                        ||(Form2->StringGrid1->Cells[3][y]==ComboBox3->Text)
                    ||(Form2->StringGrid1->Cells[4][y]==ComboBox4->Text)
                    ||(Form2->StringGrid1->Cells[5][y]==ComboBox5->Text))
                {
                    for (int i=0; i < Form2->StringGrid1->ColCount; i++)
                    {
                        Form5->StringGrid1->Cells[i][g] = Form2->StringGrid1->Cells[i][y];
                    }
                    g++;
                    x=Form2->StringGrid1->ColCount+1;
                    Form5->Show();
                }
            }
        }
    }
 
    if (Form2->Image11->Tag == 2)
    {
            
        for (int y = 1; y < Form2->StringGrid1->RowCount; y++)
        {
            for (int x = 0; x < Form2->StringGrid1->ColCount; x++)
            {
                if (((Form2->StringGrid1->Cells[1][y]==ComboBox1->Text)&&
                (Form2->StringGrid1->Cells[2][y]==ComboBox2->Text)&&
                (Form2->StringGrid1->Cells[3][y]==ComboBox3->Text)&&
                (Form2->StringGrid1->Cells[4][y]==ComboBox4->Text)&&
                (Form2->StringGrid1->Cells[5][y]==ComboBox5->Text))
                ||
                ((ComboBox1->Text=="")&&
                (ComboBox1->Text=="")&&
                (ComboBox1->Text=="")&&
                (ComboBox1->Text=="")&&
                (ComboBox1->Text=="")))
                {
                    for (int i=0; i < Form2->StringGrid1->ColCount; i++)
                    {
                        Form5->StringGrid1->Cells[i][g] = Form2->StringGrid1->Cells[i][y];
                    }
                    g++;
                    x=Form2->StringGrid1->ColCount+1;
                    Form5->Show();
                }
            }
        }
    }
}
здесь будет ошибка?

Можно упростить выражение используя функцию.

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
80
 
#include <vcl.h>
#pragma hdrstop
#include <memory>
 
#include "Unit10.h"
#include "Unit2.h" // Окно с информационной таблицей
#include "Unit5.h" // Окно с итоговой таблицей
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm10 *Form10;
//---------------------------------------------------------------------------
__fastcall TForm10::TForm10(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
bool image(TImage **tag)
{
    bool r;
 if((*tag)->Tag == 1){
                if ((Form2->StringGrid1->Cells[1][y]==Form10->ComboBox1->Text)
                    ||(Form2->StringGrid1->Cells[2][y]==Form10->ComboBox2->Text)
                                        ||(Form2->StringGrid1->Cells[3][y]==Form10->ComboBox3->Text)
                    ||(Form2->StringGrid1->Cells[4][y]==Form10->ComboBox4->Text)
                    ||(Form2->StringGrid1->Cells[5][y]==Form10->ComboBox5->Text))
                    r=true;
                    else 
                    }
 if((*tag)->Tag == 2){
                if (((Form2->StringGrid1->Cells[1][y]==Form10->ComboBox1->Text)&&
                (Form2->StringGrid1->Cells[2][y]==Form10->ComboBox2->Text)&&
                (Form2->StringGrid1->Cells[3][y]==Form10->ComboBox3->Text)&&
                (Form2->StringGrid1->Cells[4][y]==Form10->ComboBox4->Text)&&
                (Form2->StringGrid1->Cells[5][y]==Form10->ComboBox5->Text))
                ||
                ((Form10->ComboBox1->Text=="")&&
                (Form10->ComboBox1->Text=="")&&
                (Form10->ComboBox1->Text=="")&&
                (Form10->ComboBox1->Text=="")&&
                (Form10->ComboBox1->Text=="")))
                    r=true;
                    else r = false;
                    }
return r;                   
}                   
//---------------------------------------------------------------------------
void __fastcall TForm10::Button1Click(TObject *Sender)
{//Кнопка поиска
                                                   //col столбец    x
                                                   //row строка     y
    int g=1;
                        std::auto_ptr<TStringList> Data(new TStringList); 
                        Data->LoadFromFile("3.txt");
                        for(int i=0;i<Data->Count;i++)
                            {
                                Form5->StringGrid1->Rows[i]->Delimiter=L';';
                                Form5->StringGrid1->Rows[i]->DelimitedText= Data->Strings[i];
                            }
                     
    if (image(&Image10) || image(&Image11))
    {
         for (int y = 1; y < Form2->StringGrid1->RowCount; y++)
        {
            for (int x = 0; x < Form2->StringGrid1->ColCount; x++)
            {
                {
                    for (int i=0; i < Form2->StringGrid1->ColCount; i++)
                    {
                        Form5->StringGrid1->Cells[i][g] = Form2->StringGrid1->Cells[i][y];
                    }
                    g++;
                    x=Form2->StringGrid1->ColCount+1;
                    Form5->Show();
                }
            }
        }
    }
}
1
1 / 1 / 0
Регистрация: 20.05.2019
Сообщений: 4
07.06.2019, 14:26  [ТС]
Цитата Сообщение от lifeforce Посмотреть сообщение
((Form10->ComboBox1->Text=="")&&
(Form10->ComboBox1->Text=="")&&
(Form10->ComboBox1->Text=="")&&
(Form10->ComboBox1->Text=="")&&
(Form10->ComboBox1->Text=="")))
Надо подправить
C++
1
2
3
4
5
((Form10->ComboBox1->Text=="")&&
(Form10->ComboBox2->Text=="")&&
(Form10->ComboBox3->Text=="")&&
(Form10->ComboBox4->Text=="")&&
(Form10->ComboBox5->Text=="")))
А так очень хорошо. Однако куда делать строка
Цитата Сообщение от lifeforce Посмотреть сообщение
void __fastcall TForm10::Button1Click(TObject *Sender)
, и я не понимаю, почему, по вашему мнению, ее можно заменить на
Цитата Сообщение от lifeforce Посмотреть сообщение
bool image(TImage **tag)
Добавлено через 7 минут
Ура! Все работает! Мне надо было просто заменить
Цитата Сообщение от AngelNochi Посмотреть сообщение
if (((Form2->StringGrid1->Cells[1][y]==ComboBox1->Text)&&
(Form2->StringGrid1->Cells[2][y]==ComboBox2->Text)&&
(Form2->StringGrid1->Cells[3][y]==ComboBox3->Text)&&
(Form2->StringGrid1->Cells[4][y]==ComboBox4->Text)&&
(Form2->StringGrid1->Cells[5][y]==ComboBox5->Text))||
((Form2->StringGrid1->Cells[1][y]==(ComboBox1->Text==" "))&&
(Form2->StringGrid1->Cells[2][y]==(ComboBox2->Text==" "))&&
(Form2->StringGrid1->Cells[3][y]==(ComboBox3->Text==" "))&&
(Form2->StringGrid1->Cells[4][y]==(ComboBox4->Text==" "))&&
(Form2->StringGrid1->Cells[5][y]==(ComboBox5->Text==" "))))
на
C++
1
2
3
4
5
6
7
8
9
10
if (((Form2->StringGrid1->Cells[1][y]==ComboBox1->Text)&&
(Form2->StringGrid1->Cells[2][y]==ComboBox2->Text)&&
(Form2->StringGrid1->Cells[3][y]==ComboBox3->Text)&&
(Form2->StringGrid1->Cells[4][y]==ComboBox4->Text)&&
(Form2->StringGrid1->Cells[5][y]==ComboBox5->Text))||
((Form10->ComboBox1->Text=="")&&
(Form10->ComboBox2->Text=="")&&
(Form10->ComboBox3->Text=="")&&
(Form10->ComboBox4->Text=="")&&
(Form10->ComboBox5->Text=="")))
Спасибо Вам большое, особенно nick42 и lifeforce, за помощь и отзывчивость!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.06.2019, 14:26
Помогаю со студенческими работами здесь

Ошибка: C++ Builder 6 Project Project1.exe raised exception class EClassNotFound with message 'Class TImage not found'
Здравствуйте. Ошибка: C++ Builder 6 Project Project1.exe raised exception class EClassNotFound with message 'Class TImage not found'. ...

Project Project1.exe raised exception class EConvertError with message ''' is not a valid floating point value'.
Project Project1.exe raised exception class EConvertError with message ''' is not a valid floating point value'. чьо такоє?...

Project project1.exe raised exception class EConvertError with message
procedure TForm1.Button1Click(Sender: TObject); const alfa:array of char = ('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й',...

Project project1.exe raised exception class EConvertError with message
Доброго времени суток! Прошу помочь с программой. После нажатия на кнопку действия, программа вылетает и пишет: &quot;Project...

Project5dpr.exe raised exception class econverterror with message ''' is not a valid floating point value
Здравствуйте. При запуске появляется ошибка &quot;project Project5dpr.exe raised class exception econverterror with message ''' is not a valid...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru