Замена по маске и вообще работа с маской

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
JWST
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 07.01.2006 (Сб) 21:05

Замена по маске и вообще работа с маской

Сообщение JWST » 19.01.2006 (Чт) 20:56

Вот какой вопрос:

Есть у меня к примеру в файле реестра запись:

[HKEY_USERS\S-1-5-21-839522115-448539723-725345543-1003\Software\WinRAR\Interface\Themes]


а нужно сделать
[HKEY_CURRENT_USER\Software\WinRAR\Interface\Themes]
.

т.е.
HKEY_USERS\S-1-5-21-839522115-448539723-725345543-1003
заменить на
HKEY_CURRENT_USER


Проблема заключается в том что эти циферки у каждого пользователя разные и мне нужно, чтобы замена осуществлялась по маске, т.е.
заменять значения HKEY_USERS\S-x-x-xx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxx на HKEY_CURRENT_USER

, где S-x-x-xx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxx любые значения по этой маске.

как открыть и как считать строки это мне понятно. Я уже с этим разобрался. Как заменять значения при помощи конструкций типа
Код: Выделить всё
AllUsPr = Replace(AllUsPr, "\", "\\")
я тоже понял.

А как заменять по маске?

Дайте пример пожалуйста.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.01.2006 (Пт) 4:37

Пример.
Найти первый слэш, найти второй, и выкинуть всё, что между ними.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

JWST
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 07.01.2006 (Сб) 21:05

Сообщение JWST » 20.01.2006 (Пт) 11:14

GSerg
в принципе ваше решение это вариант, но это если в файле реестра всего одна запись, а если это касается целого файла с кучей значений, то этот вариант не подходит, потому как заменится всё что между двумя этими слешами.

Неужели никакого стандартного способа поиска (и замены) по маске нету?

Я наткнулся на статью с регулярными выражениями http://vb.hut.ru/other/vbregexp.htm

Но так как мало чего (пока ещё) понимаю, так и не понял как это применить в моём случае.

Может напишите конкретный пример для моего случая, а то я что-то поковырялся вчера вечером. Потратил часа 3 до поздей ночи, а так и не смог даже запустить ничего.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.01.2006 (Пт) 11:16

У меня впечатление, что ты очень плохо представляешь, что именно ты хочешь делать.

Опиши словами конечную цель действий.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

JWST
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 07.01.2006 (Сб) 21:05

Сообщение JWST » 20.01.2006 (Пт) 11:39

GSerg
Ну тут всё очень просто. У меня программа, которая открывает файл реестра и меняет в нем нужные мне значения. Если написать по порядку, то вот сокращённый код программы:
Код: Выделить всё
Private Sub Form_Load()

NameFile = Command()

'####### открытие и считывания файла ##########
Open NameFile For Binary As #1
bufer$ = Space(FileLen(NameFile))
Get #1, 1, bufer$
Close #1

'проверка на уникод и если да, то перекодировка в текст для замены
If Mid(bufer, 1, 2) = "яю" And StrConv(Mid(bufer, 2, 1), vbFromUnicode) <> "?" Then
    unmomento = 1
    bufer = StrConv(bufer, vbFromUnicode)
    bufer = Mid(bufer, 2)
End If

' замены
        bufer = Replace(bufer, "C:\", "E:\", , , vbTextCompare) 'это пример

'####### Открытие и запись обновлённого файла #########

    Open NameFile For Output As #2
   
       'выход в обынгом (не уникод) формате:
        Print #2, bufer

    Close #2


'#################################

'Выгрузить программу
Unload Me

End Sub


Код сокрящённый, но суть такая. Вот кроме этого мне нужно чтобы
заменять значения HKEY_USERS\S-x-x-xx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxx
на
HKEY_CURRENT_USER


, где S-x-x-xx-xxxxxxxxx-xxxxxxxxx-xxxxxxxxx-xxx любые значения по этой маске.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 20.01.2006 (Пт) 12:14

а зачем тебе это нужно заменить то? В чем смысл этой замены?
Весь мир матрица, а мы в нем потоки байтов!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.01.2006 (Пт) 12:47

Я же говорю, человек очень плохо понимает, что ему надо... Надо сначала выяснить, что.
Из приведённого объяснения не ясно, зачем заменять на HKEY_CURRENT_USER. Более того, это вредно и неправильно.

Я спрашивал о конечной цели данных действий, а не о промежуточной.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

JWST
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 07.01.2006 (Сб) 21:05

Сообщение JWST » 20.01.2006 (Пт) 21:42

GSerg
Ну хорошо, я тогда немного перефразирую свои действия.

Давайте отвлечёмся от реестра и вообще забудем про него.

Просто вот есть файл. Обычный. Текстовый. Без заморок. И без строчек (т.е. всё в одной строке) или же со строчками. Это в моей задачи не важно.

Текст в нем приблизительно такого содержания:

Андрей/S-12-345-6678-3345-33345/Елизавета/A-0-111-2234-552-2234/Макар/B-33-424-6678-7783-42342
Владимир/S-9987762-2234-213-2344/Андрей/S-98-837-9284-2234-99864/Евгений/Q-0329-2232-23-2344-2234
Максим/A-993-333-009823-34345/Андрей/B-00223-3234-44422/Андрей/S-43-933-3422-9876-79922


Задача программы такая:
1. Открыть файл и считать его.
2. Найти и заменить все значения по маске "Андрей/S-xx-xxx-xxxx-xxxx-xxxx" на значение "Евгений/D-123-456-7890"
3. Записать обновлённую информацию в файл.

Вот основная задача. И не важна какие цели она преследует. Вот задача. У меня вопрос: Как это реализовать? Зачем искать причину? Я понимаю, что сравнения могут быть неуместными, но на уроках математики вам дают задачу, а вы спрашиваете зачем вам это нужно? Нет, г-н Преподователь, а вот вы объясните зачем вам нужно решение вашей задачи? Какие цели вы преследуете?. Я естественно не так категорично это всё спрашиваю. Я проще. Вот задача. Помогите найти решение.

p.s. Если вы вниательно посмотрели на предложенный текст файла, то заметили, что если программа реализована правильно, то она заменит три значения. Я понимаю, что в тексте четыре значения "Андрей", но одно из них не удовлетворяет условиям маски.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.01.2006 (Сб) 5:54

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

Если есть
Андрей/S-12-345-6789-0123-4567
Андрей/S-98-765-4321-0987-6543

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

Iq51
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 06.12.2004 (Пн) 15:30

Сообщение Iq51 » 21.01.2006 (Сб) 7:52

Вот удочка для твоего примера:
Ищешь "/"; проверяешь, есть ли слева цифра?, нет - дальше ищешь, да - в переменную все это со слэшем; запоминаешь местоположение слэша; проверяешь значение переменной по маске If myString Like "Андрей/S-##-###-####-####-####/" Then newString = newString + "Евгений/D-123-456-7890/"; Else newString = newString + myString; и т.д. потом newString > в файл.

нда... обьяснил... :wink:

Код: Выделить всё
String Like Pattern- оператор для проверки строки String на маску Pattern. Это очень мощный оператор, почти аналог регулярных выражений в Perl.

Пример:

Dim MyCheck
MyCheck = "aBBBa" Like "a*a" ' Возвратит True.
MyCheck = "F" Like "[A-Z]" ' Возвратит True.
MyCheck = "F" Like "[!A-Z]" ' Возвратит False.
MyCheck = "a2a" Like "a#a" ' Возвратит True.
MyCheck = "aM5b" Like "a[L-P]#[!c-e]" ' Возвратит True.
MyCheck = "BAT123khg" Like "B?T*" ' Возвратит True.
MyCheck = "CAT123khg" Like "B?T*" ' Возвратит False.

myString = "312T-87GD-8922"

If myString Like "###[A-Z]-##[A-Z][A-Z]-####" Then ...

Спец-символы в маске:

? Любой одиночный символ
* Ноль или более символов
# Любая одиночная цифра (0–9).
[charlist] Любой одиночный символ в классе символов (списке)
[!charlist] Любой одиночный символ не принадлежащий классу символов


2GSerg
Вероятно он в первом топике некорректный пример с ветками реестра привел ) Очень бы хотелось в это верить... если нет, JWST ,прислушайся к совету GSerg :!:

JWST
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 07.01.2006 (Сб) 21:05

Сообщение JWST » 21.01.2006 (Сб) 9:58

GSerg не хочу ведь вам грубо отвечать. Но вы видимо просто иногда (как и все) не внимательный человек:
Давайте отвлечёмся от реестра и вообще забудем про него.


Просто вот есть файл. Обычный. Текстовый. Без заморок.

JWST
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 07.01.2006 (Сб) 21:05

Сообщение JWST » 21.01.2006 (Сб) 10:06

Iq51 скорее всего это именно то, что для меня нужно. Вот только я так и не понял как заменять. Кажется в вашем примере только поиск, а как всё это дело заменить я так и не понял.

GSerg пример с реестром я привёл потому, что допустим я хочу сделать универсальную прогу, которая будет работать не только на моём компе. Если я сделаю без маски, то это (КАК ПРИМЕР!) значения реестра на всех OS разные и поэтому прога будет работать только на моём компе. Вот и вся суть. Я прекрасно понимаю, что
Это два разных пользователя.
Но в моём случае на компе он единственный.

JWST
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 07.01.2006 (Сб) 21:05

Сообщение JWST » 21.01.2006 (Сб) 10:10

Iq51 извините за вопрос не в тему, а как вы так сделали пример кода с подстветкой синтаксиса (отображение в форуме)

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 21.01.2006 (Сб) 10:55

Судя по этому и предыдущему топикам г-на JWST его цель написание некой проги именно по модификации реестра. Но непонятна цель этой проги... То ли автор плохо формулирует, то ли мы плохо понимаем...

Что должна сделать программа? И почему возникает вопрос о замене путей к разделам реестра в текстовом файле?
Весь мир матрица, а мы в нем потоки байтов!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.01.2006 (Сб) 11:03

JWST писал(а):GSerg не хочу ведь вам грубо отвечать.

Занятие глубоко бесполезное...


Теперь две цитаты подряд.
JWST писал(а):допустим я хочу сделать универсальную прогу, которая будет работать не только на моём компе.

JWST писал(а):Я прекрасно понимаю, что Это два разных пользователя. Но в моём случае на компе он единственный.

Так что ты делаешь: универсальную прогу или прогу, которая будет работать только на твоём компе и на компах, почти неотличимых от твоего?

Ну и ещё одна.
http://www.sysadmins.ru/rtfm/ask_howto.htm писал(а):Вопросы, которые задавать не надо

Вопрос: Как можно с помощью X сделать Y?
Ответ: Если вы хотите сделать Y, надо так и спрашивать, не предполагая заранее использование метода, который может вовсе не подходить. Вопросы такого вида часто задают те, кто не просто ничего не знает об X, но сбит с толку решаемой проблемой Y и слишком сконцентрирован на деталях своей конкретной ситуации. Обычно лучше игнорировать таких людей, пока они не сформулируют свою проблему лучше.



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

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 21.01.2006 (Сб) 12:05

Одним словом, на корректно поставленный вопрос воспоследует корректно поставленный ответ!

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

А пока мы видим именно попытки сделать X через Y и ничего больше
Весь мир матрица, а мы в нем потоки байтов!

JWST
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 07.01.2006 (Сб) 21:05

Сообщение JWST » 21.01.2006 (Сб) 22:10

!Viper! т.е. как я понял вы не можете помочь по вопросу
"замены одного текста на другой в файле по определённой маске". Жаль...

Я конечно кое что нашёл. Ну всмысле огромное спасибо Iq51
за его упоминание о Like, потому как именно благодаря ему я хоть узнал что в поиск то заносить.

Вот результат: http://bbs.vbstreets.ru/viewtopic.php?t=20041

Почему то у меня чувство, что это именно то, что мне нужно. До конца (пока ещё) не уверен, но если что, то спрошу позже, а пока спасибо всем.

JWST
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 07.01.2006 (Сб) 21:05

Сообщение JWST » 21.01.2006 (Сб) 23:21

GSerg почему то проследил ваше сообщение, но вот увидел и всё-таки решил ответить. Я понимаю, что вызываю у вас какую то неприязнь. Может это где-то на астральном уровне, может просто вы считаете, что главное отличие в жизни одних от других это то что одни владеют супер знаниями VB, а другие тупые, как пробки достают и так неохота им объяснять что и как, и поэтому лучше спросить "А зачем тебе вообще это нужно?". Я думаю что в жизни очень много разносторонних людей, которые не ставят своей целью постичь то, что им нужно (как мне например в данном случае) раз в сто лет. Вы спец (на ваше усмотрение) в VB . Я в другом деле. Это жизнь. Нужно принимать людей такими, какие они есть. А придираться к цитатам можно до бесконечности.
это было лирическое отступление...
А теперь вся суть программы, как написал один известный умный человек "Специяльно для придир".
При установки операционной системы имеется возможность сделать так, чтобы после установки сразу же устанавливались некоторые программы. Об этом очень удачно написано здесь: http://oszone.net/display.php?id=2747 . В связи именно с сразуустанавливаемыми программами очень часто приходится заносить много информации в реестр. Проблемы с этим нет. Взять создать CMD файл и положить туда конструкцию типа regedit /S file.reg .Всё в этом вопросе меня устраивало (пока пробовал поставить две проги) и я всё скомпоновал и всё работало, НО!!!
Потом я вдруг решил поставить такой дистрибутивчик не на C а на диск E.
И о УЖАС!!! проги распаковались, но вот инфа в реестре оказалась не та. А как же иначе? Все ссылки в файле реестра на С а проги то на Е.
Написал прогу, которая заменяет %drive% в файле реестра на текущий диск. Все файлы реестра отредактировал, поставив где нужно %drive%.
Теперь все стало ок. Устанавливается ос, а заием сразуустанавливаемая прога, после запускается моя прога, заменяет в файле реестра значение на текущий диск и затем обновлённый файл реесра заносится в реестр.
И так испытания прошли две проги и всё классно и я доволен. Но при внедрении в дистрибутив третей программы, я столкнулся с новым препядствием.
При иморте из реестра в файле появляются конструкция типа
[HKEY_USERS\S-1-5-21-839522115-448539723-725345543-1003\Software\WinRAR\Interface\Themes]
Путем долгих выяснений в другом форуме я выяснил, что нужно заменить это на [HKEY_CURRENT_USER\Software\WinRAR\Interface\Themes] . Т.к. в первом случае у каждой OS свои циферки. Понятное дело, что при установке новой OS будет один пользователь и что если мы заменим "циферки" на простое указание текущего пользователя, то добъёмся положительного результата.
Можно конечно заменить всё сразу (до создания дистрибутива) вручную, как я это делал с %drive%, но мне нужно прийдётся заменить около 50 значений в файле реестра. Это мне не трудно сделать, если бы файл был один.
А так как я хочу наклепать целый DVD с программами, то перелапатить два-три десятка файлов реестра как-то тяжко.

Вот я и решил, ну раз одну прогу написал, почему бы не написать ещё одну. Которая бы в моих файлах реестра сама заменяла, то что мне нужно. Но т.к. при установке нового дистрибутива OS (на VMVare) постоянно эти циферки меняются, вот я и решил использовать поиск по маске, потому как это будет подходящий для меня способ.

Думаю, напишу в форум. Ребата помогут заменить "циферки" на HKEY_CURRENT_USER.

Но ребят как попёрло, что остановить просто не возможно...
И самое обидное, что совершенно не туда. Просишь как? Они отвечают по еврейски (вопросом на вопрос) "А зачем?".

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.01.2006 (Вс) 7:56

JWST писал(а):Я понимаю, что вызываю у вас какую то неприязнь.

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

JWST писал(а):может просто вы считаете, что главное отличие в жизни одних от других это то что одни владеют супер знаниями VB, а другие тупые, как пробки достают и так неохота им объяснять что и как, и поэтому лучше спросить "А зачем тебе вообще это нужно?".

Знание VB здесь совершенно ни при чём. Я говорю о здравом смысле, которого в желаемых действиях нет. Меня не вставляет быть круче кого-то. Если бы я мог, я общался бы со всеми на равных. Но к сожалению, есть люди, несмотря ни на что переходящие к конструкциям типа "Самый умный, да?".

Если новичок на форуме по администрированию винды спросит: "Ребят, а как мне отформатировать диск? Мне сказали, что так всё будет работать быстрее", и ему скажут - ты чё, вообще всё сдохнет, а он в ответ - да вы тут все просто из себя строите, а помочь не можете, я же просто спросил - как отформатировать диск, а вы - зачем, зачем; я же знаю, что мне это поможет.

JWST писал(а):Я думаю что в жизни очень много разносторонних людей, которые не ставят своей целью постичь то, что им нужно (как мне например в данном случае) раз в сто лет.

Несомненно.
Однако всех разносторонних людей объединяет здравый смысл, продвинутость в котором одинаково ценится в любой "стороне".

Маленький пример.
ОДин раз меня просили научить работать на компьютере одного человека. Просили очень. И я согласился. Я прекрасно представлял спектр вещей, которые интересны мне и которые нафиг не нужны этому человеку. Я просто начал с основ интерфейса windows. С описания элементов управления (кнопок, списков...), потому что уровень был нулевой, и человек был не в состоянии отличить кнопку от списка. Но я наткнулся на стену, абсолютную и непробиваемую. "Я не хочу запоминать эти кнопки, я хочу просто уметь набирать тексты и сохранять их". Я пытался объяснить, что все программы для набора текста, и все программы вообще управляются этими самыми кнопками, списками и менюшками, и потому их придётся постичь несмотря ни на что. Бесполезно. "Я не хочу. Я хочу просто набирать текст". Но ты не сможешь даже его сохранить, не умея нажать мышью на кнопку "Сохранить" - нет, я хочу просто набирать текст.
Я не смог. Человек обижен на меня до сих пор. Но до сих пор (прошло 3 года) работать на компьютере он не умеет.

JWST писал(а):Вы спец (на ваше усмотрение) в VB . Я в другом деле. Это жизнь. Нужно принимать людей такими, какие они есть. А придираться к цитатам можно до бесконечности.

Да, я спец в VB, чем перед вами, заметьте, не горжусь, хоть вы, возможно, так и считаете. И я не придираюсь к цитатам, я пытаюсь показать вам слабые места в ваших же рассуждениях. Игнорировать эти мои попытки можно, однако в результате я либо поставлю вас в игнор как человека безнадёжного (см. пример выше), либо дам вам желаемый код, и буду тихо радоваться тому, как у вас начнётся в конце концов хаос.

JWST писал(а):А теперь вся суть программы, как написал один известный умный человек "Специяльно для придир".

Да, специально для меня, пожалуйста.

JWST писал(а):При иморте из реестра в файле появляются конструкция типа
[HKEY_USERS\S-1-5-21-839522115-448539723-725345543-1003\Software\WinRAR\Interface\Themes]

Значит вы экспортируете не то, не тем и не оттуда.

К примеру, если я regedit'ом экспортирую из реестра инфу о WinRar, то получаю файл типа
[HKEY_CURRENT_USER\Software\WinRAR\DialogEditHistory\FindArcNames]
"0"="*"

[HKEY_CURRENT_USER\Software\WinRAR\DialogEditHistory\FindNames]
"0"="*.idl"
"1"="*.inc"

[HKEY_CURRENT_USER\Software\WinRAR\DialogEditHistory\FindText]
"0"="const"



JWST писал(а):Путем долгих выяснений в другом форуме я выяснил, что нужно заменить это на [HKEY_CURRENT_USER\Software\WinRAR\Interface\Themes] . Т.к. в первом случае у каждой OS свои циферки. Понятное дело, что при установке новой OS будет один пользователь и что если мы заменим "циферки" на простое указание текущего пользователя, то добъёмся положительного результата.

Нет, это в корне неверный подход.

JWST писал(а):А так как я хочу наклепать целый DVD с программами, то перелапатить два-три десятка файлов реестра как-то тяжко.

Я вообще перестаю что-то понимать.
Если вы на DVD записываете каталоги с установленными программами, то как это будет работать, если программа при корректной установке копирует какие-то библиотеки в системные каталоги?
А если вы на DVD записываете дистрибутивы типа setup.exe, то зачем вам править reg, раз setup сам всё пропишет?

JWST писал(а):Думаю, напишу в форум. Ребата помогут заменить "циферки" на HKEY_CURRENT_USER.

Нет. Ребята покажут, почему этого делать не нужно.
И ещё покажут, как сразу получить от regedit HKEY_CURRENT_USER. И ещё - если будет интересно - объяснят, что такое HKEY_CURRENT_USER на самом деле.
Но для этого надо избавиться от догмы о том, что поиск по маске однозначно поможет.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Iq51
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 06.12.2004 (Пн) 15:30

Сообщение Iq51 » 24.01.2006 (Вт) 5:16

JWST писал(а):Iq51 извините за вопрос не в тему, а как вы так сделали пример кода с подстветкой синтаксиса (отображение в форуме)

Нажми на кнопку ответить и там заметишь кнопочку "VB" =)
В быстром ответе её нет )

