SALVAR E LER DADOS EM FICHEIROS

USAMA.SUKOCKEN 12/04/2010 21:05:49
#339154
boas

preciso de ke um programa meu leia e escreva umas informaçoes num ficheiro...
ja tentei em ini

e sei este codigo

http://vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=6118


mas ele nao lê o ficheiro mas escreve ....

se voçes poderem ajudar....

tbm aceito outras formas de ler e escrever em ficheiros....

SAMUKA 13/04/2010 21:39:15
#339282
Resposta escolhida
Qual erro?
USAMA.SUKOCKEN 14/04/2010 08:48:04
#339309
o problema é nao dá erro..... e nao o ke se passa pra ele nao ler....

o visual basic diz ke ele retoma o valor em ([Ô][Ô]) ...


SAMUKA 14/04/2010 10:08:48
#339318
Encontrei o erro no código


Essa linha está assim:
sArquivo = GetAppPath() & [Ô][Ô] & pNomeArquivoINI 


Está faltando a \
sArquivo = GetAppPath() & [Ô]\[Ô] & pNomeArquivoINI 


Nas funcões READINI e WRITEINI
USAMA.SUKOCKEN 14/04/2010 20:49:13
#339403
pus o codigo dele num module

Ja grava direito....

[ô]para gravar

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
WritePrivateProfileString([Ô]Geral[Ô], [Ô]namesave[Ô], [Ô]usama[Ô], My.Application.Info.DirectoryPath & [Ô]\file.txt[Ô])
[ô]ou assim
WritePrivateProfileString([Ô]Geral[Ô], [Ô]namesave[Ô], [Ô]usama[Ô], Application.StartupPath & [Ô]\file.txt[Ô])
End Sub
mas continua a nao a ler....


e pra ler fiz assim...


[ô]para ler

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Label1.Text = ReadINI(Application.StartupPath & [Ô]\file.txt[Ô], [Ô]Geral[Ô], [Ô]namesave[Ô])

End Sub


há algum erro???
SAMUKA 14/04/2010 22:45:50
#339412
Veja se o arquivo foi criado no diretório e está correto.
JWCELYO 14/04/2010 22:51:19
#339413
caso tenha muita dificuldade utilize essa dll desenvolvida em c# que também pode ser usado em vb.net
http://vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=8532
USAMA.SUKOCKEN 15/04/2010 07:25:30
#339431
o caminho esta bem.... mas penso ke o problema esta em mandar ler.... talvez nao esteja a declarar bem....
SAMUKA 15/04/2010 09:14:48
#339448
Poderia postar o código que você colocou no módulo?
USAMA.SUKOCKEN 15/04/2010 20:00:19
#339542
  Imports System.IO
Imports System.Text

Module Module1

[ô]Declaração de chamada às APIS
Declare Function WritePrivateProfileString Lib [Ô]kernel32[Ô] Alias [Ô]WritePrivateProfileStringA[Ô] (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
Declare Function GetPrivateProfileString Lib [Ô]kernel32[Ô] Alias [Ô]GetPrivateProfileStringA[Ô] (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
#Region [Ô]Tratamento arquivo INI[Ô]
Public Sub WriteINI(ByVal pNomeArquivoINI As String, ByVal pSecao As String, ByVal pChave As String, ByVal pTexto As String)
[ô]Declaração de variáveis
Dim sArquivo As String

[ô]Define o local da aplicação
sArquivo = GetAppPath() & [Ô]\[Ô] & pNomeArquivoINI

[ô]Faz a gravação do texto na chave do arquivo INI
WritePrivateProfileString(pSecao, pChave, pTexto, sArquivo)
End Sub
Public Function ReadINI(ByVal pNomeArquivoINI As String, ByVal pSecao As String, ByVal pChave As String) As String
[ô]Declaração de variáveis
Dim iRetLen As Integer
Dim sRetorno As String
Dim sArquivo As String

[ô]Monta caminho para o arquivo INI
sArquivo = GetAppPath() & [Ô]\[Ô] & pNomeArquivoINI

[ô]Faz a leitura do conteúdo da chave do arquivo INI
sRetorno = Space$(255)
iRetLen = GetPrivateProfileString(pSecao, pChave, [Ô][Ô], sRetorno, Len(sRetorno), sArquivo)
sRetorno = Left(sRetorno, iRetLen)

[ô]Retorna a leitura da chave
Return sRetorno
End Function


Private Function GetAppPath() As String
[ô]Declaração de variáveis
Dim FSO As New System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly.Location)

[ô]Retorna o caminho da aplicação
Return FSO.DirectoryName
End Function
#End Region
End Module
USAMA.SUKOCKEN 16/04/2010 07:39:55
#339559
ja consegui......

http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=335204&varWorld=

fiz as seguintes as alteraçoes....

mudar a alterar readini

     Public Function ReadIni(ByRef Filename As String, ByRef Section As String, ByRef Key As String, Optional ByRef Default_Renamed As String = [Ô][Ô]) As String
Dim BufferSize, Ret As Integer
Do
BufferSize = BufferSize + 256
ReadIni = Space(BufferSize)
Ret = GetPrivateProfileString(Section, Key, Default_Renamed, ReadIni, BufferSize, Filename)
Loop Until Ret < BufferSize - 1
If Ret > 0 Then
ReadIni = VB.Left(ReadIni, Ret)
Else
ReadIni = [Ô][Ô]
End If
End Function


declarar isto no module e no form

 Imports VB = Microsoft.VisualBasic  



e para ler o ficheiro ini fiz a assim....
  Label1.Text = ReadIni(My.Application.Info.DirectoryPath & IIf(VB.Right(My.Application.Info.DirectoryPath, 1) <> [Ô]\[Ô], [Ô]\[Ô], [Ô][Ô]) & [Ô]file.txt[Ô], [Ô]Geral[Ô], [Ô]namesave[Ô], [Ô]ss[Ô])



se acharem melhorias melhor!!!
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas