Ficheiros de texto em Visual Basic

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Ficheiros de texto em Visual Basic

Mensagempor Radeon » Terça Mar 15, 2005 10:47

Eu queria fazer uma coisa simples , usando ficheiros de acesso sequencial, mas n conheço a sintaxe do VB para o fazer...

Eu queria abrir um ficheiro .text ja criado e depois gravar para lá dois dados do tipo string e um inteiro. Depois disto keria ler esse ficheiro para vários vectores para posteriormente fazer um ranking. Se me pudessem ajudar dando akelas principais funções de ficheiros para o fazer agradecia...
Radeon
Membro de Prata
Membro de Prata
 
Mensagens: 129
Registado: Segunda Jan 17, 2005 10:09

Mensagempor MetalFatigue » Domingo Mar 20, 2005 14:29

Não sei qual a versao do VB te referes. Seja como for só te posso ajudar em VB6, é que ainda n cheguei ao ponto de necessitar de mexer em files no .NET.

O código q se segue foi usado num trabalho meu para a faculdade o ano passado.

'esta funçao grava a colecçao para um ficheiro determinado em gravarFileMenu_Click
Function collectionToFile(nameFile As String) As Integer
Dim fileN As Integer, idx As Integer, count As Integer
Dim filme As cFilme

fileN = FreeFile()
Open nameFile For Output As #fileN

For idx = 1 To cMovies.count
Set filme = cMovies.Item(CStr(idx))
Write #fileN, filme.numero, filme.nome, filme.realizador, filme.genero, filme.data, filme.tempo, filme.preco
count = count + 1
Next idx
Close #fileN
collectionToFile = count

End Function

'esta funçao abre um ficheiro determinado em abrirFileMenu_Click e despeja numa colecçao
Function FileToCollection(nameFile As String) As Collection
Dim fileN As Integer
Dim filme As cFilme
Dim numero As Integer, nome As String, realizador As String, genero As String
Dim data As Date, tempo As Date, preco As Currency

Set FileToCollection = New Collection
fileN = FreeFile()
Open nameFile For Input As #fileN

Do Until (EOF(fileN))
Set filme = New cFilme
Input #fileN, numero, nome, realizador, genero, data, tempo, preco
filme.numero = numero
filme.nome = nome
filme.realizador = realizador
filme.genero = genero
filme.data = data
filme.tempo = tempo
filme.preco = preco

FileToCollection.Add Item:=filme, Key:=CStr(filme.numero)
Loop
Close #fileN

End Function


o argumento nameFile As String tem de ser o caminho todo do ficheiro. ex: C:\dados\DB.txt", Nota: a extensao n interessa pode ser o que quiseres.

freefile(): o vb associa o caminho a numero e com esta funçao ele vai buscar o proximo numero livre

Open nameFile For Output As #fileN: aqui defines que genero de operaçoes vais efectuar com abertura do file (associado ao seu numero(#fileN))

EOF: quer dizer "End Of File", todos os ficheiros têm uma definiçao que especifica quando chega ao seu final

Desculpa nao te dar algo mais simples de visualizar, mas foi me mais rapido o copy/paste :)

Alguma duvida posta ai
*-ASUS P5K-PRO
-Intel Core 2 Duo E8200
-2x2GB PC6400 Team Elite
-RAID0 2xSeagate SP 500GB + WD Green 1TB
-GF 9600GT
-MSI TV @nywhere Master
*-Toshiba A200-21T

http://souprimeiroministro.pt.vu
MetalFatigue
Membro de Ouro
Membro de Ouro
 
Mensagens: 654
Registado: Quarta Out 20, 2004 14:31
Localização: Bobadela

Mensagempor Manhoso » Terça Mar 22, 2005 15:19

boas...
eu precisava de escrever programaticamente num ficheiro .txt um numero e vários caminhos de ficheiros para usar posteriormente em Flash...este código que postast tb serve p isso???s n como posso fazer isso???
Motherboard: Abit NF7-S
CPU: AMD Athlon XP 2600+
GPU: TNT2 m64
512MB DDR
HDD0: Htachi 80GB PATA 7200 RPM
HDD1: Maxtor 200GB SATA 7200 RPM
Manhoso
Aprendiz
Aprendiz
 
