Diskuze: Jak číst odděleně slova z txt file

C# .NET .NET (C# a Visual Basic) Jak číst odděleně slova z txt file American English version English version

Aktivity (1)
Avatar
pajamac5
Člen
Avatar
pajamac5:28.6.2014 13:43

Zdravím,jsem začátečník v c# a potřebuji v mé form aplikaci číst slova oddělená mezerou příklad:Mám textový soubor seznam na nákup s obsahem sušenky,cola,kvě­ták,pstruh.Po­té co bych spustil aplikaci tak by mi to zobrazilo v txt poly sušenky a poté co bych klik na další nebo enter tak by se text v poly změnil na cola....Má někdo nějaký funkční kód?Přede děkuji.

Editováno 28.6.2014 13:43
Odpovědět 28.6.2014 13:43
Co tě nezabije se tě pokusí zabít znovu.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na pajamac5
Jan Vargovský:28.6.2014 13:58

Můžeš číst po znaku nebo řádku. Buď si načteš celý soubor, ten rozsplituješ (string.Split(­...)), vyleze ti z toho pole a s tím si už můžeš dělat co chceš.

string[] slova = File.ReadAllText("foo.txt", Encoding.Default)
        .Split(new string[] { Environment.NewLine, ",", " " }, StringSplitOptions.RemoveEmptyEntries);

foreach (string slovo in slova)
{
    Console.ReadKey(true);
    Console.WriteLine(slovo);
}

Takhle je třeba načtení z konzole.

Editováno 28.6.2014 14:04
 
Nahoru Odpovědět 28.6.2014 13:58
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na pajamac5
Jan Vargovský:28.6.2014 14:07

Btw první jsi psal o rozdělení slov pomocí mezery, nakonec jsi tam dal čárky :)

 
Nahoru Odpovědět 28.6.2014 14:07
Avatar
pajamac5
Člen
Avatar
pajamac5:28.6.2014 14:22

Velice děkuji za tvojí odpověd.Mám zde jednu chybu že "file" neexistuje v tomto kontextu.A ještě jedna otázka to "foo.txt" jak se dá nahradit txt z resources?

PS:Ty čárky jsem tam psal pro zpřehlednění:)

Nahoru Odpovědět 28.6.2014 14:22
Co tě nezabije se tě pokusí zabít znovu.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 14:22

A když to chci načíst po řádkách ? a int[,] ?

Nahoru Odpovědět 28.6.2014 14:22
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na pajamac5
KlimiCZ:28.6.2014 14:25

Musíš přidat na začátku

using System.IO;
Nahoru Odpovědět 28.6.2014 14:25
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
pajamac5
Člen
Avatar
pajamac5:28.6.2014 14:27

Martine:Ah díky :D

Editováno 28.6.2014 14:28
Nahoru Odpovědět 28.6.2014 14:27
Co tě nezabije se tě pokusí zabít znovu.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na pajamac5
KlimiCZ:28.6.2014 14:34

1,Je tu tlačítko odpovědět.
2,Nemáš zač :)
3,Jde to i ,když na to zmáčkneš pravým tlačítkej tak je to první odkaz a tam ti to napíše

Editováno 28.6.2014 14:34
Nahoru Odpovědět 28.6.2014 14:34
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Luboš Běhounek (Satik):28.6.2014 16:18

Pripadne kdybys mel na jednom radku jedno slovo, tak muzes pouzit

File.ReadAlllines
Nahoru Odpovědět 28.6.2014 16:18
:)
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Luboš Běhounek (Satik)
KlimiCZ:28.6.2014 16:25

mám problémi s načtením mapy :D

Nahoru Odpovědět 28.6.2014 16:25
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na KlimiCZ
Jan Vargovský:28.6.2014 17:26
int[][] matice = File.ReadAllLines("foo.txt")
    .Select(row => row.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)
                  .Select(n => int.Parse(n))
                  .ToArray())
    .ToArray();
var lines = File.ReadAllLines("foo.txt");
int[,] matice2 = new int[3, 3];
for (int row = 0; row < lines.Length; row++)
{
    var rowNumbers = lines[row].Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)
                               .Select(n => int.Parse(n)).ToArray();
    for (int column = 0; column < 3; column++)
        matice2[row, column] = rowNumbers[column];
}