JWST
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 07.01.2006 (Сб) 21:05

Сообщение JWST » 25.01.2006 (Ср) 15:01

GSerg, увадаемый и как я понял действительно грамотный и образованый человек. Я понимаю, что для вас этот подход не правильный. Скорее всего он именно для вас не подходит и возможно не приемлим. НО! ДЛЯ МЕНЯ... это самое то. Я понимю, что со стороны это выглядит как-то необычно и может быть даже не правильно. Я же привык к рассуждениям "Не важен способ, Важен результат!". Только лишь поэтому для меня ПОДХОДИТ этот способ. Он меня устраивает. Этот диск я делаю для себя. И только лишь поэтому хотел просто заменить по маске одно на другое. Я еще раз повторюсь (уважая все ваши знания и понимание) : "Для Вас это неприемлимо и не правильно, но для меня этот вариант изумительно подходящий". Как мне это сделать?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 25.01.2006 (Ср) 15:13

:roll:

:(

Код: Выделить всё
Function SIDReplace(s As String) As String
  If s Like "[[]HKEY_USERS\S-#-#-##-#########-#########-#########-####*]" Then SIDReplace = "[HKEY_CURRENT_USER\" & Mid$(s, 57) Else SIDReplace = s
End Function
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

JWST
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 07.01.2006 (Сб) 21:05

Сообщение JWST » 25.01.2006 (Ср) 16:38

Ну вот это совсем другое дело. Я давно подозревал, что на Магадане нормальные ребята. :lol:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 157

    TopList