Mensagens: 60
Registado: Segunda Jan 31, 2005 17:27
Localização: Minde ou Tomar(I.P.T.)

Mensagempor MetalFatigue » Sexta Mar 25, 2005 18:30

Sim, o codigo seria algo similar, mas so terias 2 campos (o nº e os caminhos dos ficheiros), eu neste code tenho varios. Se perceberes de classes o codigo poderia ficar mesmo bastante similar.

Crias um objecto do tipo "path", por exemplo em que tem o campo "numero" e o "caminho", adicionas a uma colecçao e mandas para um ficheiro da mesma forma como esta no codigo.
*-ASUS P5K-PRO
-Intel Core 2 Duo E8200
-2x2GB PC6400 Team Elite
-RAID0 2xSeagate SP 500GB + WD Green 1TB
-GF 9600GT
-MSI TV @nywhere Master
*-Toshiba A200-21T

http://souprimeiroministro.pt.vu
MetalFatigue
Membro de Ouro
Membro de Ouro
 
Mensagens: 654
Registado: Quarta Out 20, 2004 14:31
Localização: Bobadela

Mensagempor Manhoso » Quinta Abr 07, 2005 20:19

boas...
Uma outra coisa: n há maneira de akilo k escrevo ficar sem as aspas??
É depois po Flash o ficheiro com aspas não m serve de nada...

Se souberes como tirar as aspas diz.
Tb dá pa fazer no C++ Builder 5, mas ai já precisava d saber como acedo ao sistema d ficheiro do pc...

sem mais...
Motherboard: Abit NF7-S
CPU: AMD Athlon XP 2600+
GPU: TNT2 m64
512MB DDR
HDD0: Htachi 80GB PATA 7200 RPM
HDD1: Maxtor 200GB SATA 7200 RPM
Manhoso
Aprendiz
Aprendiz
 
Mensagens: 60
Registado: Segunda Jan 31, 2005 17:27
Localização: Minde ou Tomar(I.P.T.)

Mensagempor MetalFatigue » Quarta Abr 13, 2005 17:56

Pa por definição tudo o que é string ele mete entre aspas.

Já nao me lembro se outro tipo de variáveis tb coloca entre aspas no ficheiro. ja fiz o trabalho à 1 ano e não voltei a usar ficheiros até agora.

Como precisas de aceder directamente ao ficheiro, não sei como te dizer o que fazer.

A verdade é que o vb6 é um bocado limitado em vários aspectos. brevemente vou ter de mexer em ficheiros em vb.net, se descobrir alguma coisa que te possa ajudar posto aqui. Vai estando atento
*-ASUS P5K-PRO
-Intel Core 2 Duo E8200
-2x2GB PC6400 Team Elite
-RAID0 2xSeagate SP 500GB + WD Green 1TB
-GF 9600GT
-MSI TV @nywhere Master
*-Toshiba A200-21T

http://souprimeiroministro.pt.vu
MetalFatigue
Membro de Ouro
Membro de Ouro
 
Mensagens: 654
Registado: Quarta Out 20, 2004 14:31
Localização: Bobadela

Mensagempor Manhoso » Quinta Abr 14, 2005 19:48

danke schön...é como km diz: obrigado.

Também não tenho ficado parado á espera da resposta, e tenho pesquisado um pouco,mas até agora nada...Km descobrir alguma coisa k funcione avisa,ok?

Apesar de agora não dispor de muito tempo, pk tenho um relatório em LaTeX para entregar,vou continuar a procurar.
Motherboard: Abit NF7-S
CPU: AMD Athlon XP 2600+
GPU: TNT2 m64
512MB DDR
HDD0: Htachi 80GB PATA 7200 RPM
HDD1: Maxtor 200GB SATA 7200 RPM
Manhoso
Aprendiz
Aprendiz
 
Mensagens: 60
Registado: Segunda Jan 31, 2005 17:27
Localização: Minde ou Tomar(I.P.T.)


Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 3 visitantes

cron