Chceš asi tu druhou možnost, ale jak chceš. U té je blbé, že ten kód je dost nafouklý, protože musíš předem říct jak to pole bude veliké a kdybys to chtěl dynamické, tak tam je i celkem redundantní kód.

Editováno 28.6.2014 17:27
 
Nahoru Odpovědět 28.6.2014 17:26
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na KlimiCZ
Jan Vargovský:28.6.2014 17:31
var lines = File.ReadAllLines("foo.txt");
int columns = lines[0].Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries).Length;
int[,] matice2 = new int[lines.Length, columns];
for (int row = 0; row < lines.Length; row++)
{
    var rowNumbers = lines[row].Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)
                               .Select(n => int.Parse(n)).ToArray();
    for (int column = 0; column < columns; column++)
        matice2[row, column] = rowNumbers[column];
}

Ještě jsem to rychle udělal no :D šlo by to asi napsat lépe, ale momentálně na to nemám čas.

 
Nahoru Odpovědět 28.6.2014 17:31
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 17:38

nefunguje to :D

Nahoru Odpovědět 28.6.2014 17:38
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 17:38
An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll

Additional information: Vstupní řetězec nemá správný formát.

u

var rowNumbers = lines[row].Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries)
                           .Select(n => int.Parse(n)).ToArray();
Nahoru Odpovědět 28.6.2014 17:38
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na KlimiCZ
Jan Vargovský:28.6.2014 17:39

Já to testoval na tomto

1 2 3 3
4 5 6 1
7 8 9 2
10 11 12 5
18 12 3 4

A funguje to normálně.

Si to kdyžtak uprav, já nevím jak vypadá ta tvoje mapa...

Editováno 28.6.2014 17:40
 
Nahoru Odpovědět 28.6.2014 17:39
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 17:40

nic ja to mám odděleno ","

Nahoru Odpovědět 28.6.2014 17:40
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na KlimiCZ
Jan Vargovský:28.6.2014 17:41

Tak jednotlivé řádky splituješ pomocí "," a né " ".

 
Nahoru Odpovědět 28.6.2014 17:41
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 17:41

Jéé moc díky řeším to už 1 týden :D

Nahoru Odpovědět 28.6.2014 17:41
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 17:42

S tím jsem si poradil :D

Nahoru Odpovědět 28.6.2014 17:42
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 17:43

Mám ještě jeden dotaz.
Když to chci dáti do .dll jako funkci static - tak to se mi asi nevytvoří to int[,].
jak by to šlo udělat ?

Nahoru Odpovědět 28.6.2014 17:43
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
pajamac5
Člen
Avatar
pajamac5:28.6.2014 17:50

Zdravím,moc děkuji za výpomoc toto fórum budu jistě doporučovat ale mám ještě jednu otázku,když chci aby si uživatel mohl určit jaký txt soubor mu to bude načítat tak jak to mám udělat :D
V podstatě to upravit aby to fungovalo takto

string[] slova = File.ReadAllText("*C:\Users\Já\Documents\Nákup.txt*", Encoding.Default)
            .Split(new string[] { Environment.NewLine, ",", " " }, StringSplitOptions.RemoveEmptyEntries);
Nahoru Odpovědět 28.6.2014 17:50
Co tě nezabije se tě pokusí zabít znovu.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na KlimiCZ
KlimiCZ:28.6.2014 17:54

Spěcháto

Nahoru Odpovědět 28.6.2014 17:54
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na pajamac5
KlimiCZ:28.6.2014 18:01

To máš windows form ?

Editováno 28.6.2014 18:01
Nahoru Odpovědět 28.6.2014 18:01
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
pajamac5
Člen
Avatar
pajamac5:28.6.2014 18:01

Jop

Nahoru Odpovědět 28.6.2014 18:01
Co tě nezabije se tě pokusí zabít znovu.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na pajamac5
KlimiCZ:28.6.2014 18:02

ve windows form by to bylo

string[] slova = File.ReadAllText(tbLOLOL.Text, Encoding.Default)
             .Split(new string[] { Environment.NewLine, ",", " " }, StringSplitOptions.RemoveEmptyEntries);

