Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Мысщъ
0 / 0 / 0
Регистрация: 25.02.2007
Сообщений: 37
#1

Вопрос по реализации буфера

18.08.2008, 13:45. Просмотров 1098. Ответов 5
Метки нет (Все метки)

Здравствуйте! Я все продолжаю свои мытарства в текстовым редактором и добрался вот до самого вкусного - как реализовать буфер и работу с ним. Но до работы еще далеко, пока пытаюсь заставить его работать.
Сейчас я пробую сделать его в виде массива типа vector. Сначала была идея сделать что-то типа vector<vector <char>>, но я не смог разобраться, каким образом изменять размер внутреннего вектора, и получился облом.
Вследствии этого возникает вопрос - либо как это сделать, либо может есть стандартный двумерный массив, в котором можно изменять размеры всех массивов?
Ну или просто посоветуйте, куда копать, а то я как-то растерялся
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.08.2008, 13:45
Ответы с готовыми решениями:

вопрос по реализации на C++
Условие: собственно сам вопрос: каким образом записать информацию о двух...

вопрос по реализации ассоциативного контейнера
здравствуйте. есть задание по курсовой: Реализовать класс ассоциативного...

Отделение интерфейса от реализации класса: компиляция кода реализации
Доброго времени суток, У меня возникла проблема с отделением интерфейса от...

Вопрос по способу реализации
Вопрос по способу реализации на VS C# 2008. Значит задумка такая у меня. из...

Вопрос по реализации вывода ошибок
Здравствуйте. Подскажите как реализовывать обработку ошибок. Например,...

5
SVEN
10 / 10 / 7
Регистрация: 25.03.2008
Сообщений: 50
20.08.2008, 16:16 #2
Изложи подробно суть проблемы, в особенности поясни зачем понадобился именно двумерный буфер.

Не до конца понял суть проблемы, но если нужен двумерный массив с переменными размерами могу посоветовать следующую структуру:
C++
1
2
3
4
5
6
struct buff
{
size_t size; //размер внутреннего буфера
void* body; //тело внутреннего буфера
Type type; //enum по которому идентифицируешь тип данных в body
};
а дальше
C++
1
std::vector<buff> buffer;
0
Spo1ler
293 / 53 / 5
Регистрация: 22.05.2008
Сообщений: 788
20.08.2008, 18:26 #3
я так понял надо стандартное меню, типа Copy, Past и тд?
0
Мысщъ
0 / 0 / 0
Регистрация: 25.02.2007
Сообщений: 37
20.08.2008, 18:40  [ТС] #4
пишу я консольный текстовый редактор. И понадобился двумерный массив для того, что бы редактировать файл, т.е. загнал данные в массив, в массиве их обработал, потом перезаписал в файл.
Переменные размеры нужны для того, что бы не транжирить память, потому как сделать двумерный массив фиксированной длины - ну совершенно не проблема, как и организовать построчную запись в него данных из файла (в настоящий момент оно так и есть, массив типа char)
по пути кстати возникли еще какие-то неясные проблемы с winuser.h
попробовал сделать тестовый вариант функции, котороя будет отвечать за обработку нажатых пользователем клавиш при редактировании содержимого файла.
код самой функции такой:
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
void test_func()
    {
        if(WM_KEYDOWN)
        {
            switch (wParam):
                case VK_LEFT:
                    {
                        cout << "Left arrow";
                        break;
                    }
                case VK_RIGHT:
                    {
                        cout << "Left arrow";
                        break;
                    }
                case VK_UP:
                    {
                        cout << "Up arrow";
                        break;
                    }
                case  VK_DOWN:
                    {
                        cout << "Down arrow";
                        break;
                    }
        }
    }
при поптыке компиляции выдает 13 ошибок, приводит их не буду что бы не загромождать, но все - только на winuser.h
как-то мне боязно его править, если честно )
0
Spo1ler
293 / 53 / 5
Регистрация: 22.05.2008
Сообщений: 788
20.08.2008, 19:21 #5
и все таки приведите ошибки, просто юзайте тег CODE
0
Мысщъ
0 / 0 / 0
Регистрация: 25.02.2007
Сообщений: 37
21.08.2008, 16:12  [ТС] #6
ошибки следующие:
Код
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(42) : error C2146: syntax error : missing ';' before identifier 'HDWP'
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(42) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(42) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(43) : error C2146: syntax error : missing ';' before identifier 'MENUTEMPLATEA'
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(43) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(43) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(50) : error C2146: syntax error : missing ';' before identifier 'LPMENUTEMPLATEA'
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(50) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(50) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(58) : error C2065: 'CALLBACK' : undeclared identifier
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(58) : error C2065: 'WNDPROC' : undeclared identifier
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(58) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\program files\microsoft visual studio 8\vc\platformsdk\include\winuser.h(58) : fatal error C1903: unable to recover from previous error(s); stopping compilation
0
21.08.2008, 16:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2008, 16:12

Гиперссылки в ComboBox: вопрос реализации
привет всем) мне нужно из вылазиющих строчек в ComboBox сделать Гиперссылки на...

Вопрос о реализации множества отчетов
Мне необходимо создать множество отчетов в Access-е, форма самих отчетов...

1С8 вопрос по реализации идеи
Идея такая - нужно сделать ЧТО-ТО (пока просто сам не могу понять отчет или...


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

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

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