Помогите пожалуйста работой с ini файлами!!!!!!!!!!!!!!!!

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

Помогите пожалуйста работой с ini файлами!!!!!!!!!!!!!!!!

Сообщение Mainland » 16.10.2003 (Чт) 11:25

Для этого уществуют API-функции
GetPrivateProfileInt
GetPrivateProfileString
WritePrivateProfileString
GetPrivateProfileSection
Они все для записи и для чтения, но нет ни одной для удаления всей секции или отдельных параметров в ней.
Например содержание ini файла:

[URL]
Yandex=www.yandex.ru
[DOC]
Документ1=C:\doc1.doc
Документ2=C:\doc2.doc

Каим образом мне удалить например всю секцию URL с параметром?
И как мне в секции DOC удалить параметр Документ2=C:\doc2.doc ?
Есть такие API-функции, или может есть еще более-менее простой способ?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 16.10.2003 (Чт) 11:49

Да просто. Считал весь файлв строку, удалил нужную строку replace и записал обратно.

Mainland
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 16.10.2003 (Чт) 11:16

Сообщение Mainland » 16.10.2003 (Чт) 12:49

RayShade можешь небольшой примерчик (как это сделать) показать?

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 16.10.2003 (Чт) 13:15

Mainland писал(а):RayShade можешь небольшой примерчик (как это сделать) показать?


А потыкать? :roll:

ЗЫ: По хорошему надо примерчик дать, но че то лень мне :)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 16.10.2003 (Чт) 13:38

Ну типа хотя и лень мне и вообще, я не приветствую такие примеры давать...

Код: Выделить всё
with new scripting.filesystemobject
st = replace(.getfile("c:\1.ini").openastextstream(forreading).readall,"Документ2=C:\doc2.doc","",,,vbtextcompare)
.getfile("c:\1.ini").openastextstream(forwriting).write st
end with

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 16.10.2003 (Чт) 17:38

:P :P :P :P :P :P :P :P :P :P :P
Хоть меня не кто и не спрашивал...

На мой взгляд удалить параметр проще, используя API:
Код: Выделить всё
WritePrivateProfileString lpApplicationName,lpKeyName, 0&,lpFileName

Mainland
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 16.10.2003 (Чт) 11:16

Сообщение Mainland » 17.10.2003 (Пт) 5:42

ANDLL используя твой пример, что получается:
Например я хочу удалить параметр Документ1=C:\doc1.doc из вышепоказанного примера.
Пишу: WritePrivateProfileString "DOC", "Документ1", 0&, App.Path & "\Required\file.ini"
В итоге получаю: Документ1=0 Или я что не пойму? :roll:
Мне это не надо, мне надо удалить весь параметр, а не присвоить ему значение 0. Тем более предложенный тобой вариант не может удалить всю секцию [DOC] c параметрами.
Вот удобно из VB работать с реестром, хочешь удаляй, хочешь пиши. При работе с ini только пиши, изменяй, читай, но удалять никак. :(

Mainland
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 16.10.2003 (Чт) 11:16

Сообщение Mainland » 17.10.2003 (Пт) 5:52

RayShade я начинающий программатор :) и не совсем понял:
Код: Выделить всё
with new scripting.filesystemobject

это что? :? и соответственно не понял
Код: Выделить всё
openastextstream(forreading).readall

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

Сообщение GSerg » 17.10.2003 (Пт) 9:28

Mainland писал(а):но удалять никак. :(

Ой ли?
Вложения
INI.zip
Класс для работы с ИНИ. Заодно пример удаления из оного.
(2.43 Кб) Скачиваний: 114
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mainland
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 16.10.2003 (Чт) 11:16

Сообщение Mainland » 17.10.2003 (Пт) 11:06

GSerg Спасибо ОГРОМЕННОЕ! :lol: Настоящий друг!


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

    TopList