tbLOLOL - textbox a myslím ,že to jde i přes open dialog
http://www.itnetwork.cz/…orms-dialogy

Editováno 28.6.2014 18:03
Nahoru Odpovědět 28.6.2014 18:02
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na pajamac5
KlimiCZ:28.6.2014 18:04

Dialog je

if (folderBrowseDialog1.ShowDialog() == DialogResult.OK)
{
    string text = folderBrowserDialog1.SelectedPath;
}

pak to bude vypadat

if (folderBrowseDialog1.ShowDialog() == DialogResult.OK)
{
    string text = folderBrowserDialog1.SelectedPath;
}
string[] slova = File.ReadAllText(text, Encoding.Default)
              .Split(new string[] { Environment.NewLine, ",", " " }, StringSplitOptions.RemoveEmptyEntries);
Nahoru Odpovědět 28.6.2014 18:04
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na KlimiCZ
KlimiCZ:28.6.2014 18:10

tak na for si přidej OpenFileDialog
a

if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string textt = openFileDialog1.FileName;

            }
string[] slova = File.ReadAllText(textt, Encoding.Default)
              .Split(new string[] { Environment.NewLine, ",", " " }, StringSplitOptions.RemoveEmptyEntries);

PS: předtím to b ylo špatně to vybíralo složku

Editováno 28.6.2014 18:10
Nahoru Odpovědět 28.6.2014 18:10
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na KlimiCZ
Jan Vargovský:28.6.2014 18:23

Vytvoříš projekt typu Class Library. Uděláš tam veřejnou třídu, do ní narveš tu metodu, zkompiluješ, pak už si to jen někde v projektu nalinkuješ a využíváš (pracuje se s tím už jako s každou knihovnou z .NET frameworku)

 
Nahoru Odpovědět 28.6.2014 18:23
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 18:24

To ale mám

Nahoru Odpovědět 28.6.2014 18:24
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
KlimiCZ
Člen
Avatar
Nahoru Odpovědět 28.6.2014 18:25
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na KlimiCZ
Jan Vargovský:28.6.2014 18:27

Zkus si nejdříve rozmyslet co napíšeš a napsat to v jedné zprávě.

Nevím co je to za soubor, stahovat to nebudu (už vůbec ne v raru), protože absolutně nevím, co bych s tím měl dělat.

 
Nahoru Odpovědět 28.6.2014 18:27
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 18:30

projekt já to mam jako static třídu jako public static metodu, ale jak to z toho vytáhnu ?

Nahoru Odpovědět 28.6.2014 18:30
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na KlimiCZ
Jan Vargovský:28.6.2014 18:34

Normalně v projektu si nalinkuješ (References -> Add reference -> vybereš jí a potvrdíš) a pak jí využíváš tak jako všechny ostatní knihovny. Buď nahoru dáš using a nebo prostě v kódu napíšeš

NazevKnihovny(default).NazevTridy.NazevMetody

EDIT: Dívám se na ten projekt a tam to máš dobře.

Editováno 28.6.2014 18:37
 
Nahoru Odpovědět 28.6.2014 18:34
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 19:58

Ale pořád jsi mi neodpověděl jak to mám vytáhnout to int[,]

Nahoru Odpovědět 28.6.2014 19:58
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na KlimiCZ
Jan Vargovský:28.6.2014 20:04

Cože? Vůbec nevím co chceš udělat.

 
Nahoru Odpovědět 28.6.2014 20:04
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 20:05

Dobře popíši jinak.
Ve Form1.cs potřebuji dískat to co se vygenerovalo v dll.
Ale jak to mám získat?
Takhle to nejde

dejobrazy(Mapa.map.generujzfoo());
Nahoru Odpovědět 28.6.2014 20:05
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na KlimiCZ
Jan Vargovský:28.6.2014 20:09

Ukaž mi signatury dejobrazy a generujzfoo metod.

 
Nahoru Odpovědět 28.6.2014 20:09
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 20:10

je to v tom projektu

