Paulo Sergio
não registrado
|
|
Postada em 06/11/2008 00:57 hs
ai galera to querendo faze um projeto aki e pega algumas informacoes de um arquivo .INI mais naum sei nem por onde comesa as seguintes informacoes q ele deve ser configurado pelo ini q esta sendo pelo projeto -- Private Sub Form_Load() Site = " www.google.com.br" IP = "127.0.0.1" Porta() = Split("44405;55901", ";") Call Winsock1.Connect(IP, Porta(1)) WebBrowser1.Navigate2 (Site) End Sub -- quero faze um ini q ele iria pega a porta o ip e o site pelo ini no codigo acima ele esta pegando pelo form.. se algum tive nocao de como faze.. pf me ajuda
|
|
|
|
|
Postada em 06/11/2008 08:18 hs
Cara, recentemente eu fiz um esquema assim. Olha como eu leio o arquivo: '____________________________ If Dir(WF_ArqConf) <> "" Then ' Open WF_ArqConf & "01" For Input Access Read As #1 ' WL_Ind = 0 Do While Not EOF(1) Line Input #1, WL_Linha ' If WL_Linha <> "" Then WL_Texto(WL_Ind) = Trim(Split(WL_Linha, "=")(1)) WL_Ind = WL_Ind + 1 End If Loop ' Close #1 ' End If '____________________________
Para saber o que ler eu fiz o seguinte: coloquei "=" como delimitador. Ou seja, o arquivo precisa ser <Campo> = <valor> <Campo1> = <valor1> <Campo2> = <valo2>
Então eu criei um vetor para armazenar os resultados, e depois varro este vetor retirando os dados que eu quero.
__________________
"It is the way of men to make monsters...and it is the nature of monsters to destroy their makers."
-F.E.A.R. (First Encounter Assault Recon )
|
|
|
LCRamos
|
GOIANIA GO - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 06/11/2008 08:30 hs
Em um módulo: Public Function sGetINI(sINIFILE As String, sSection As String, sKey _ As String, sDefault As String) As String Dim sTEMP As String * 256 Dim nLENGTH As Integer sTEMP = Space$(256) nLENGTH = GetPrivateProfileString(sSection, sKey, sDefault, sTEMP, _ 256, sINIFILE) sGetINI = Left$(sTEMP, nLENGTH) End Function No Formulário: Private Sub Form_Load() Dim sINIFILE As String Dim sDRIVE As String sINIFILE = App.Path & "NOMEDOARQUIVO.INI" If Dir$(sINIFILE) = "" Then MsgBox"Verificar Arquivo de Configurações na Inicialização" End End If sDRIVE = sGetINI(sINIFILE, "UserDrive", "Drive", "C:") End Sub Bem, ai peguei o Drive do BD, se não existir a configuração ele pega o "C:" Agora no Arquivo .INI [UserDrive] Drive=D: 'HD de trabalho vlu//
|
|
|
Treze
|
SÃO VICENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 06/11/2008 11:57 hs
Eis minha contribuição em um módulo: ' ' funções para escrever e ler arquivos ini ' Declare Function WritePrivateProfileString Lib "kernel32" Alias _ "WritePrivateProfileStringA" (ByVal lpApplicationName As String, _ ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName _ As String) As Long ' Declare Function GetPrivateProfileString Lib "kernel32" Alias _ "GetPrivateProfileStringA" (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 Ret As String ' ' sub função para gravar um arquivo ini ' Public Sub WriteINI(FileName As String, Section As String, Key As String, Text As String) WritePrivateProfileString Section, Key, Text, FileName End Sub ' ' Função para ler um arquivo ini ' Public Function ReadINI(FileName As String, Section As String, Key As String) Ret = Space$(255) retLen = GetPrivateProfileString(Section, Key, "", Ret, Len(Ret), FileName) Ret = Left$(Ret, retLen) ReadINI = Ret End Function agora no form: modo de gravação sintaxe WriteINI "c:\nome_do_arquivo.ini", "secao", "chave", "conteudo" exemplo feito para sua necessidade no load do form: Private Sub Form_Load() WriteINI "c:\webconfig.ini", "caminho", "ip", "127.0.0.1" WriteINI "c:\webconfig.ini", "caminho", "porta", "44405;55901" End Sub parece complexo mas é simples, se o arquivo webconfig.ini não existir ele será criado, se existir, nele serão inseridos os dados. o código acima criará o arquivo ini com esta caracteristica. [caminho] ip = 127.0.0.1 porta = 44405;55901 viu como é fácil criar pelo programa mesmo seu arquivo ini, agora outra forma bem dinâmica seria usando textbox para criar o seu arquivo ini ex:WriteINI TxtArquivo.Text, TxtSecao.Text, TxtChave.Text, TxtString.Text ------------------------------------------------------------------------------------------ então vimos como criar o arquivo agora veremos como abrir o aqruivo ini para leitura ainda usando seu exemplo faremos desta forma: A leitura é passada como string sintaxe: caminho = ReadINI("c:\nome_do_arquivo.ini", "secao", "chave")
ex: Site = ReadINI("c:\webconfig.ini", "caminho", "site") agora baseado em seu código Private Sub Form_Load() Site = ReadINI("c:\webconfig.ini", "caminho", "site") IP = ReadINI("c:\webconfig.ini", "caminho", "ip") Porta() = Split(ReadINI("c:\webconfig.ini", "caminho", "porta"), ";") Call Winsock1.Connect(IP, Porta(1)) WebBrowser1.Navigate2 (Site) End Sub pronto a leitura será feita pelo arquivo ini espero ter ajudado. até
|
TÓPICO EDITADO
|
|
|
|
Paulo Sergio
não registrado
|
|
Postada em 06/11/2008 14:02 hs
Bom amigos agradeco a todos pela ajuda principalmente ao "Treze" pela resposta mais detalhada e a que mais esclareceu minhas duvidas mais ainda estou com um poblema aki ele me expecifico o caminho a onde ira ta a ini eu queria q ele puxache da pasta raiz a onde o executavel esta explo Site = ReadINI("c:webconfig.ini", "caminho", "site") ele esta puxando a ini do disco c eu queria q estivese puxando da pasta raiz 1º Tentativa Site = ReadINI("webconfig.ini", "caminho", "site") 2º Tentativa Site = ReadINI("webconfig.ini", "caminho", "site") nem uma das duas funfarao estou fazendo algo de errado ? como tenho q faze para q o exe pegue o ini da pasta raiz ? agora aki tem outro poblema um pouco mais grave quando coloko pra puxa a porta pelo arquivo ini ele da um erro na linha seguinte " a linha q se tenta conhecta pela porta" Porta() = Split(ReadINI("c:webconfig.ini", "caminho", "porta"), ";") > Erro nessa aki > Call Winsock1.Connect(IP, Porta(1)) Subscript out of range alguem sabe oq posso faze pra sanar esse poblema ? grato des de ja!
|
|
|
Paulo Sergio
não registrado
|
|
Postada em 06/11/2008 14:06 hs
aviso o segundo poblema eu resolvi mais o primeiro ainda perciste se alguem sube como posso resolver agradeco
|
|
|
|