Сложно ли перейти от Visual Basic к Builder C++

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Patrikei
Сообщения: 1
Зарегистрирован: 15 июн 2004, 02:52

Уважаемые посетители форума подскажите, на сколько труден переход от VB к Builder’у

Один из интересующих вопросов – Массивы строковые и числовые
с динамически меняющимися размерами.
Как это выглядит в Builder? если кто знает VB пример:

Dim Array() as String ‘Объявление строкового массива с динамическими границами

ReDim Array(3) ‘ Изменение размера массива

Array(1)=”Vsem privet!”
Array(2)=”Kak dela?”
Array(3)=”Poka.”

ReDim Preserve Array(1) ‘ Изменение размера, но с сохранением содержимого попадающего под диапазон

Как все это будет выглядить в Buider’е
Цель жизни легко перейти от VB к Builder'у
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Билдер является языком более низкого уровня абстракции, чем VB. Потому придётся повозиться с адрессацией и выделением памяти в таких случаях.

Код: Выделить всё

char ** ppStringArray; //Объявление строкового массива с динамическими границами

ppStringArray = new char * [3];

ppStringArray[0] = "..";
ppStringArray[1] = "..";
ppStringArray[2] = "..";

delete [] ppStringArray; // Удаляем выделенный массив указателей на строки
Для того, чтобы изменить размер массива и сохранить при этом содержимое, попадающее в диапазон - придётся воспользоваться промежуточным массивом и в цикле переприсваивать ссылки. Код писать лень - и так ясно как это делается.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
zeus
Сообщения: 16
Зарегистрирован: 30 апр 2004, 15:05
Откуда: Olimp
Контактная информация:

если со строками то:

Код: Выделить всё

TStringList* List=new TStringList;
List->Add("Vsem privet!");
List->Add(”Kak dela?”);
List->Add(”Poka.” );
//размер - 3
List->Delete(1);
List->Delete(1);
//размер - 1
%)
а в общем случае использутся связные списки вида:

Код: Выделить всё

class a
{
          //содержимое
          a* pNext; //указатель на следующий элемент по умолчанию NULL
};
Нет бога, кроме процессора и ассемблер - пророк его.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Если речь едёт не о базовых возможностях языка, то так же неплохо использовать STL.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Vasilisk
Сообщения: 116
Зарегистрирован: 13 фев 2004, 18:43

Вообще-то, сишник он и есть сишник. Т.е. builder - не язык, а средство генерации сишника...
Ответить