Nahoru Odpovědět 28.6.2014 20:10
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 20:11
public static void generujzfoo()
        {
            var lines = File.ReadAllLines("map1.mapx");
            int columns = lines[0].Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Length;
            int[,] pole = new int[lines.Length, columns];
            for (int row = 0; row < lines.Length; row++)
            {
                var rowNumbers = lines[row].Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)
                                           .Select(n => int.Parse(n)).ToArray();
                for (int column = 0; column < columns; column++)
                    pole[row, column] = rowNumbers[column];
            }
        }
private void dejobrazy(int[,] pol)
        {
            #region p1
            switch (pol[0,0])
            {
                case 0:
                    pictureBox1.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox1.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox1.Image = Properties.Resources.zed;
                    break;
            }

            switch (pol[0, 1])
            {
                case 0:
                    pictureBox2.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox2.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox2.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[0, 2])
            {
                case 0:
                    pictureBox3.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox3.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox3.Image = Properties.Resources.zed;
                    break;
            }

            switch (pol[0, 3])
            {
                case 0:
                    pictureBox4.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox4.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox4.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[0, 4])
            {
                case 0:
                    pictureBox5.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox5.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox5.Image = Properties.Resources.zed;
                    break;
            }
            #endregion
            #region p2
            switch (pol[1, 0])
            {
                case 0:
                    pictureBox6.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox6.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox6.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[1, 1])
            {
                case 0:
                    pictureBox7.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox7.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox7.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[1, 2])
            {
                case 0:
                    pictureBox8.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox8.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox8.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[1, 3])
            {
                case 0:
                    pictureBox9.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox9.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox9.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[1, 4])
            {
                case 0:
                    pictureBox10.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox10.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox10.Image = Properties.Resources.zed;
                    break;
            }

            #endregion
            #region p3
            switch (pol[2, 0])
            {
                case 0:
                    pictureBox11.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox11.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox11.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[2, 1])
            {
                case 0:
                    pictureBox12.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox12.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox12.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[2, 2])
            {
                case 0:
                    pictureBox13.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox13.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox13.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[2, 3])
            {
                case 0:
                    pictureBox14.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox14.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox14.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[2, 4])
            {
                case 0:
                    pictureBox15.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox15.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox15.Image = Properties.Resources.zed;
                    break;
            }




#endregion
            #region p4
            switch (pol[3, 0])
            {
                case 0:
                    pictureBox16.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox16.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox16.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[3, 1])
            {
                case 0:
                    pictureBox17.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox17.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox17.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[3, 2])
            {
                case 0:
                    pictureBox18.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox18.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox18.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[3, 3])
            {
                case 0:
                    pictureBox19.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox19.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox19.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[3, 4])
            {
                case 0:
                    pictureBox20.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox20.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox20.Image = Properties.Resources.zed;
                    break;
            }
            #endregion
            #region p5
            switch (pol[4, 0])
            {
                case 0:
                    pictureBox21.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox21.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox21.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[4, 1])
            {
                case 0:
                    pictureBox22.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox22.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox22.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[4, 2])
            {
                case 0:
                    pictureBox23.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox23.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox23.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[4, 3])
            {
                case 0:
                    pictureBox24.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox24.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox24.Image = Properties.Resources.zed;
                    break;
            }
            switch (pol[4, 4])
            {
                case 0:
                    pictureBox25.Image = Properties.Resources.prazdny;
                    break;
                case 1:
                    pictureBox25.Image = Properties.Resources.hrac;
                    break;
                case 2:
                    pictureBox25.Image = Properties.Resources.zed;
                    break;
            }

            #endregion

        }
Nahoru Odpovědět 28.6.2014 20:11
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
KlimiCZ
Člen
Avatar
KlimiCZ:28.6.2014 20:11

Jo a map1.mapx

1,1,1,1,0,0,1,4
1,1,1,1,0,0,1,4
1,1,1,1,0,0,1,4
1,1,1,1,0,0,1,4
1,1,1,1,0,0,1,4
1,1,1,1,0,0,1,4
1,1,1,1,0,0,1,4
1,1,1,1,0,0,1,4
Nahoru Odpovědět 28.6.2014 20:11
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na KlimiCZ
Jan Vargovský:28.6.2014 20:24

