Čtení ze souboru a přiřazení hodnoty   otázka

VB.NET, I/O operace

Ahoj, učím se teď pracovat se soubory, ale mám menší problém a už celej půl dne si stím lámu hlavu :/ ...

Jde o to že mám soubor a v něm třeba data:

...

jmeno Kolousek

heslo radomisd

narozen nevim

...

Tak bych to potřeboval udělat tak že první řádek se jménem se přiřadí k Label1.Text a druhý řádek se přiřadí k Label2.Text a třetí řádek s narozením se přiřadí k Label3.Text, ale nechci aby mi to vypsalo celej řádek ve tvaru ,,jmeno Kolousek, ale jen pouze aby to vypsalo ,,Kolousek a stejně tak s ostatníma ...

Předem děkuji :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

12 díl prvního seriálu zde na webu by vám mohl pomoci, každopádně by asi bylo jednodušší použít jiný formát

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Tak není to nic nepřekonatelného, budete si ten text muset rozparsovat. Nicméně, toto je trochu zbytečné, použijte raději něco co již existuje, já doporučuji YAML.

Pokud by jste to stejně chtěl, tak by se to dalo udělat nějak takto.

Vytvoříte si funkci:

public static string[] ParseFile(string name)
{
   List<string> temp = new List<string>(); //¨temp list pro ukládání řádek
   string line = null; //proměnná pro řádek

   using (System.IO.StreamReader sr = new System.IO.StreamReader(name, Encoding.UTF8))
   {
      while (!sr.EndOfStream) //Cyklus pro čtení souboru
      {
           line = sr.ReadLine(); //přečteme řádek a uložíme ho do proměné line

           line = line.Substring(line.IndexOf(" ") + 1); //rozparsujeme
           temp.Add(line);//vložíme ho do kolekce temp
      }
   }

   return temp.ToArray(); //vrátíme naplnění seznam...
}

použití pak může být takovéto:

static void Main(string[] args)
{
    Console.WriteLine(ParseFile("text.txt")[0]); //kolousek
    Console.WriteLine(ParseFile("text.txt")[1]); //radimisd
    Console.WriteLine(ParseFile("text.txt")[2]); //nevim
    Console.Read();
    //Pripadně to můžete projít cyklem a vypsat všechny....
}

Doufám, že jsem vám pomohl, jinak snad si to zvládnete dát do těch labelů...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Přečtěte si pěkně zpracovaný článek na tomto webu

http://www.vbnet.cz/clanek--56-vb_net_od...

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        'ujistit se, že to uživatel chce
        If MsgBox("Neuložené změny aktuální osoby budou ztraceny! Pokračovat?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo) = MsgBoxResult.No Then Exit Sub

        'zeptat se na soubor
        If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            'pokud uživatel vybral soubor, načíst jej
            Dim rr As New RecordReader(OpenFileDialog1.FileName)

            'přečíst data
            txbJmeno.Text = rr.ReadString()

            txbPrijmeni.Text = rr.ReadString()

            dtpNarozeni.Value = rr.ReadDate()

            numPocetDeti.Value = rr.ReadInt()

            
            'zavřít soubor
            rr.Close()

        End If
    End Sub

V tomhle najdete vše co potřebujete.

Pokud bude v souboru řádku více použijte Cyklus.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback