Обсуждение программирования на Visual Basic в конференции ru.visual.basic
Re: разница в записи |
From: Alexander Asyabrik Привет, A. Scrobov Вы, было дело, писали 18 июля 2004 г., 14:29: AS> Hифига, проверь: AS> =========Beginning of the citation============== AS> ?typename(mystringconst) AS> String AS> =========The end of the citation================ AS> Более того: AS> =========Beginning of the citation============== AS> Public Const myStringConst As Variant = "Example" AS> =========The end of the citation================ AS> - тоже типа String. А что нифига? Все верно. А дело в том, что ты imho несколько неверно используешь TypeName ==================== TypeName Function Returns a String that provides information about a variable. Syntax TypeName(varname) The required varname argument is a Variant containing any variable ^^^^^^^ except a variable of a user-defined type. =================== А это значит, что эта функция реально показывает _подтип_ Variant переменной. В твоих citation обе константы прежде чем попасть в лапы TypeName становятся Variant-ами с подтипом String. Оттого и такой результат. Оттого и Variant из функции никогда не возвращается. Мне вообще кажется что это та же VarType, только возвращающая результат в более наглядном строковом виде. А еще я пробовал писать это все в бинарные файлы (так мне просто удобней ). Так вот когда объявляешь явно как Variant, тогда в файл записывается именно как Variant (дополнительно указывается субтип 8 /String/ и длина строки), а когда без явного указания, тогда в файл пишется, как и обычная строка. -- С уважением, Alexander 6:10:02 PM * Origin: Talk.Mail.Ru (2:5020/400) |
Re: ¬в¬С¬Щ¬Я¬Ъ¬и¬С ¬У ¬Щ¬С¬б¬Ъ¬г¬Ъ |
From: "A. Skrobov" Sun Jul 18 2004 20:57, Dmitriy Kozyrev wrote to Alexander Asyabrik: AA>> ¬? ¬Ц¬л¬Ц ¬с ¬б¬в¬а¬Т¬а¬У¬С¬Э ¬б¬Ъ¬г¬С¬д¬о ¬п¬д¬а ¬У¬г¬Ц ¬У ¬Т¬Ъ¬Я¬С¬в¬Я¬н¬Ц ¬ж¬С¬Ы¬Э¬н (¬д¬С¬Ь ¬Ю¬Я¬Ц ¬б¬в¬а¬г¬д¬а AA>> ¬е¬Х¬а¬Т¬Я¬Ц¬Ы ). ¬?¬С¬Ь ¬У¬а¬д ¬Ь¬а¬Ф¬Х¬С ¬а¬Т¬м¬с¬У¬Э¬с¬Ц¬к¬о ¬с¬У¬Я¬а ¬Ь¬С¬Ь Variant, ¬д¬а¬Ф¬Х¬С ¬У ¬ж¬С¬Ы¬Э AA>> ¬Щ¬С¬б¬Ъ¬г¬н¬У¬С¬Ц¬д¬г¬с ¬Ъ¬Ю¬Ц¬Я¬Я¬а ¬Ь¬С¬Ь Variant (¬Х¬а¬б¬а¬Э¬Я¬Ъ¬д¬Ц¬Э¬о¬Я¬а ¬е¬Ь¬С¬Щ¬н¬У¬С¬Ц¬д¬г¬с ¬г¬е¬Т¬д¬Ъ¬б 8 AA>> /String/ ¬Ъ ¬Х¬Э¬Ъ¬Я¬С ¬г¬д¬в¬а¬Ь¬Ъ), ¬С ¬Ь¬а¬Ф¬Х¬С ¬Т¬Ц¬Щ ¬с¬У¬Я¬а¬Ф¬а ¬е¬Ь¬С¬Щ¬С¬Я¬Ъ¬с, ¬д¬а¬Ф¬Х¬С ¬У ¬ж¬С¬Ы¬Э AA>> ¬б¬Ъ¬к¬Ц¬д¬г¬с, ¬Ь¬С¬Ь ¬Ъ ¬а¬Т¬н¬й¬Я¬С¬с ¬г¬д¬в¬а¬Ь¬С. DK> Const s1 As String = "ABC" DK> Const s2 = "DEF" DK> Open "c:\0000" For Binary As 1 DK> Put 1, , s1 DK> Put 1, , s2 DK> Close 1 DK> ¬? ¬ж¬С¬Ы¬Э ¬б¬Ъ¬к¬Ц¬д¬г¬с ¬к¬Ц¬г¬д¬о ¬Т¬С¬Ы¬д: "ABCDEF". ¬+¬в¬а¬г¬д¬а ¬Х¬Э¬с ¬с¬г¬Я¬а¬г¬д¬Ъ, ¬У¬н ¬Ъ¬Ю¬з¬а ¬Х¬в¬е¬Ф ¬Х¬в¬е¬Ф¬С ¬Я¬Ц ¬б¬а¬Я¬с¬Э¬Ъ: Const s1 As String = "ABC" Const s2 = "DEF" Const s3 As Variant = "GHI" Open "c:\0000" For Binary As 1 Put 1, , s1 Put 1, , s2 Put 1, , s3 Close 1 ¬i¬а¬Щ¬Х¬С¬Ч¬д¬г¬с ¬д¬С¬Ь¬а¬Ы ¬ж¬С¬Ы¬Э: 0000000000: 41 42 43 44 45 46 08 00 |? 03 00 47 48 49 ABCDEF◘ ?? GHI 8 - ¬п¬д¬а vbString, 3 - ¬Х¬Э¬Ъ¬Я¬С ¬г¬д¬в¬а¬Ь¬Ъ. * Origin: FidoNet Online (2:5020/175.2) |
Re: Получить путь к ехешнику по hWnd |
From: "A. Skrobov" Mon Jul 19 2004 04:47, Sergey Merzlikin wrote to A Skrobov: SM> Там же, только в разделе общей информации о библиотеке. В последнее время SM> в описаниях функций я все чаще замечаю неверную информацию о поддержке SM> ОС. А заметил потому, что уже сталкивался с отсутствием этой библиотеки в SM> дистрибутиве NT4. Изначально она шла как дополнительный компонент из SM> Resource Kit. Hаверное, какой-то SP ее ставит, но какой именно и ставит SM> ли вообще, не знаю. Говорят, что она распространяется то ли с SDK, то ли с DDK, причём чуть ли не в исходных кодах, как пример работы с NtQueryInformation* И ещё что её можно свободно распространять, а бинарник совместим как раз с NT4+ SM> Вообще, ценность такого подхода прослеживается только на NT4, на SM> остальных ОС эту информацию легко получить через ToolHelp32-функции. Hу вот тогда ещё и Toolhelp32-версия: (Системные требования: Win95+/Win2000+) Option Explicit Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function Module32First Lib "kernel32" (ByVal hSnapshot As Long, lpme As MODULEENTRY32) As Long Private Declare Function Module32Next Lib "kernel32" (ByVal hSnapshot As Long, lpme As MODULEENTRY32) As Long Private Declare Function Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long Private Const MAX_PATH As Long = 260& Private Const MAX_MODULE_NAME32_1 As Long = 255& + 1& Private Const TH32CS_SNAPMODULE As Long = &H8 Private Const TH32CS_SNAPPROCESS As Long = &H2 Private Type MODULEENTRY32 dwSize As Long th32ModuleID As Long th32ProcessID As Long GlblcntUsage As Long ProccntUsage As Long modBaseAddr As Long modBaseSize As Long hModule As Long szModule As String * MAX_MODULE_NAME32_1 szExePath As String * MAX_PATH End Type Private Type PROCESSENTRY32 dwSize As Long cntUsage As Long th32ProcessID As Long th32DefaultHeapID As Long th32ModuleID As Long cntThreads As Long th32ParentProcessID As Long pcPriClassBase As Long dwFlags As Long szExeFile As String * MAX_PATH End Type Private Sub Command1_Click() Dim hWnd As Long, PID As Long, res As Long Dim hSnapshot As Long, me32 As MODULEENTRY32 Dim FileName As String hWnd = Val(Text1) If hWnd = 0 Then Exit Sub GetWindowThreadProcessId hWnd, PID hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE Or TH32CS_SNAPPROCESS, PID) If hSnapshot = -1 Then Exit Sub me32.dwSize = LenB(me32) res = Module32First(hSnapshot, me32) Do While res <> 0 If me32.modBaseAddr = &H400000 Then Exit Do res = Module32Next(hSnapshot, me32) Loop FileName = Left$(me32.szExePath, InStr(me32.szExePath, vbNullChar) - 1) Label1 = FileName CloseHandle hSnapshot End Sub * Origin: FidoNet Online (2:5020/175.2) |
Re: Получить путь к ехешнику по hWnd |
From: "A. Skrobov" Mon Jul 19 2004 11:33, Dmitriy Kozyrev wrote to A. Skrobov: AS>> If me32.modBaseAddr = &H400000 Then Exit Do DK> Прошу прощения, а что это за константа? Сюда всегда грузятся Win32-exeшники. DK> И вообще, экспериментально установлено, что Module32First всегда DK> возвращает информацию именно о главном модуле - экзешнике. Все три примера "нацелены" на получение путей ко всем используемым процессом библиотекам. * Origin: FidoNet Online (2:5020/175.2) |
Поиск с учетом и без учета pегистpа |
Пpивет Roman, 27 июля 04 ты писал(а) по поводу *Поиск с учетом и без учета pегистpа. * ======= Сгpызено моей собакой ======== RD>> Ясно. Я понял. Хотя было бы классно, если бы можно было в тексте RD>> искать как я пpедположил: задаётся стpока поиска состоящая из набоpа RD>> символов, и эта чеpез Instr ищется вхождение в тексте любого символа RD>> из стpоки поиска. :( RY> [F1] Like ? Много pаз вижу, но пока не было необходимости знакомиться. Что эта функция делает? Всех благ тебе, Roman. ICQ 177792013 *Hа уши давит* - тишина... * Origin: WinErr: 009 Ужасная ошибка - одному Богу известно, ч (2:5015/112.35) |
Инвеpсия в RichEditBox |
Hello, All Как сделать сабж отдельного слова. Цвет шpифта отдельного слова инвеpтиpовать не пpоблема, а как быть с фоном? Пpосмотpел все свойства pичедита - не нашёл. Hашёл только BackColor - но это свойство влияет на весь текст контpола, а мне нужно поменять цвет фона только одного слова. Hапpимеp, фpаза "Мама мыла pаму". Цвет шpифта чёpный, цвет фона белый. Hужно сделать слово "мыла" белым на чёpном фоне. Как? Подскажите, плиз. Всех благ тебе, All. ICQ 177792013 *Hа уши давит* - тишина... * Origin: Конопля - это деpево, пpосто ему не дают выpасти. (2:5015/112.35) |
Re[2]: Win 3.* |
From: Vadim Romanov Dima Grinenko пишет: DG> *Grinenko* по теме "Win 3.*" Hе совсем в тему, но. В Виндах есть такая фича - Accessibility Options. Там в числе прочего - управление указателем мыши с помощью правого блока клавиш. Если такое уже было в 3.1 - может задействовать ее и не мучаться? -- Вадим * Origin: Talk.ru (2:5020/400) |
Re: Mail средствами telnet |
Привет, A! 26.07.2004 13:50, A Skrobov to Yury Zezegov: AS> Hello, Yury! AS> You wrote to "All" YZ>> Знаю как получить письмо средствами telnet команд (user, pass, YZ>> stat,retr ...) через winsock! AS> Молодец! AS> [Sorry, skipped] YZ>> А есть другой способ? AS> Terekhin Alexandr собирался прикрутить MSInet к HTTPmail-у... Hо имхо через AS> winsock лучше. AS> FTR: user, pass, stat,retr ... - это не telnet, а POP3-команды. Облажался ... Я все это к тому, что пытаюсь получить только описание сообщения (from, to, subj ...), как это сделано в микрософтовском оутлуке, а RETR возвращает все кучей - и текст, и вложения. Прерывать retr некорректно, т.к. сервер ожидает quit. Как бы это устроить? MSInet работает более гибко? AS> (2:5080/1003.16) * Origin: -+=biZZon=+- (2:5003/7.59) |
Re: Mail средствами telnet |
Привет, Victor! 27.07.2004 9:35, Victor Kagramanyants to Yury Zezegov: VK> From: Victor Kagramanyants VK> On Mon, 26 Jul 2004 15:58:40 +0400, Yury Zezegov wrote: VK> >Я все это к тому, что пытаюсь получить только описание сообщения (from, VK> to, >subj ...), как это сделано в микрософтовском оутлуке, а RETR VK> возвращает все >кучей - и текст, и вложения. Прерывать retr некорректно, VK> т.к. сервер ожидает >quit. Как бы это устроить? VK> TOP x n VK> где x - номер сообщения вернет заголовок и n строчек письма (в твоем случае VK> n=0) И все же интересно, существуют ли в винде готовые функции? Спасибо тебе большое за ТОР!!! Даже ведь не слышал о таком. * Origin: -+=biZZon=+- (2:5003/7.59) |
Re: консоль с юникодом |
Мы где-то виделись, Dima? 27 Jul 04 01:30:31 в RU.VISUAL.BASIC Dima Grinenko -> мне: DK>> Пpимеp пpостейшего консольного пpиложения на эхотаге умещается в 10 DK>> стpок. DG> Эхотаг есть pаных веpсий,вот напpимеp для 6 веpсии, мне уже тут сказали, DG> что достаточно 1 байт поменять. Угу, правильно. DG> Хотя как они печатают на экpан, WriteFile(GetStdHandle(STD_HANDLE_OUTPUT), ...) или WriteConsole DG> и как же debbuger? Hормально все с отладчиком. :) При отладке тоже можно создать консоль и писать на нее. DG> А посколька эхотаг 6 имеет в своём аpсенале не коппилятоp пpи отладке,а DG> тpанслятоp, то как осуществить подмену? Это не нужно, смена типа приложения нужна только для скомпилированного экзешника. Короче, во избежание разных вопросов, сразу даю ссылку: mastershome.net.ru/vbfaq/c07.htm DG> Когда пpобовал вывести в любой дpугой кодиpовке, сплошные кpякозябpы. Это небольшая беда. :) Перекодировка делается одной строчкой. BTW, в соседнем треде с таким же сабжем Артем дал несколько советов насчет сабжа. Всего хорошего! Дмитрий Козырев aka Master * Origin: Дорогу осилит идущий. (2:5023/11.148) |