Napíšu ti odpověď, aby jsi pořád nespammoval. Metoda void nic nevrací (kromě vyjímky), ta se prostě zavolá a nic jinačího od ní nečekej. Snažíš se z té void metody vytřískat svojí načtenou mapu, ale vůbec to nejde. Snažíš se to dávat do knihovny for no reason, i když neumíš napsat ani normální funkci:

public static int[,] generujzfoo()
{
    var lines = File.ReadAllLines("map1.mapx");
    int columns = lines[0].Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Length;
    int[,] pole = new int[lines.Length, columns];
    for (int row = 0; row < lines.Length; row++)
    {
        var rowNumbers = lines[row].Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)
                                   .Select(n => int.Parse(n)).ToArray();
        for (int column = 0; column < columns; column++)
            pole[row, column] = rowNumbers[column];
    }
    return pole;
}

Tu velkou špagetu s pictureboxy by šlo taky zredukovat na 2 cykly. Až dohraju a možná si vzpomenu, tak ti to pošlu.

 
Nahoru Odpovědět 28.6.2014 20:24
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 20:25

dík nevím jak do cyklů budu rád za pomoc

Nahoru Odpovědět 28.6.2014 20:25
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na KlimiCZ
Jan Vargovský:28.6.2014 20:27

Stačí si ty pictureboxy hodit taky do 2d pole a pak jen budeš iterovat a indexovat picturebox[x,y] = mapa[x,y]

 
Nahoru Odpovědět 28.6.2014 20:27
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Jan Vargovský
Jan Vargovský:28.6.2014 20:31

Jako první si to minimalizuj třeba tak, že si napiš metodu, které předáš picturebox + políčko mapy a podle toho tam nastavíš ten obrázek.

switch (pol[4, 4])
{
    case 0:
        pictureBox25.Image = Properties.Resources.prazdny;
        break;
    case 1:
        pictureBox25.Image = Properties.Resources.hrac;
        break;
    case 2:
        pictureBox25.Image = Properties.Resources.zed;
        break;
}

=>

NastavObrazek(pictureBox25.Image, pol[4,4]);

pomocí nějaké takové metody

private void NastavObrazek(PictureBox pb, int n)
{
    switch (n)
    {
        case 0:
            pb.Image = Properties.Resources.prazdny;
            break;
        case 1:
            pb.Image = Properties.Resources.hrac;
            break;
        case 2:
            pb.Image = Properties.Resources.zed;
            break;
    }
}

nebo třeba takhle

pictureBox25.Image = VratObrazek(pole[4,4]);

pomocí

private Image VratObrazek(int n)
{
    switch (n)
    {
        case 0:
            return = Properties.Resources.prazdny;
            break;
        case 1:
            return Properties.Resources.hrac;
        case 2:
            return Properties.Resources.zed;
    }
}
Editováno 28.6.2014 20:33
 
Nahoru Odpovědět 28.6.2014 20:31
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 20:53

Když jsem vesil padlo tak me to taky napadlo

Nahoru Odpovědět 28.6.2014 20:53
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 21:53

hele a kde jsi vzal to pol ? já mám jen Mapa.mapblablabla() jak z toho udelam int[,]

Nahoru Odpovědět 28.6.2014 21:53
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
KlimiCZ
Člen
Avatar
Odpovídá na Jan Vargovský
KlimiCZ:28.6.2014 21:56

vyřešeno

Nahoru Odpovědět 28.6.2014 21:56
Nesnaž se zakrýt něco, co jsi provedl úmyslně. Svět je tak malý, že dotyčný se to stejně dozví.
Avatar
pajamac5
Člen
Avatar
pajamac5:22.7.2014 17:50

Zdravím jsem to zase já :)
Mám problém s tím jak rozdělit text písmeno od písmene zkoušel jsem tento kód ten bohužel nefunguje:

string[] text = File.ReadAllText(cesta,Encoding.Default)
           .Split(new string[] { Environment.NewLine,""  }, StringSplitOptions.RemoveEmptyEntries);
Nahoru Odpovědět 22.7.2014 17:50
Co tě nezabije se tě pokusí zabít znovu.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 48 zpráv z 48.