Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Сайт

Страница: 1 | 2 | 3 | 4 |

 

  Вопрос: уважаемые новички Добавлено: 21.05.06 20:18  

Автор вопроса:  student-uni

Ответить

  Ответы Всего ответов: 48  

Номер ответа: 31
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #31 Добавлено: 23.05.06 10:09
Morpheus
Split будет медленее, чем InStrRev, т.к Split создаёт множество строк (по числу слэшей+1), а с InStrRev создаётся только одна строка.

Чтобы сделать быстрее, чем с InStrRev, нужно вспомнить, что такое BSTR, и как передаются строки в функцию.

Сделал два варианта, но Neco молчит, поэтому сравнить с результатом Neco могу только косвенно, путём сравнения с InStrRev.

Три момента:
1. Отказ от передачи строки как по ByVal, так и по ByRef. Строка передаётся непосредственно, через StrPtr(FullPath).
2. Никаких определений длины строки (типа len, lstrlen и т.п.). Вся информация уже заложена в BSTR, поэтому две простейшие операции - чтение длины из переменной и прибавление этой длины к адресу строки - позволяют очень быстро сместиться к концу строки.
3. Отказ от возврата результата из функции VB-методом As String, и замена Function (...) As String на Sub (StrPtr(FullPath), StrPtr(fName)).

По своему строению VB-строка (BSTR) очень быстрый тип строки, вот только VB постоянно создаёт ненужные копии строк, при этом происходит и преобразование строки из widechar в multibyte. Обработка строк же происходит на W2K и выше в widechar, поэтому нужно снова преобразовывать из multibyte в widechar. И после обработки и получения результата приходится снова выполнять обратную цепочку преобразований и копирования в исходный адрес. Всё это не добавляет скорости.

1-й вариант функции GetName предусматривает отказ от передачи строки как копии оригинала (используется передача указателя StrPtr). Возвращается результат As String.
2-й вариант процедуры GetName предусматривает дополнительно к первому отказ от возврата As String: адрес выходной строки передаётся в процедуру для заполнения данными.

Результаты относительно приведённого выше способа с InStrRev:
InStrRev - 4.63
GetName_1 - 3.57
GetName_2 - 0.36

Код GetName приводить не буду, кому надо - делайте сами, как делать подробно расписано выше.
Приложите хотя бы минимум усилий, у получите весьма хороший результат.
А кто не может - юзайте .нет

Ответить

Номер ответа: 32
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #32 Добавлено: 23.05.06 11:20
А я вот пытался по "GO" SQL-скрипт парсить
(SPLIT-OM)
и столкнулся с проблемои

1. "GOTO" - он тоже как "GO" парсит,

2. тогда я сказал парсить по CHR13+GO+CHR13
но он игнорирует последнии гоу (у него после "O" нет вообше символа)

3. когда я загружаю етот скрипт через FTP /как бинарныи фаил/
то там проявлается еше куча всаких символов переноса строки,
так что парсить совсем сложно.

Я выкрутился тем, что закачал на ФТП специально в ручную
отформатированныи мнои фаил, которыи легко парсится по "_GO_"
Но ето же изврашение,
Буду признателен за идеи

Спасибо

Ответить

Номер ответа: 33
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #33
Добавлено: 23.05.06 11:38
Гуры тут Sharp, CyRax, sne.

 Угу, мы - гуры. Особенно я - самая гуристая гура :)

Ответить

Номер ответа: 34
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #34
Добавлено: 23.05.06 14:53
Фетишизировать технологию .NET все же не стоит. Она может быть хороша только в:
1) Своём классе. Попытки создания Блокнота на .NET всё ещё терпят фиаско.
2) В стране с развитыми компьтерными технологиями. Если у 1-10% компьютеризированных жителей бывшего т.н. "соцлагеря" есть "Пентиум 4", то в США тот же П4 есть у любого бомжа/негра, не говоря уже о социальных, учебных и других заведениях.

Конечно при решении второй проблемы первая уменьшается, но универсальность всё равно остаётся за пределами этой технологии. Это при том что вторую проблему решить практически невозможно, ну разве что переселится за океан или переселить "заокеан" сюда. :)

Ответить

Номер ответа: 35
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #35 Добавлено: 23.05.06 16:57
угу, а фишка то, в том что новички то как раз блокноты и пишут, что они могут написать ещё? и при этом рвут одно место доказывая что нет просто супепр пупер шо блокнот супер пупер ведь работает, а самое главное всё в пару строк...

Ответить

Номер ответа: 36
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #36
Добавлено: 23.05.06 17:48
ээээ, ну что ж вы - во то что пару строк - это же плюс - надо вот прогу на заказ сдеалать - накатал и забыл (если типа учёта фильтров как я делал так там вообще начхать на скорость - циклов очень мало).
так что не всё так плохо же хоть и (хехе)

Короче, для себя пишем на нормальных языках - и запускается быстро итд.. а для заказчика пишем на точке :)

Ответить

Номер ответа: 37
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #37 Добавлено: 23.05.06 18:21
Не так. На чём скажут, на том и пишем. Вот истинный девиз ПрограмМастера.

Ответить

Номер ответа: 38
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #38 Добавлено: 23.05.06 20:05
накатал и забыл

не интересно, регресс, деградация...

Ответить

Номер ответа: 39
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #39
Добавлено: 23.05.06 20:20
а чё ты думал? работа по найму ....

Ответить

Номер ответа: 40
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #40
Добавлено: 23.05.06 20:47
Не так. На чём скажут, на том и пишем. Вот истинный девиз ПрограмМастера.



