Есть ли способ прочитать INI-файл в память, а затем прочитать конкретные значения из него? - PullRequest
0 голосов
/ 17 мая 2010

У меня есть ситуация, когда INI-файл находится в памяти (в строковой переменной), и я хотел бы прочитать значения из него без записи данных INI-файла на диск.

ОБНОВЛЕНИЕ: Это данные, которые я не хочу записывать на HD. Я загружаю его с веб-сервера в память и затем получаю некоторые данные.

Есть ли способ сделать это в VB6? Может быть, с вызовом Win API?

Ответы [ 5 ]

2 голосов
/ 21 мая 2010

Клей

Проверьте эту статью на DevX.com

Чтение / запись INI без использования API

Это должно привести вас в правильном направлении. Модули немного грязные и на этом этапе требуют путь для сохранения INI. Вместо этого просто измените модули, чтобы использовать вашу строку напрямую, и вы должны получить желаемый результат. Дайте мне знать, как это работает для вас.

1 голос
/ 17 мая 2010

INI-файл должен храниться на жестком диске. Если вы хотите сохранить в реестре (это должно быть добавлено и в файл реестра), вы можете использовать следующие функции:

SaveSetting
GetSetting
0 голосов
/ 21 мая 2010

Да, почти все возможно в VB6.Но я не думаю, что есть какой-либо Windows API для этого.

Если вы не можете найти библиотеку для этого, вам придется кодировать ее самостоятельно.Если вам нужно написать код самостоятельно, посмотрите, сможете ли вы найти какой-нибудь существующий код, который работает с INI-файлами, чтобы вы знали, как работать с INI-файлами.

0 голосов
/ 21 мая 2010

Объявить импорт двух функций Windows API

Public Declare Function GetPrivateProfileStringA Lib "kernel32.dll" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long 

Public Declare Function WritePrivateProfileStringA Lib "kernel32.dll" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long 

Для чтения

sReturn = Space(255)
sReturn = Left(sReturn, GetPrivateProfileStringA(header, key, defaultReturn, sReturn, 255, filePath))

Для письма

WritePrivateProfileStringA header, key, Datum, filePath

Помните, что структура файла INI

[header]
key=data 
0 голосов
/ 17 мая 2010

Если вы не хотите сохранять его на диске, я думаю, что может быть сложно использовать какие-либо конкретные вызовы API. Но если это INI-файл, он должен быть в структурированном формате, почему бы просто не просмотреть его до нужного раздела, а затем прочитать значения, которые вы хотите из него.

Это было давно, но должно быть что-то вроде этого, я думаю:

Просто Split на новых строках, чтобы получить массив строк, тогда каждый раздел должен начинаться в определенном формате, и для каждой строки там вы проверяете, содержит ли он = я думаю, и если да, то все слева первый = это имя значения, а все, что справа от него, является значением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...