'=========================================================================== ' Subject: SEARCH FOR PROFILE IN .INI FILE Date: 11-21-97 (12:44) ' Author: rift@hotmail.com Code: QB, QBasic, PDS ' Origin: rift@hotmail.com Packet: MISC.ABC '=========================================================================== 'ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ '³±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±³ 'ĆÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ '³ ž Since a lot of Programs use the .INI File Format to save setting ³ '³ ž If Deceided to Make a Function like The Windows API. ³ '³ ž I am not working on a Sub That Will Allow to write into .INI File, ³ '³ ž I will Post is as soon as its done. ³ '³ ž If You Have any Comments or Suggestion, You Can Reach Me at ³ '³ ž rift@hotmail.com. ³ 'ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ DECLARE FUNCTION GetPrivateProfileString$ (FileName AS STRING, Section AS STRING, iKey AS STRING) DECLARE FUNCTION CheckFile% (FileName AS STRING) FUNCTION CheckFile% (FileName AS STRING) 'ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ '³±±±±±±±±±±±±±±±±±±±±±±±±±±± CheckFile% Function ±±±±±±±±±±±±±±±±±±±±±±±±±±³ 'ĆÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ '³ ž This Checks iF The File Exist or Not Without Having To Use ON ERROR. ³ '³ ž It Returns 1 iF The File is Present and 0 iF Not. ³ '³ ³ '³ ž Usage - Print CheckFile%("C:\AUTOEXEC.BAT") , This Should Returns 1. ³ '³ ž By The Way , it Doesn't Support Long File Name. ³ 'ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ IF LEN(FileName) = 0 THEN GOTO CheckFileError FF% = FREEFILE OPEN FileName FOR BINARY AS FF% IF LOF(FF%) = 0 THEN CLOSE FF% KILL FileName GOTO CheckFileError END IF CLOSE FF% CheckFile% = 1 EXIT FUNCTION CheckFileError: CheckFile% = 0 END FUNCTION FUNCTION GetPrivateProfileString$ (FileName AS STRING, Section AS STRING, iKey AS STRING) 'ŚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄæ '³±±±±±±±±±±±±± GetPrivateProfileString$ Function ±±±±±±±±±±±±±±±±±±±±±±±±±±³ 'ĆÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ '³ ž This Returns The Value From The Key oF The Section Given From a .INI. ³ '³ ž If The Section or The Key Was Not Found it Returns NULL. ³ '³ ³ '³ ž Usage - Print GetPrivateProfileString$("SAMPLE.INI","SECTION","KEY1" ³ '³ ž This Will Returns The Value Needed. ³ '³ ³ '³ ž WARNING - Do Not Use '[' ']' For The Section. ³ 'ĄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŁ IF CheckFile%(FileName) = 0 THEN GOTO GetPrivateProfileStringError DIM TempString AS STRING FF% = FREEFILE OPEN FileName FOR INPUT AS FF% DO UNTIL EOF(FF%) LINE INPUT #FF%, TempString IF UCASE$(TempString) = CHR$(91) + UCASE$(Section) + CHR$(93) THEN GOTO FindiKey END IF LOOP CLOSE FF% GOTO GetPrivateProfileStringError FindiKey: DO UNTIL EOF(FF%) LINE INPUT #FF%, TempString IF LEFT$(TempString, 1) = CHR$(91) THEN GOTO GetPrivateProfileStringError END IF IF LEFT$(UCASE$(TempString), LEN(iKey) + 1) = UCASE$(iKey) + CHR$(61) THEN GOTO GetValue END IF LOOP GOTO GetPrivateProfileStringError GetValue: TempString = RIGHT$(TempString, LEN(TempString) - LEN(iKey) - 1) CLOSE FF% GetPrivateProfileString$ = TempString EXIT FUNCTION GetPrivateProfileStringError: CLOSE FF% GetPrivateProfileString$ = "NULL" END FUNCTION