ну я и не отказывался - всё же точка иногда подходит когда 80% времени всё равно уходин на оформление интерфейса

Ответить

Номер ответа: 41
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #41 Добавлено: 23.05.06 21:18
пойми, ты смотришь со стороны новичка на .NET, а об этом писали выше...

Ответить

Номер ответа: 42
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #42
Добавлено: 23.05.06 22:22
Вообще то "Блокнот" - это так, к примеру, чтобы показать класс програм, к которому он относится. Так что делать упор на нём всё же не стоит :)

Не так. На чём скажут, на том и пишем. Вот истинный девиз ПрограмМастера.

 Мда, не перевелись ещё сверхчеловеки на замле русской. Вот если бы как в фильме "Косильщик лужаек" изучать технологии со скоростью перелистывания книги. :) Но такие МегаМастера с аномалией гипертрофированой памяти встречаются крайне редко.

Ответить

Номер ответа: 43
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #43 Добавлено: 23.05.06 23:01
А на мой вопрос про парсинг кто нибудь ответит ?

Отчасти я согласен с Хакером. После мощи С++, Дот Нет кажется игрушкой. И он таки да отучает думать например о том как можно одним махом выделить пространство под двумерный массив. (И не забыть его освободить) , или не забыть деструктор.

Но надо различать:

- есть те которые пишут для юзеров
- и есть те которые пишут для тех кто пишет для юзеров

Дот Нет Это обычный Би-Ту-Би (бизнес для бизнеса) от Майкрософт, с помощью чего они популяризируют себя. Точно так же как и оптовики не продают трусы розничным покупателям, а продают розничным торговым точкам.

Я считаю, что минимум С++ надо хотя бы для себя поучить. Тогда многое станет в Дот Нете понятно так сказать с "философской точки зрения".

Но справедливости ради стоит заметить, что на С++ сегодня далеко не уедешь, если конечно не напишешь свой ИнтеллиСенс к примеру. (Но для этого надо как минимум изучить ещё дискретную математику.)

Рапид аппликейшн девелопмент сегодня в моде.
Более того, я считаю, что он будет набирать обороты.

Один профессор по предмету "операционные системы" заставлял всех делать курсовой по разработке сервера на С под Юникс. Параллельно читал курс Си. Когда его спрашивают "А как это будет под Виндовс" он становится в 3-ю позицию и говорит "Я не знаю что такое Виндовс". Мне кажетс я это большой недальновидностью. Он конечно не глупый мужик - год трахался
и сам написал сервак на С под Юникс, к которому можно удаленно подключаться и (компилировать)проекты в группе, и ещё какую то хрень, На своем ноутбуке он упорно совокупляется с Линуксом, но если завтра выйдет Фреймворк под Линукс - мне будет его очень жаль.

Нельзя говроить, что есть Дот Нет и больше ничего не надо, но и не стоит недооценивать Дот НЕт. Всегда были низкоуровневые и высокоуровневые языки и никто не сравнивал Ассемблер с Клиппером. (Я кстати работал и на том и на другом). В одних случаях нужен один, в других - другой. (Хотя В первом для того чтобы напечатать один символ надо написать простыню кода а во втором одно слово ПРИНТ - никто не говорил что Клиппер отучает думать. Это был шикарный язык для обработки БД)

И никогда нельзя сказать, что "Лонг Лив Форева", а что "Маст Дай". Самое важное вовремя пересесть на правильное направление и вовремя с него соскочить, чего я лично себе и всем и желаю.

Ответить

Номер ответа: 44
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #44
Добавлено: 23.05.06 23:49
он становится в 3-ю позицию и говорит "Я не знаю что такое Виндовс". Мне кажетс я это большой недальновидностью.

 Наверное в позицию он случайно стал :), а не знает скорее всего от того что не академическая эта операционка, тем более что не open-source (до недавних пор во всяком случае).

Он конечно не глупый мужик - год трахался
и сам написал сервак на С под Юникс, к которому можно удаленно подключаться и (компилировать)проекты в группе, и ещё какую то хрень, На своем ноутбуке он упорно совокупляется с Линуксом,

 Тут вообще сплошная порнуха пошла. :)

но если завтра выйдет Фреймворк под Линукс - мне будет его очень жаль.

 Допустим во сне ему явится провидение в образе Большого Б. и наставит его на путь истинный. Как по твоему он должен будет привязать Фреймворк(даже с большой буквы) к предмету "операционные системы"?

Ответить

Номер ответа: 45
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #45
Добавлено: 24.05.06 09:33
когда 80% времени всё равно уходин на оформление интерфейса
Если основа программы уже есть, то это, как раз самая интересная часть разработки.
Но справедливости ради стоит заметить, что на С++ сегодня далеко не уедешь, если конечно не напишешь свой ИнтеллиСенс к примеру. (Но для этого надо как минимум изучить ещё дискретную математику.)
А на .NET, значит "уедешь"?
Не так. На чём скажут, на том и пишем. Вот истинный девиз ПрограмМастера.
Не путай програм"мастеров" с программистами. Программист, как правило, пишет на одном языке, который он предпочитает, что совершенно не запрещает ему знать и другие.
накатал и забыл
Так многие и делают. Я, например, уже и не вспомню все свои проги и примеры.
не интересно, регресс, деградация...
Все равно, в любом деле энтузиазм когда-то кончается.
Короче, для себя пишем на нормальных языках - и запускается быстро итд.. а для заказчика пишем на точке :)
:D

Ответить

Страница: 1 | 2 | 3 | 4 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам