Forum Pplware
c#, algumas duvidas - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: c#, algumas duvidas (/showthread.php?tid=2576)



c#, algumas duvidas - ag0n - 10-06-2009 19:31

Olá. Estou a criar um programa, no ambiento de uma cadeira que tenho na universidade (programação 2), sendo que preciso de saber como criar, ler, etc ficheiros .ini (ou txt ou o que quer que seja).

O problema é o seguinte, o programa suporta 2 jogos em que cada um suporta mods de jogo diferente. Para tal, antes de começar a usar o programa em si preciso de guardar a localização e mods dos jogos.
Para tal criei um ficheiro chamado Paths.ini em que a minha ideia seria:
Linha 1 = directoria do jogo chamado ET
Linha 2 = mod seleccionado do jogo chamado ET
Linha 3 = directoria do jogo chamado RTCW
Linha 4 = mod do jogo chamado RTCW.
Linha 5 = Jogo selecionado pelo utilizado no form principal (se escolher o jogo 1 sei que a linha 1 é a directoria e a 2 o mod etc)

Após fazer estas gravações, preciso que quando escolho o jogo no menu, a variavel Jogo e Mod obtenham os valores do jogo e mod selecionado.

Alguma ideia de como fazer isso? Abaixo deixo o código que contenho até ao momento. Não reparem nos erros no inglês nem no codigo pobre :<

http://pastebin.com/m25c9f57 -> Settings form (aqui é onde quero gravar uma localização do .ini ou ambas, sendo que posteriormente se mudar a localização de um jogo já selecionado anteriormente, queria que apenas muda-se as linhas correspondentes).

No form principal ainda não tenho nenhum codigo relevante, se me poderem ajudar a ler o ini para depois atribuir o valor as variaveis que disse seria bom...


Desde já obrigado.


RE: c#, algumas duvidas - RaCcOn - 11-06-2009 10:07

Tanto quanto percebi queres guardar configurações num file .ini ou algo do género, ora este tipo de ficheiros são lidos como ficheiros de texto convencionais.
Primeiro tens de ter a libraria

Código:
using System.IO;


depois crias uma nova instancia do FileStream

Código:
FileStream file = new FileStream("ficheiro.ini", Modoficheiro, Acessoficheiro);

"ModoFicheiro" Especifica que tipo de filestream vais ter podes usar (Append, Create, CreateNew, Open, OpenOrCreate ou Truncate) (Acho que não preciso dizer-te para que serve cada opção!Smile

"AcessoFicheiro" Especifica qual o tipo de acesso que vais estar a fazer ao ficheiro, podes usar(Read, ReadWrite ou Write)

Escrever no ficheiro, vais ter utilizar uma classe StreamWriter.

Código:
StreamWriter opt = new StreamWriter(file);

Ex de como utilizares:
Código:
opt.Write("Texto que queres escrever!!!!!");

Como todos nós programadores sabemos, não devemos de deixar muita info carregada em memoria quando não necessitamos dela, logo não esquecer de fechar a classe quando não necessitamos mais.

Código:
opt.Close();

Ler do ficheiro
Precisas de utilizar uma classe StreamReader.

Código:
StreamReader upt = new StreamReader(file);

Neste caso vou utilizar a opção ReadtoEnd, no entanto tens muitas outras que até te poderão dar mais jeito

Código:
string s = upt.ReadToEnd();

agora é só leres o que está na variavel "s"

Não esqueças de fechar a classe.

Citar:upt.Close();

E se já esta tudo Ok

Código:
file.Close();

Espero que te seja útil!Wink


RE: c#, algumas duvidas - ag0n - 11-06-2009 13:17

Ajudaste sim, obrigado.
Já sei como ler, contudo não me explicaste como ler/escrever em linhas especificas.
Antes de usar os "streams" pensei em usar o registo do windows (até porque se muda-se a aplicação de sitio, continuava sempre tudo a funcionar.. mas pareceu me complicado de adicionar essas informações...

Obrigado


RE: c#, algumas duvidas - RaCcOn - 11-06-2009 17:26

Para isso usas o StreamReader.ReadLine
É sempre melhor utilizar isto assim, se utilizares o registo do Windows ia dar raia, para além de aplicação não ser tão eficaz.


RE: c#, algumas duvidas - carvalho - 18-06-2009 18:10

vai trabalhar bruno Tongue

lool