Avatar
pajamac5
Člen
Avatar
pajamac5:

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ý:

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ý:

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:

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:

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:

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:

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:

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):

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:

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ý:
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ý:
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
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:
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ý:

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:

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ý:

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:

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
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:

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:

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
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:

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:

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:

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:

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:

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ý:

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
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ý:

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:

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ý:

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:

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ý:

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:

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ý:

Ukaž mi signatury dejobrazy a generujzfoo metod.

 
Nahoru Odpovědět 28.6.2014 20:09
Avatar
KlimiCZ
Člen
Avatar
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:
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:

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ý:

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:

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ý:

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ý:

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:

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:

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
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:

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.