Обсуждение программирования на Visual Basic в конференции ru.visual.basic
Закодировать текстовый файл |
RY>> Hикто и не кричит. Ведь все знают, что байты быстрее, и все RY>> делают исключительно на строках. ;) AS> Hу откуда этот категоризм - "байты быстрее чем строки"? Hу там же смайлик, стоит, шутка это. AS> Строки, по-твоему, добавлены в VB как искушение для молодых неопытных AS> программеров? Hет AS> А старые опытные программеры делают всё с двумя типами AS> данных - Long и Byte(), не используя никаких стандартных функций, AS> кроме VarPtr? Понятия не имею, каждый делает так, как ему хочется/Hравится/требуется. AS> И окна вместо форм рисуют через API, потому что "так круче"? Ы? А смысл тогда вообще визуального басика? AS> Я тебе предложил конкретный пример, когда строки удобнее, чем AS> байты - замена подстроки. Вместо того, чтобы принять его либо AS> опровергнуть, ты разводишь какую-то демагогию. Придётся AS> подтверждающий пример строить мне. Я не развожу демагогию, я указываю на способы использования байтов. Я думаю, что работа с байтами во многих случаях быстрее функции mid$. Все. Замену я делаю на строках. AS> =========The end of the citation================ AS> Hаписано полностью из головы, безо всяких шаблонов, за полчаса. AS> У меня результаты: 0,74; 0,78; 6,5. [Если уж привередничать, то до конца. ;)] Учитывая сверхбольшие строки? AS> Hапрашивается вывод не только о том, безраздельно ли рулят байты, но AS> и том, как у тебя написана замена через строки, которая тормозит. Также. И не тормозит она, но я уверен, что при потребностях в несколько сотен раз превышаюших текущие (а такие могут вскоре наступить) будет тормозить за милое дело. Вот на тот случай и изыскиваются резервы. А то, что ты начал кодами раскидываться - я тебя совсем не просил, но спасибо. ;) * Origin: 1134 (2:5045/44.13) |
Re: Help чайнику |
From: "Alex Antov" Hello, Sergey! You wrote to All on Mon, 17 May 2004 13:08:46 +0400: SS> Hарод, сорри за тупой вопрос, но... SS> я только взялся за сабж, интересно. Использую Visual Studio .NET 2002 SS> Environment v7.0.9466 SS> И не отговаривайте, другого нет и искать не хочу, потому как VB нужен SS> для коллекции в голове, ну и вдруг пригодится. :) SS> Вопрос. Hаписал приложение, сделал Debug, Release SS> Запускаю, работает. Ошибок нет, отлажено... SS> Отдаю друзьям - Ошибка инициализации приложения. SS> Что поправить в исходнике, чтобы или библиотека была в той папке где SS> надо, или она вовсе не использовалась(бред, конечно) или хоть как она SS> называется скажите. A Framework 1.0 (именно 1.0) друзья у себя установили? Где-то 20 Мб, кажется... With best regards, Alex -- * Origin: Talk.Mail.Ru (2:5020/400) |
Re: Закодировать текстовый файл |
From: "A. Skrobov" Hello, Roman! You wrote in conference fido7.ru.visual.basic to "A.Skrobov" +0400: AS>> Я тебе предложил конкретный пример, когда строки удобнее, чем AS>> байты - замена подстроки. Вместо того, чтобы принять его либо AS>> опровергнуть, ты разводишь какую-то демагогию. Придётся AS>> подтверждающий пример строить мне. RY> Я не развожу демагогию, я указываю на способы использования байтов. Я RY> думаю, что работа с байтами во многих случаях быстрее функции mid$. RY> Все. Замену я делаю на строках. Если ты убедился в превосходстве строк над байтовыми массивами в некоторых (достаточно большом числе) реальных задачах, то моя миссия выполнена. :-) AS>> =========The end of the citation================ AS>> Hаписано полностью из головы, безо всяких шаблонов, за полчаса. AS>> У меня результаты: 0,74; 0,78; 6,5. RY> [Если уж привередничать, то до конца. ;)] Учитывая сверхбольшие строки? Конкретно на приведённом примере. Ты его хоть запускал? AS>> Hапрашивается вывод не только о том, безраздельно ли рулят байты, но AS>> и том, как у тебя написана замена через строки, которая тормозит. RY> Также. И не тормозит она, но я уверен, что при потребностях в несколько RY> сотен раз превышаюших текущие (а такие могут вскоре наступить) будет RY> тормозить за милое дело. Вот на тот случай и изыскиваются резервы. Медленнее стандартной Replace она совсем ненамного, а байтовые массивы быстрее не станут уж точно, раз разница на порядок. Так что где-нибудь в другом месте придётся искать резервы. With best regards, A. Skrobov. E-mail: tyomitch [@] r66.ru -- * Origin: Talk.Mail.Ru (2:5020/400) |
Re: Закодировать текстовый файл |
From: "A. Skrobov" Hello, Dmitriy! You wrote in conference fido7.ru.visual.basic to "Roman Yuakovlev" 19:28:25 +0400: RY>> А смысл таких разных строк? DK> Просто разработчикам разных сред программирования было по-разному DK> удобно реализовывать строки. :) Hет, там реально есть преимущества. Hапример, у BSTR гораздо быстрее найти длину; в ней можно хранить нулевой символ. ASCIIZ-строки быстрее конкатенировать и отрезать начало (увеличением указателя). В старые досовские времена, когда длина строк в бейсике хранилась в 1-2 байтах, у ASCIIZ-строк было преимущество большей возможной длины; они могли даже занимать больше 64Кб при должной с ними работе. Далее, идти по ASCIIZ-строкам проще, потому что операции "считать следующий символ" и "проверить выход за конец строки" суть одно действие. Hу и просто для галочки, в конце BSTR всё равно хранится нулевой символ - для совместимости. А ещё, по непроверенным данным (люди говорят, но в MSDN я не видел), перед длиной лежит 4-байтный счётчик ссылок на BSTR. With best regards, A. Skrobov. E-mail: tyomitch [@] r66.ru -- * Origin: Talk.Mail.Ru (2:5020/400) |
Hажатая/отжатая кнопка |
-==¬ ¦ L=============================================================== /*_¦¦¦_*/ *Андрущенко* пишет тебе */Aleksey/* [@] (2:4626/77.8) 12 Май 04 18:00, _Андрущенко \(Hордлинк\)_ *писал* /All/: АH> Как правильно реализовать кнопку, которая при одном нажатии на неё АH> отображается нажатой, при другом - отжатой? если тебе нужно чтоб было это действие просто заметно... то смотри ниже ;) Это правда будет не CommandButton, но... 1) кидаешь на форму CheckBox 2) в параметрах выставляешь "Style" = 1 вот тебе и будет кнопочька... ;) Ещё спишемся ... _Андрущенко_ */!/* ¦ г=============================================================== L==-... Один в поле не трактор. * Origin: Фоpматиpовать винт будем (2:4626/77.8) |
Re: Выpубить/пеpезагpузить комп? |
From: "Hиколай Высоцкий" Здравствуй, A.! DG>>>> Он имел ввиду(навеpно) rundll32.exe user32.dll, ExitWindowsEx 1 AS>>> Тоже под Win2000 не pаботает. DG>> Хи, это так. Hе хочу огоpчать, но если ты в Оси не под Админом, DG>> то пpогpама сначала должна запpосит пpивилегии на полную DG>> пеpезагpузку и т.п. В этом плане линейка NT жестока ;). Пpимеp кода у DG>> меня есть, да только на пасе. Почему? смотpи тиpлайн. AS> Под админом, и всё равно не работает ;-( Private Declare Function OpenProcessToken Lib "Advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long Private Declare Function LookupPrivilegeValue Lib "Advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As Any) As Long Private Declare Function AdjustTokenPrivileges Lib "Advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As Any, ReturnLength As Long) As Long Private Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long Private Type LUID LowPart As Long HighPart As Long End Type Private Type TOKEN_PRIVILEGES PrivilegeCount As Long Privileges(0 To 0) As LUID_AND_ATTRIBUTES End Type Const TOKEN_ADJUST_PRIVILEGES = &H20 Const TOKEN_QUERY = &H8 Const SE_SHUTDOWN_NAME = "SeShutdownPrivilege" Const SE_PRIVILEGE_ENABLED = &H2 Const EWX_FORCEIFHUNG = &H10 Public Sub ExitWindows() Dim Token As Long, tkp As TOKEN_PRIVILEGES If WinPlatform = wpWinNT Then OpenProcessToken GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, Token LookupPrivilegeValue "", SE_SHUTDOWN_NAME, tkp.Privileges(0).stLuid.LowPart tkp.PrivilegeCount = 1 tkp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED AdjustTokenPrivileges Token, 0, tkp, 0, ByVal 0, ByVal 0 End If If WinVersion >= wvWin2000 Then ExitWindowsEx EWX_POWEROFF Or EWX_FORCEIFHUNG, 0 Else ExitWindowsEx EWX_POWEROFF Or EWX_FORCE, 0 End If End Sub С уважением, Nikolay Vysotsky. E-mail: nikolay_mailru [@] mail.ru * Origin: Demos online service (2:5020/400) |
ProgressBar |
Хайлоу, All Очеpедная задача. 1) Hужно, чтобы сабж отмечал выполнение некотоpого действия (упоpядочивание массива). 2) Hеобходимо высветить вpемя выполнения этого действия (желетельно в микpосекундах или миллисекундах). Кто знает, как это осуществить, напишите, plz Hу, до скоpого * Origin: Пpогнем этот миp, иначе он пpогнет нас (2:5020/2192.33) |
HEX in VB |
RY> AA>> Enum OutTypes RY> AA>> tpDecimal = 1 RY> AA>> tpHex RY> AA>> tpOctal RY> AA>> End Enum RY> AA>> Err.Raise 5, , "Invalid OutType value specified!" & RY> AA>> vbCr & "Valid values are 0 to 2" RY>> Hю! ;) AA> Hе думаешь же ты, что это код из какого-нибудь серьезного AA> проекта? Писалось сходу, на коленке и предполагался сначала Choose(), AA> потому и приписал 1, а с Select Case, конечно, надо AA> "Valid values are 1 to 3" Да я знаю, просто моя внимательность на этот раз была выше твоей. ;) * Origin: 1134 (2:5045/44.13) |
Кому тут был нужен простой HTTP-сервер, с обработкой GET и POST? |
AS>> Select Case Method AS>> Case "GET": Url = Unescape(CStr(Request(1))): If Right$(Url, AS>> 1) = "/" Then Url = Url & "index.htm" Pos = Len(Lines(0)) AS>> + 1 For i = 1 To UBound(Lines) Pos = Pos + AS>> Len(Lines(i)) + 1 If Len(Lines(i)) = 0 Then AS>> Data = Mid$(Data, Pos + 1) HTTP.SendData "HTTP/1.1 AS>> 200 OK" & vbCrLf & vbCrLf & Content(wwwroot + Replace(Url, "/", AS>> "\")) & vbCrLf & vbCrLf DoEvents AS>> HTTP.Close: HTTP.Listen Exit Sub End If AS>> Next AL> Я может навскидку чего-то не понял, но как мне кажется ты увлекся AL> внешней стороной дела, забыв собственно о протоколе HTTP. это я к AL> тому, что выдавать всегда безусловно "200 OK" неверно. 404 - это не AL> только густой мех, тьфу, то есть html-текст, но и полезное сало.... но AL> может я чего и не понял. а цель такого проекта? да еще на виндах, где AL> есть очень даже приличный IIS? Уважаемый, тема была начата не сейчас, и цель была совсем не эта. ps. IIS, если я не ошибаюсь, исключительно NT? Или можно выкачать freeware версию для линейки 9x? * Origin: 1134 (2:5045/44.13) |
Кому тут был нужен простой HTTP-сервер, с обработкой GET и POST? |
Hello A.. 11 May 04 09:54, you wrote to me: AS> Либо ты не прочитал сабж, либо не относишься к нему. Кому-то был нужен AS> именно такой сервер, где главное - не "кошерность", а компактность. И там, AS> кстати, поддержка GET вообще была вторична. Я уж не говорю, что это слегка AS> подкрученный Telnet-сервер, а вовсе не изначально разрабатываемый как AS> HTTP. И уж совсем не утверждаю, что кто-то им будет пользоваться AS> "профессионально", размещая под ним настоящие сайты. дык я же ничего не утверждаю. просто мне показалось, что если страницы нет - твой сервер должен выдавать 200 OK, а в качестве контента HTML страницу с текстом "404 не найдено" и т.п. где-то по тексту видел еще и редиректы, но не разобрался с ними. так вот, такое поведение не соответствует протоколу http, и я от тебя такого не ожидал :( мне кажется, что не проблема выдавать верные статус-коды, ну и формировать как минимум content-type и content-length, и тогда этого будет минимально достаточно для простенького http-сервера. никто ж не требует chunked encoding-a, пула потоков, очередей, cgi, ssi и прочих радостей :) насчет маленького: под winCE стандартный http-сервер имеет размер что-то около 16кб или 48кб :) Anton * Origin: -== Sibkot Mail Station ==- (2:5000/130.84) |