Jump to content
RJ90

[Ajuda] Ler .txt (Config)

Recommended Posts

RJ90

Boas!

Tenho aqui um problema, estão a tentar ler configurações que estão num ficheiro .txt

[server]
RICARDO-PC\SQLEXPRESS

[serialport]
COM7

O que pensei foi, procurar o nome da configuração ([server] e [serialport]) e ler a linha seguinte a esse nome, mas não sei como fazer. O que tenho até agora:

string server = "";
string serialport = "";
string line = "";

if (File.Exists(Application.StartupPath + "\\config.txt"))
{
    TextReader file = new System.IO.StreamReader(Application.StartupPath + "\\config.txt");
    while ((line = file.ReadLine()) != null)
    {   
         //Falta aqui o código, server e serialport têm de tomar o valor a seguir do [server] e [serialport]
    }
    file.Close();
    textBox1.Text = server;
    textBox2.Text = serialport;
}
else
{
     MessageBox.Show("Ficheiro config.txt em falta!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
}


Samsung 700Z5A-S01PT Samsung Ominia W

ᥡ What Else? ᥡ

Share this post


Link to post
Share on other sites
Rechousa

Olá,

Experimenta isto (não testei o código)

    textBox1.Text = readSetting("server");
    textBox2.Text = readSetting("serialport");

private string readSetting(string setting)
{
    bool read = false; // Esta variavel vai ser usada para saberes se a linha é para ler e retornar
    string retorno = null;  // Valor do Setting a Retornar
    TextReader file = new System.IO.StreamReader(Application.StartupPath + "\\config.txt");
    while ((line = file.ReadLine()) != null)
    {  
       if (read)
       {
            retorno = line;
            break; // Sai do Ciclo
       }
        // Se a linha que leu é igual ao setting que enviaste, vai ler e retornar a próxima linha
        if (line == string.Format("[{0}]", setting))
           read = true;
    }
    // Ao chegar aqui aconteceram 1 de 2 coisas: Ou terminou o ficheiro e retorna NULL ou leu o setting e saiu do ciclo
    file.Close();
    // Retorna o valor do setting
    return retorno;
}


Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Share this post


Link to post
Share on other sites
RJ90

Obrigado, funciona!  :)

Tive apenas de adicionar a variável line.

string line = null;

Agora vou tentar escrever as "definições". Depois, se conseguir, coloco aqui o código.


Samsung 700Z5A-S01PT Samsung Ominia W

ᥡ What Else? ᥡ

Share this post


Link to post
Share on other sites

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.