Показать сообщение отдельно
Старый 11.06.2012, 03:04   #18
radiobutton
Бывалый
 
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений
(для 546 пользователей)
Ответ: WriteString записывает не только указанное значение

Сообщение от infuzo Посмотреть сообщение
Я во всём разобрался. Вот, если кому-то будет полезно - заимствуйте.
Чтение ini-файла:
Global  INIReadRes$
Function ReadINI(FileName$, KeyName$)
	ReadINIStream = ReadFile(FileName)
	Repeat
		FindKeyT$ = ReadLine(ReadINIStream)
		a% = 0
		Repeat
			a = a+ 1
		Until Mid(FindKeyT$, a, 1) = "="
		FindKey$ = Left(FindKeyT$, a-1) 
	Until FindKey$ = KeyName$
	INIReadRes = Mid(FindKeyT$, a+1, 10000)
	CloseFile(ReadINIStream)
End Function

Нету проверок на случай если в файле не будит нужного ключа и на случай если в строке не будит знака "=". Твоя прога зависнет, что не хорошо
ну и тут
INIReadRes = Mid(FindKeyT$, a+1, 10000)
10000 как то нечетко. Например c# бы выдал ошибку в таком случае при выполнении. Лучше уж сделать так:
INIReadRes = Mid(FindKeyT, a+1, len(FindKeyT)-a)
или
INIReadRes = Right(FindKeyT,len(FindKeyT)-a)

Да и вообще перебирать весь файл ради 1 значения как то нечетко. Лучше запиши весь файл в массив строк и уже массив перебирай с помощью свой функции.
Или заранее перебери весь файл и занеси все значения ключей в глобальные переменные или глобальный массив.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
infuzo (11.06.2012)