Jump to content

Recommended Posts

Posted (edited)

Estou a tentar fazer com que ele leia um ficheiro e que guarda linha a linha sendo que a primeira linha será user a segunda senha e assim sucessivamente guardando em ListaUtilizadores(i).user & ListaUtilizadores(i).senha os dados que eu quero ... mas está me a dar um erro a dizer que ultrapassou o fim do ficheiro sendo que tem lá um EOF(1) Alguém sabe como resolver isto ?

 OpenFileDialog1.CheckFileExists = True
		OpenFileDialog1.ShowDialog()
		Try

			FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)
			Do Until EOF(1)
				ReDim Preserve ListaUtilizadores(i + 1)
				Dim a As New Utilizador
				ListaUtilizadores(i) = a
				ListaUtilizadores(i).user = LineInput(1)
				ListaUtilizadores(i).senha = LineInput(1)
				i += 1
				ReDim Preserve ListaUtilizadores(i + 1)
			Loop
			n = i - 1

		Catch ex As Exception
			MsgBox(ex.ToString)
		Finally
			FileClose(1)
		End Try
End Sub
Edited by Caça
GeSHi

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Posted

Podes postar o ficheiro para melhor análise???

o ficheiro só tem

abc

abc

lucas

lucas

Sem espaços sem paragrafos sem nada tal como está .

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Posted

Não terás uma linha em branco no fim do ficheiro ? Quando o abres num editor e fazes Ctrl+End o cursor fica no final do segundo 'lucas' ?

Como estás a fazer dois LineInput por cada EOF se o ficheiro tiver um número impar de linhas vai dar erro no segundo LineInput.

Posted (edited)

O .net tem outras classes para fazer esse trabalho, em vez de utilizares como estás a fazer, porque não utilizas algo deste género:

OpenFileDialog1.CheckFileExists = True
	OpenFileDialog1.ShowDialog()
	Dim listaUtilizadores As New List(Of Utilizadores)
	Try
		Dim conteudoFicheiro As String() = IO.File.ReadAllLines(OpenFileDialog1.FileName)
		For i As Int16 = 0 To conteudoFicheiro.Length - 1 Step 2
			Dim novoUser As New Utilizador
			novoUser.user = conteudoFicheiro(i)
			novoUser.pass = conteudoFicheiro(i + 1)
			listaUtilizadores.add(novoUser)
		Next
	Catch ex As Exception
		MsgBox(ex.ToString)
	End Try

E tens de ter atenção como foi referido à possibildade de existirem linhas em branco no fim do ficheiro...

Edited by Tuntankamon
Posted

O .net tem outras classes para fazer esse trabalho, em vez de utilizares como estás a fazer, porque não utilizas algo deste género:

OpenFileDialog1.CheckFileExists = True
	OpenFileDialog1.ShowDialog()
	Dim listaUtilizadores As New List(Of Utilizadores)
	Try
		Dim conteudoFicheiro As String() = IO.File.ReadAllLines(OpenFileDialog1.FileName)
		For i As Int16 = 0 To conteudoFicheiro.Length - 1 Step 2
			Dim novoUser As New Utilizador
			novoUser.user = conteudoFicheiro(i)
			novoUser.pass = conteudoFicheiro(i + 1)
			listaUtilizadores.add(novoUser)
		Next
	Catch ex As Exception
		MsgBox(ex.ToString)
	End Try

E tens de ter atenção como foi referido à possibildade de existirem linhas em branco no fim do ficheiro...

Qual a diferença ?

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Posted (edited)

Gostava de fazer login por cada utilizador mas nao estou a conseguir também

For Each listaUtilizadores As Utilizador In ..........

login()

Next

Obs: Fiz o seguinte

Dim l As Integer

For l = 0 To listaUtilizadores.Count

login()

Next

vou testar agora

Obs: Não deu ele repete sempre o primeiro 😕

Edited by Lukas S.

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Posted

Tens de dar indicação no Sub login sobre qual o utilizador. Fazer tão-somente login() não vai indicar nada à subrotina.

Ah,k e a diferença é haver bibliotecas novas e cheias de novas funcionalidades na plataforma .NET enquanto tu estás a utilizar métodos do VB clássico, métodos estes mantidos actualmente apenas por uma questão de facilitar a compatibilidade.

Knowledge is free!

Posted

Tens de dar indicação no Sub login sobre qual o utilizador. Fazer tão-somente login() não vai indicar nada à subrotina.

Ah,k e a diferença é haver bibliotecas novas e cheias de novas funcionalidades na plataforma .NET enquanto tu estás a utilizar métodos do VB clássico, métodos estes mantidos actualmente apenas por uma questão de facilitar a compatibilidade.

thoga ensinam-me estes métodos na escola e sempre os usei ... :X um bocado complicado

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Posted

thoga ensinam-me estes métodos na escola e sempre os usei ... :X um bocado complicado

Ensinam em pleno 2012 métodos ante-2005? Valha-nos Santa Justa e mais o seu elevador...

Mete o "Until EOF" no Loop e não no Do - poderá ajudar, não sei, foi um palpite que me surgiu de repente...

Knowledge is free!

Posted

Ensinam em pleno 2012 métodos ante-2005? Valha-nos Santa Justa e mais o seu elevador...

Mete o "Until EOF" no Loop e não no Do - poderá ajudar, não sei, foi um palpite que me surgiu de repente...

só por curiosidade tás a falar do que ?

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Posted

só por curiosidade tás a falar do que ?

Possivelmente do teu problema...

Sugeri que no teu ciclo Do Loop Until metas a condição no Do e não no Loop, poderá ajudar, não sei... Muutas vezes estes erros acontecem por estas cenas um pouco inexplicáveis.

Knowledge is free!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.