Deutsch

Visual basic

384  1 2 3 все
lеший посетитель13.03.05 21:57
13.03.05 21:57 
Привет всем.
Хочу научится программировать, ради Hobby,
Нашол в нете множество Туториалов но не могу нигде найти саму программу.
Или она уге есть в Wondows.
Помогите начинаещиму.

#1 
Murr свой человек13.03.05 22:23
Murr
NEW 13.03.05 22:23 
в ответ lеший 13.03.05 21:57
Берись сразу за .NET
Хотя... к тому времени, когда ты научишься программировать и .NET
устареет и будет чем-нибудь заменен.
P.S. В комплекте Windows обычно идет web-сервер (IIS). Под ним ты
можешь попробовать ASP - читай VB для Web.
#2 
  validol свой человек13.03.05 23:02
NEW 13.03.05 23:02 
в ответ lеший 13.03.05 21:57
В Microsoft Word, Microsoft Excel, Microsoft Access
встроен VBA
******
#3 
Tomasson коренной житель25.03.05 10:45
Tomasson
NEW 25.03.05 10:45 
в ответ Murr 13.03.05 22:23
и .NET устареет и будет чем-нибудь заменен
вот поэтому, пусть начинает с java :-() :-)
та, выучит новый синтаксис и вперед :-)
.
#4 
Murr свой человек25.03.05 12:01
Murr
NEW 25.03.05 12:01 
в ответ Tomasson 25.03.05 10:45
А чем С# от Java отличается?
Отправлял бы сразу к нестареющему COBOL'у...
<--- nobody harmed in this action -->
#5 
Tomasson коренной житель25.03.05 15:35
Tomasson
NEW 25.03.05 15:35 
в ответ Murr 25.03.05 12:01
а ничем :-). Просто чтобы не пугать постоянно меняющимися названиями :-Р
Читал недавно, что MS готовит к выпуску новый язык. Замену для C#.
.
#6 
m_e_p_h_i_s_t_o прохожий28.03.05 01:24
m_e_p_h_i_s_t_o
NEW 28.03.05 01:24 
в ответ lеший 13.03.05 21:57
Начинать с VB категорически не советую.

1. Он устарел
2. Он изначально был кривой
3. Он стоит денег

Начни с Java. Приятный язык, все бесплатно.
Удобный транслятор качать здесь: http://snapshot.strana.de
#7 
toptop завсегдатай28.03.05 19:42
NEW 28.03.05 19:42 
в ответ m_e_p_h_i_s_t_o 28.03.05 01:24
В ответ на:

1. Он устарел


Язык не устарел. То что Microsoft хочет деньги за его поддержку, еще не означает, что на нем нельзя учиться программировать.

В ответ на:

2. Он изначально был кривой


Есть какие-то стандарты для измерения кривизны языка? Можно ссылочку?

В ответ на:

3. Он стоит денег


Совсем не обязательно, есть и бесплатные варианты.

