Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос:  как найти файл config? Добавлено: 13.08.09 00:59  

Автор вопроса:  avers_inc
можно ли работать с одним config-файлом из разных проектов?
вопрос в следующем:
есть один проект, который использует в работе параметры, записанные в файле user.config, который visual studio сама по себе размещает где-то в недрах Documents and settings, и при этом использует для наименования поддиректорий какой-то шифр...
мне нужно добавить в это решение еще один проект (в будущем отдельный exe-шник). оба экзешника будут устанавливаться одновременно из одного пакета. но надо, чтоб второй проект использовал файл конфигурации первого. Можно ли как нибудь этого добиться стандартными средствами?

Ответить

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

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 13.08.09 03:37
Можно например хранить эти настройки в реестре.

config-файл тут не подойдет

Ответить

Номер ответа: 2
Автор ответа:
 UnDeAdZak



Вопросов: 80
Ответов: 476
 Профиль | | #2 Добавлено: 13.08.09 08:26
Или создай свой .ini -файл.

Ответить

Номер ответа: 3
Автор ответа:
 avers_inc



Вопросов: 7
Ответов: 19
 Профиль | | #3 Добавлено: 13.08.09 13:28
Artyom пишет:
Можно например хранить эти настройки в реестре.

UnDeAdZak пишет:
Или создай свой .ini -файл.


а можете подсказать или дать ссілку, что почитать, как с ними работать средствами VB2008? А то в VB 6.0 я работал с и с реестром и с ini-файлами через API, но перенести их в VB2008 почему-то не получается...

Ответить

Номер ответа: 4
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #4 Добавлено: 13.08.09 15:36
Для чтения файлов есть в пространстве имён System.IO StreamReader & StreamWriter
Для работы с ини файлами мож и есть специальный класс какой, но я про такой не знаю. Вообще читал что для таких вещей в уже советуют использовать XML и для работы с ними есть тоже куча классов.

Ответить

Номер ответа: 5
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #5 Добавлено: 13.08.09 15:44
вот ссылка тут много чего можно найти
http://social.msdn.microsoft.com/Search/ru-RU/

Ответить

Номер ответа: 6
Автор ответа:
 avers_inc



Вопросов: 7
Ответов: 19
 Профиль | | #6 Добавлено: 13.08.09 16:25
А не могли бы подсказать, где у меня ошибка?
  1. Declare Function GetPrivateProfileString Lib "kernel32" Alias _
  2.         "GetPrivateProfileStringA" (ByVal lpApplicationName _
  3.         As String, ByVal lpKeyName As String, ByVal lpDefault _
  4.         As String, ByVal lpReturnedString As String, ByVal _
  5.         nSize As Int32, ByVal lpFileName As String) As String
  6.     Declare Function WritePrivateProfileString Lib "kernel32" Alias _
  7.             "WritePrivateProfileStringA" (ByVal lpApplicationName _
  8.             As String, ByVal lpKeyName As String, ByVal lpString As String, _
  9.             ByVal lpFileName As String) As Int32
  10.  
  11. Public Function sGetINI(ByVal sINIFile As String, ByVal sSection As String, ByVal sKey _
  12.         As String, ByVal sDefault As String) As String
  13.         'Процедура чтения INI-файла
  14.         Dim sTemp As String
  15.         Dim nLength As Integer
  16.  
  17.         sTemp = Space$(256)
  18.         nLength = GetPrivateProfileString(sSection, sKey, sDefault, sTemp, 255, sINIFile)
  19.         sGetINI = Left$(sTemp, nLength)
  20.     End Function
  21.  
  22.     Public Sub WriteINI(ByVal sINIFile As String, ByVal sSection As String, ByVal sKey _
  23.             As String, ByVal sValue As String)
  24.         'Процедура записи в INI-файл
  25.         Dim n As Integer
  26.         Dim sTemp As String
  27.  
  28.         sTemp = sValue
  29.         For n = 1 To Len(sValue)
  30.             If Mid$(sValue, n, 1) = vbCr Or Mid$(sValue, n, 1) = vbLf _
  31.                 Then Mid$(sValue, n) = " "
  32.         Next n
  33.         n = WritePrivateProfileString(sSection, sKey, sTemp, sINIFile)
  34.     End Sub


У меня в VB6.0 это работало. Поменял только типы long на Int32 и Any на String.
запись работает отлично, а при попытке чтения, он вроде бы даже видит значение (при пошаговом выполнении это видно), например
  1. MsgBox(sGetINI(psCFG, "MySQL", "MySQLBinPath", "CFGError"))
, выдает ошибку: "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена."

Ответить

Страница: 1 |

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



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