Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
11 / 11 / 12
Регистрация: 27.10.2014
Сообщений: 108
1

Не могу определить ошибку

20.11.2015, 23:40. Показов 372. Ответов 4
Метки нет (Все метки)

Здраствуйте.
Делаю работу, сделал без классов, теперь мучаюсь и переделываю под классы.
Есть задача подсчитать символы в тексте, и вывести их в стргрид.
У меня все работало в функциях, но тут почему то ошибка(Acces).
Как понял, ошибка доступа к чему-то.
Выручите, а то не могу понять в чем трабл.
Вот код:
Воспомогательные массивы:
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
using namespace std;
const int alph = 26;
char symbols[] = {
    '!'
    , '.'
    , ','
    , '#'
    , '?'
    , '@'
    , '%'
    , '^'
    , '&'//9
    , '*'
    , '('
    , ')'
    , '{'
    , '}'
    , '`'
    , '/'
    , '$'
    , '\ '
    , '®'
    , '©'
    , '-'
    , '_'
    , '+'
    , '='
};
const int countOfSymb = 25;
char alphabet[alph] = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' };
int counting[alph] = { 0 };
int countSymb[countOfSymb] = { 0 };
Header + main
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
class myText
{
private:
    AnsiString asText;
    int countOfWords;
public:
    myText(AnsiString txt)
    {
                asText=txt;
    }
    int countCols(int ptr[]);
    void countLetter();
 
};
int myText::countCols(int ptr[])
{
        int count = 0;
        for (int i = 0; i < countOfSymb; i++)
            if (ptr[i] != 0) count++;
        return count;
}
void myText::countLetter()
{
                if(asText.IsEmpty()){ShowMessage("Text edit is empty"); return;}
        char symbol;
        for (int i = 1; i < asText.Length(); i++)
        {
            bool checkedArr = false;
            symbol = asText[i];
            if (!isalpha(symbol) && symbol!=' ')
                        {
                for (int k = 0; k < countOfSymb; k++)
                {
                    if (symbol == symbols[k]) //проходимо по циклу, нашли той символ
                    {                      //збільшили інт масив
                          //    checkedArr = true;
                        countSymb[k]++;
                        break;
                    }
                }
                  //    if (!checkedArr) {}
                continue;
            }
        }
            int weightSymb = countCols(countSymb);
            Form1->SymbolTable->ColCount = weightSymb;
        if (weightSymb != 0)
        {
            for (int i = 0, j = 0; i < countOfSymb; i++)
            {
                if (countSymb[i] == 0) continue;
                else
                {
                        Form1->SymbolTable->Cells[j][0] = countSymb[i];
                        Form1->SymbolTable->Cells[j][1] = symbols[i];
                    j++;
                }
            }
                Form1->SymbolTable->Visible = true;
                Form1->SymbolTable->Width = 26 * weightSymb + 7;
        }
}
Main

C++
1
2
3
    AnsiString all=TextEdit->Text;
        myText *a=new myText(all);
        a->countLetter();
Добавлено через 11 минут
Нашел проблему
C++
1
Form1->SymbolTable->ColCount = weightSymb;
Та и вообще где есть приставка Form1-> выбивает ошибку.
что сделать что-бы оно видело тот стринггрид?

Добавлено через 3 минуты
Пофиксил, можете закрывать.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2015, 23:40
Ответы с готовыми решениями:

Ошибку не могу определить
вообщем ошибка странная не могу понять откуда она взялась Ошибка 6 error LNK2019: ссылка на...

Не могу определить ошибку
Добрый день\вечер. Было задание, из списка людей найти подходящего по заданной букве имени и...

Не могу определить ошибку (конкретизация шаблонной функции)
Всем привет. Есть шаблонная функция template&lt;typename T&gt; void Tree&lt;T&gt;::inTreeHelper(const T...

Не могу определить ошибку в коде. Написано все с книги
Написал код с книги, перепроверил. Xcode ругается, проверил в онлайн компиляторе, ошибка такая:...

4
1681 / 882 / 202
Регистрация: 25.11.2009
Сообщений: 1,799
20.11.2015, 23:41 2
У меня твой код работает без ошибок. Т. е. подсчитывает символы неверно, но прорамма не вылетает с ошибкой.
Уточни, какой текст вводишь в TextEdit и какие начальные размеры таблицы SymbolTable
0
11 / 11 / 12
Регистрация: 27.10.2014
Сообщений: 108
20.11.2015, 23:58  [ТС] 3
Да?
странно.
Я сделал что-бы оно подсчитывало в count массив в классе, а выводило уже просто с кнопочки.(так работает, но не очень устраивает)
Но как-то самому интересно, почему оно не может с класса всунуть в тот стрингрид значение, пробовал на другую кнопку поставить , другую функцию которая просто добавляет в стрингрид какой-то текст, и выскакивает та самая ошибка.
Все header файлы за инклюдил, но чето не могу всеравно понять.

Та просто, если в TextEdit(это у меня Мемо) ввожу букву, любую сразу , и нажимаю на кнопку сразу кик.
начальные размеры таблицы col-1,row-2.
То есть
C++
1
int weightSymb = countCols(countSymb);
подсчитывает сколько !0.
C++
1
Form1->SymbolTable->ColCount = weightSymb;
ну и тут расширяет до нужного размера

Добавлено через 8 минут
Только что увидел, что подсчитывает символы не верно, все оно норм подсчитывает, з чего ты взял?
0
16 / 16 / 10
Регистрация: 13.02.2013
Сообщений: 75
21.11.2015, 01:08 4
Цитата Сообщение от bi4ugan Посмотреть сообщение
Нашел проблему
C++Выделить код
1
Form1->SymbolTable->ColCount = weightSymb;
Если ты утверждаешь что проблема именно здесь, то попробуй StringGrid по указателю в конструктор передать
0
1681 / 882 / 202
Регистрация: 25.11.2009
Сообщений: 1,799
21.11.2015, 12:12 5
Цитата Сообщение от bi4ugan Посмотреть сообщение
Только что увидел, что подсчитывает символы не верно, все оно норм подсчитывает, з чего ты взял?
Посмотри внимательно, твоя программа не учитывает последний введённый символ. Правда, я для ввода использовал Edit, а не Memo. Если в Memo есть перенос на следующую строку, тогда это незаметно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2015, 12:12

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Двумерный массив. Поиск нулей.Не могу найти ошибку ошибку в коде
Вот,например массив 5 5 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 считываются два...

Не могу найти ошибку. Нажимаю на клавишу, выдает ошибку
uses ABCObjects,GraphABC; const Image_0 = '0_765e9_6a3e424a_S.png'; var...

Структура: Не могу понять, почему выдает ошибку и как собственно эту ошибку можно исправить?
Привет,не могу понять почему ошибку выдает и как сбстно эту ошибку можно исправить? #include...

Не могу найти ошибку в программе(для просмотра картинок):кнопка НАЗАД не работает(не становится активной) Найдите ошибку.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.