#8 
nihlathak местный житель28.03.05 21:03
nihlathak
NEW 28.03.05 21:03 
в ответ toptop 28.03.05 19:42
Ребята, успокойтесь, Pascal лучше
#9 
voxel3d свой человек28.03.05 21:22
voxel3d
NEW 28.03.05 21:22 
в ответ toptop 28.03.05 19:42
>> 2. Он изначально был кривой
>Есть какие-то стандарты для измерения кривизны языка? Можно ссылочку?
Какие, нафик, стандарты? Естественно, он был изначально кривой! Какие парадигмы программирования он поддерживал?? Руки отрывать надо за такие языки. Там наследования даже не было. Приходилось агрегацией эмулировать. Это убожество работало со скоростью паровоза и код на н╦м приходилось уродский писать с бесконечными if-ами. Ограничение только на подключение ActiveX dll, использование variant там где надо и не надо, типизация вообще непонятно какая. На н╦м только домохозяек учить неправильному программированию.
А если говорить о VB.Net, это уже совсем другой язык, вполне вменяемый, возможности которого не уступают C#. Но синтаксис.. И ограничение одной единственной платформой.
---
Идиотов и фриков перевоспитать невозможно!
Dropbox - средство синхронизации и бэкапа файлов.
#10 
scorpi_ скептик29.03.05 02:51
NEW 29.03.05 02:51 
в ответ nihlathak 28.03.05 21:03
вот Паскаль-то и был с самого начала кривой, одни массивы чего стоят
I did it my way
#11 
nihlathak местный житель29.03.05 08:46
nihlathak
NEW 29.03.05 08:46 
в ответ scorpi_ 29.03.05 02:51
И чего они стоят? В Барсике это вообще уродство... Pascal самый подходящий язык для хобби - структурированный, легко читаемый, и как выше уже сказано не грешит variant'ами и с ООП нет проблем(это уже конечно от конкретного компилятора зависит)... так что может даже хобби и не накроется на первой же программе.
А если еще и Delphi взять...
#12 
Tomasson коренной житель29.03.05 11:01
Tomasson
NEW 29.03.05 11:01 
в ответ nihlathak 29.03.05 08:46
у меня получилось совсем наоборот:-)
Когда я учился еще в Киеве, Паскаль отбил у меня желание учиться программированию напрочь:-). А java опять вернула. Она была более понятна и логична что ли.
Хотя, может дело и не в языке было.
.
#13 
voxel3d свой человек29.03.05 11:28
voxel3d
NEW 29.03.05 11:28 
в ответ nihlathak 29.03.05 08:46
Эта священная война стара как мир.
---
Идиотов и фриков перевоспитать невозможно!
Dropbox - средство синхронизации и бэкапа файлов.
#14 
voxel3d свой человек29.03.05 11:40
voxel3d
29.03.05 11:40 
в ответ nihlathak 29.03.05 08:46
>И чего они стоят?
Очевидно, стоят они оверхэда на проверку нахождения индекса в допустимом диапазоне при обращении к элементу массива.
---
Идиотов и фриков перевоспитать невозможно!
Dropbox - средство синхронизации и бэкапа файлов.
#15 
nihlathak местный житель29.03.05 13:13
nihlathak
NEW 29.03.05 13:13 
в ответ voxel3d 29.03.05 11:40
Да... А Basic вообще супер быстрый Да и не в этом дело, можно же ведь и в стиле C организовать массив, указатели и в Паскале есть...
#16 
nihlathak местный житель29.03.05 13:15
nihlathak
NEW 29.03.05 13:15 
в ответ voxel3d 29.03.05 11:28
Basic & Pascal? Какая тут война? Это Паскаль с С++ пытается тягаться... точнее отдельные представители... хобби-программисты устроили разборку
#17 
scorpi_ скептик29.03.05 13:38
NEW 29.03.05 13:38 
в ответ voxel3d 29.03.05 11:40
Очевидно, стоят они оверхэда на проверку нахождения индекса в допустимом диапазоне при обращении к элементу массива.
Это не причина. Отсутствие динамических массивов, и то, что тип массива зависит от его размера - это причины, которые дисквалифицируют Паскаль в качестве серьёзного языка программирования.
Как там вообще нормальный контейнер-то сделать?
I did it my way
#18 
voxel3d свой человек29.03.05 13:55
voxel3d
NEW 29.03.05 13:55 
в ответ nihlathak 29.03.05 13:15
>Basic & Pascal? Какая тут война? Это Паскаль с С++ пытается тягаться...
Я имел в виду Pascal vs C.
А Pascal vs C++ это не серь╦зно. Pascal близко не стоял. Одни шаблоны -- достаточная причина, чтобы Pascal остался позади.
---
Идиотов и фриков перевоспитать невозможно!
Dropbox - средство синхронизации и бэкапа файлов.
#19 
voxel3d свой человек29.03.05 14:00
voxel3d
NEW 29.03.05 14:00 
в ответ scorpi_ 29.03.05 13:38
Как, как, через небезопасные привидения типов. То есть, через задницу.
п.с. Просто любопытно. Ты бустом пользуешься?
---
Идиотов и фриков перевоспитать невозможно!
Dropbox - средство синхронизации и бэкапа файлов.
#20 
scorpi_ скептик29.03.05 14:08
NEW 29.03.05 14:08 
в ответ voxel3d 29.03.05 14:00
Как, как, через небезопасные привидения типов. То есть, через задницу.
А в Паскале они были? Это в Дельфи появился тип Pointer...
п.с. Просто любопытно. Ты бустом пользуешься?
а как же Пользуюсь конечно.
I did it my way
#21 
toptop завсегдатай29.03.05 14:44
NEW 29.03.05 14:44 
в ответ voxel3d 28.03.05 21:22
В ответ на:

Руки отрывать надо за такие языки. Там наследования даже не было.


Тогда надо отрывать руки Кернигану, Ричи, Вирту и т.д.
Не путайте процедурные языки и объектно-ориентированные.

В ответ на:

... код на нём приходилось уродский писать с бесконечными if-ами.


Речь шла о Visual Basic, а в нем, как известно, есть и case, и while и другие управляющие констрикции.

В ответ на:

Ограничение только на подключение ActiveX dll


Он прекрасно работает и с CОМ, и с COM+.

В ответ на:

использование variant там где надо и не надо


Это характерузует программиста, а не язык.

В ответ на:

типизация вообще непонятно какая


Обычная Integer, Long, String usw. Что еще надо, чтобы встретить старость?

В ответ на:

На нём только домохозяек учить неправильному программированию.


Неправильному программированию можно научить на любом языке, а вот научить правильно программировать на том же басике, задача не простая.
А достоинства и недостатки есть в любом языке.

В ответ на:

А если говорить о VB.Net, это уже совсем другой язык, вполне вменяемый, возможности которого не уступают C#. Но синтаксис.. И ограничение одной единственной платформой.


Принципиальных отличий в синтаксисе не заметил, как впрочем к своему стыду не знаю других платформ кроме .NET, где работает C#

#22 
voxel3d свой человек29.03.05 15:02
voxel3d
NEW 29.03.05 15:02 
в ответ scorpi_ 29.03.05 14:08
Упс. Ни iso-7185, ни iso-102206 не описывают нетипизированный указатель.
Но у Борландов Pointer был ещ╦ до Delphi. В BP7 точно был.
Тогда попытка N2. Используя ассемблер. Что тоже через задницу.
---
Идиотов и фриков перевоспитать невозможно!
Dropbox - средство синхронизации и бэкапа файлов.
#23 
voxel3d свой человек29.03.05 16:57
voxel3d
NEW 29.03.05 16:57 
в ответ toptop 29.03.05 14:44
>Тогда надо отрывать руки Кернигану, Ричи, Вирту и т.д. Не путайте процедурные языки и объектно-ориентированные.
А я и не путаю. Кто, VB был процедурным?? А что там классы делают? Он поддерживал процедурную парадигму и кастрированно объектно-ориентированную.
>>код на н╦м приходилось уродский писать с бесконечными if-ами.
>Речь шла о Visual Basic, а в нем, как известно, есть и case, и while и другие управляющие констрикции.
Имеется в виду отсутствие наследования и полиморфизма, в результате чего его приходилось эмулировать, а вовсе не не отсутствие других конструкций ветвления.
>>типизация вообще непонятно какая
>Обычная Integer, Long, String usw. Что еще надо, чтобы встретить старость?
Классика:
Dim str As String
Dim n As Long
...
n = str
Ничего странного не видите?
А здесь:
Dim obj As Object
Din myobj As Object2
...
Set myobj = obj
Здесь если непонятно, опасное неявное преобразование от базового класса к наследнику.
>Неправильному программированию можно научить на любом языке, а вот научить правильно программировать на том же басике, задача не простая.
На каком-нибудь Питоне научить программированию и культуре программирования гораздо проще. А ВБ своей "упрощ╦нностью" научит писать непонятно как.
>Принципиальных отличий в синтаксисе не заметил, как впрочем к своему стыду не знаю других платформ кроме .NET, где работает C#
Так он только на дотнете и работает. Вот только .Net существует лишь в виндовсе.
---
Идиотов и фриков перевоспитать невозможно!
Dropbox - средство синхронизации и бэкапа файлов.
#24 
nihlathak местный житель29.03.05 17:06
nihlathak
NEW 29.03.05 17:06 
в ответ voxel3d 29.03.05 13:55
Ну ладно, согласен
А вот "одни шаблоны" ну зачем так Паскаль обижать? Что вот шаблоны одни, и все, Паскаль и не язык уже. Шаблоны не везде нужны, да и пользоваться ими не совсем просто, если задача не сводится к написанию класса вектора для float и int...
#25 
nihlathak местный житель29.03.05 17:09
nihlathak
NEW 29.03.05 17:09 
в ответ scorpi_ 29.03.05 14:08
п.с. Просто любопытно. Ты бустом пользуешься?
а как же Пользуюсь конечн

Видимо безостановочно пользуешься. В С++ тоже нет динамических массивов. Или возможность обращения через указатель с индексом автоматически делает из указателя массив?
#26 
voxel3d свой человек29.03.05 17:40
voxel3d
NEW 29.03.05 17:40 
в ответ nihlathak 29.03.05 17:06, Последний раз изменено 29.03.05 17:48 (voxel3d)
>Шаблоны не везде нужны
Kонтейнеры нужны практически всегда. Основанные на каком-нибудь TArrayList нетипобезопасны. Вот и все дела.
> да и пользоваться ими не совсем просто, если задача не сводится к написанию класса вектора для float и int...
Шаблоны не самая простая тема, но элегантность и мощь того, что получается при их использовании, стоят всех усилий. Вот, смотри, здесь текст читается из одного файла, преобразуется к нижнему регистру и записывается в другой:
#include <iterator>
#include <fstream>
using namespace std;
struct lower : unary_function<char,char>
{
char operator()(char c)const
{ return tolower(c,0); }
};
int main(int,char**)
{
ifstream is("source_file",0);
istream_iterator<char> ii(is),eos;
ofstream os("dest_file",0);
ostream_iterator<char> oo(os,0);
transform(ii,eos,oo,lower(),0);
return !is.eof() || !os;
}


что, слишком сложный код получился? Или слишком примитивный пример для демонстрации?
---
Идиотов и фриков перевоспитать невозможно!

Dropbox - средство синхронизации и бэкапа файлов.
#27 
voxel3d свой человек29.03.05 17:45
voxel3d
NEW 29.03.05 17:45 
в ответ nihlathak 29.03.05 17:09
std::vector<>, std::list<> вполне себе динамические массивы.
---
Идиотов и фриков перевоспитать невозможно!
Dropbox - средство синхронизации и бэкапа файлов.
#28 
toptop завсегдатай29.03.05 18:07
NEW 29.03.05 18:07 
в ответ voxel3d 29.03.05 16:57
В ответ на:

Он поддерживал процедурную парадигму и кастрированно объектно-ориентированную.


Я бы вообще убрал объектно-ориентированную, это была только попытка.

В ответ на:

Dim str As String
Dim n As Long
...
n = str


Как раз про это я речь и вел. Если научить человека, что нужно писать n=Clng(str), то он так и будет писать. Да, к сожалению, компилятор это проглатывал, не поперхнувшись, но BASIC то для других целей задумывался. Это сейчас он в ООП вырос.

В ответ на:

Вот только .Net существует лишь в виндовсе.


, а также в Linuxe и других ОСях под Моной.

#29 
scorpi_ скептик29.03.05 18:21
NEW 29.03.05 18:21 
в ответ voxel3d 29.03.05 17:40, Последний раз изменено 29.03.05 18:46 (scorpi_)
Вот только functor я несколько другой использую:
template< class Ch >
class lower : public std::unary_function< Ch, Ch >
{
std::locale const& loc_;
public:
lower( std::locale const& loc = std::locale() ) : loc_(loc) { }
Ch operator()( Ch c ) const
{
return std::tolower( c, loc_ ,0);
}
};


Почему не следует в данном контексте использовать сишную функцию

int tolower(int)

- читать здесь http://groups.google.com/groups?hl=de&lr=&threadm=5go4cs$10@netlab.cs.rpi.edu&rn...
(ещё один интересный топик на данную тему - http://groups.google.com/groups?hl=de&lr=&threadm=7tftn0$1a1$1@nnrp1.deja.com&rn...)
I did it my way

#30 
scorpi_ скептик29.03.05 18:42
NEW 29.03.05 18:42 
в ответ nihlathak 29.03.05 17:09
Видимо безостановочно пользуешься.
И каким же образом boost это меняет?
В С++ тоже нет динамических массивов.
Ну покажи мне аналог из Паскаля для new int[n] Или ещё лучше - запрограммируй в Паскале аналог std::vector
I did it my way
#31 
voxel3d свой человек29.03.05 18:43
voxel3d
NEW 29.03.05 18:43 
в ответ toptop 29.03.05 18:07
>Я бы вообще убрал объектно-ориентированную, это была только попытка.
ООП имеет право на существование. И много где его применение оправдано. Равно как и процедурного программирования. Уметь только процедурное программирование использовать, это глупо. Язык который имеет кривую поддержку ООП не предназначен для обучения. О ч╦м и говорилось.
>а также в Linuxe и других ОСях под Моной
Только, вот, проблемы у народа с переносимостью. Да и microsoft не имеет никакого отношения к mono, а когда они (microsoft) что-то поменяют в .Net-e вот, тогда совсем весло станет.
---
Идиотов и фриков перевоспитать невозможно!
Dropbox - средство синхронизации и бэкапа файлов.
#32 
scorpi_ скептик29.03.05 18:44
NEW 29.03.05 18:44 
в ответ nihlathak 29.03.05 17:06
Шаблоны не везде нужны, да и пользоваться ими не совсем просто, если задача не сводится к написанию класса вектора для float и int...
Использование != написание
А вообще мне сложно представить себе более-менее серьёзную программу не использующую стандартные контейнеры...
I did it my way
#33 
voxel3d свой человек29.03.05 18:47
voxel3d
NEW 29.03.05 18:47 
в ответ scorpi_ 29.03.05 18:21
Ок, понял, thanx.

---
Идиотов и фриков перевоспитать невозможно!
Dropbox - средство синхронизации и бэкапа файлов.
#34 
nihlathak местный житель29.03.05 19:42
nihlathak
NEW 29.03.05 19:42 
в ответ voxel3d 29.03.05 17:40
что, слишком сложный код получился? Или слишком примитивный пример для демонстрации?
Скорее второе, использовать STL довольно просто, можно даже не знать ничего о шаблонах. В принципе необходимость изобретения очередного велосипеда редко возникает... но я бы посмотрел на твою реализацию VoxelSTL
Где-то на середине книги Modern C++ я понял, что пора начинать читать ее заново. Ну да ладно, это лично моя проблема, не буду распространять на всех.
#35 
nihlathak местный житель29.03.05 19:45
nihlathak
NEW 29.03.05 19:45 
в ответ voxel3d 29.03.05 17:45
А я и не спорю. Вроде STL включена в стандарт? Но я говорил лишь про то, что если библиотека "случайно потеряется", то вместе с ней потеряются и динамические массивы. Компилятор сам по себе про них ничего не знает.
#36 
nihlathak местный житель29.03.05 19:52
nihlathak
NEW 29.03.05 19:52 
в ответ scorpi_ 29.03.05 18:42
И каким же образом boost это меняет?
Немного туманит голову, вот надо отнять у тебя boost и посмотреть что будет
Или ещё лучше - запрограммируй в Паскале аналог std::vector
На TP я за такую задачу не берусь, а вот на Object Pascal более-менее похожего инвалида можно сделать, конечно с большими ограничениями. Но я же не кричу, что Паскаль - язык всех времен и народов! Ну нет шаблонов... я не виноват
аналог из Паскаля для new int[n]
Если не придиратся к синтаксису, то особых проблем нет.
#37 
toptop завсегдатай29.03.05 20:15
NEW 29.03.05 20:15 
в ответ voxel3d 29.03.05 18:43
В ответ на:

Язык который имеет кривую поддержку ООП не предназначен для обучения.


Я учился по большой голубой С до Страуструпа и ничего живой.

В ответ на:

Да и microsoft не имеет никакого отношения к mono, а когда они (microsoft) что-то поменяют в .Net-e вот, тогда совсем весло станет.


Дело в том, что .NET был мелкомягкими застандартизован. Мона делается на основе стандарта. Если МС зарегистрирует новый стандарт, то мона тоже может дальше развиваться. Но глобальной революции в .NET пока не предвидиться.

#38 
scorpi_ скептик29.03.05 20:17
NEW 29.03.05 20:17 
в ответ nihlathak 29.03.05 19:52
Немного туманит голову, вот надо отнять у тебя boost и посмотреть что будет
ничего не будет. Вот если отнять standard library - тогда я обижусь не на шутку
Если не придиратся к синтаксису, то особых проблем нет.
Ни в стандартном паскале, ни в extended такого нет.
I did it my way
#39 
nihlathak местный житель29.03.05 20:31
nihlathak
NEW 29.03.05 20:31 
в ответ scorpi_ 29.03.05 20:17
ничего не будет. Вот если отнять standard library - тогда я обижусь не на шутку
Да? А в STL делегатов, например, нет Ничего страшного?
Ни в стандартном паскале, ни в extended такого нет.
Чего нет? new нет? Можно написать new(type, var). Только с type проблема. Можно было бы сделать TObject, но простые типы не выведены из класса, так что нужно или их переписать или делать дополнительную проверку - что передается. А возвращать видимо pointer придется... А кто сказал что легко будет?
#40 
scorpi_ скептик29.03.05 21:01
NEW 29.03.05 21:01 
в ответ nihlathak 29.03.05 20:31
0. Не смешивай Паскаль с Дельфи, плиз.
1. И в Дельфи динамические массивы появились только в четвёртой версии
2. В Дельфи пишется не new(type, var), а SetLength( var, size )
I did it my way
#41 
Murr свой человек29.03.05 21:31
Murr
NEW 29.03.05 21:31 
в ответ toptop 29.03.05 14:44
Принципиальных отличий в синтаксисе не заметил
---------
Хммм... Я бы все же назвал принципиальным отличием в синтаксисе то, что Main() находится внутри класса...
<--- nobody harmed in this action -->
#42 
nihlathak местный житель29.03.05 23:10
nihlathak
NEW 29.03.05 23:10 
в ответ scorpi_ 29.03.05 21:01
Я не смешиваю, и именно потому что я не смешиваю я придумал new(type, var), а не написал, что все уже и так есть.
#43 
scorpi_ скептик29.03.05 23:24
NEW 29.03.05 23:24 
в ответ nihlathak 29.03.05 23:10
Я не смешиваю, и именно потому что я не смешиваю я придумал new(type, var), а не написал, что все уже и так есть.
Мы вроде говорим о реальных языках, а не о выдуманных. А если ты на самом деле говоришь о Паскале, то в нем нет ни TObject, ни классов, ни нетипизированных Pointer'ов - это нестандартная фича Борланда.
В ответ на:

Чего нет? new нет? Можно написать new(type, var). Только с type проблема. Можно было бы сделать TObject, но простые типы не выведены из класса, так что нужно или их переписать или делать дополнительную проверку - что передается. А возвращать видимо pointer придется... А кто сказал что легко будет?


I did it my way

#44 
nihlathak местный житель29.03.05 23:37
nihlathak
NEW 29.03.05 23:37 
в ответ scorpi_ 29.03.05 23:24
Так можно до абсурда дойти, и сказать, что С++ это нестандартная фича Microsoft. Мысль очень спорная конечно, но С++ так хорошо стандартизован из-за коммерческих интересов... А Borland просто сделал все что мог, BP самый популярный из всех версий, и то что он выходит за рамки стандарта фиг знает какого года, так это в данном случае больше проблема стандарта, чем BP
#45 
scorpi_ скептик29.03.05 23:44
NEW 29.03.05 23:44 
в ответ nihlathak 29.03.05 23:37
Так можно до абсурда дойти, и сказать, что С++ это нестандартная фича Microsoft
чушь
I did it my way
#46 
nihlathak местный житель29.03.05 23:48
nihlathak
NEW 29.03.05 23:48 
в ответ scorpi_ 29.03.05 23:44
Надо было и следующие слова прочитать тоже
А то ты похож на "желтого" журналиста
#47 
1 2 3 все