Pouze tento týden sleva až 80% na e-learning týkající se Kotlinu
Využij akce až 80% zdarma při nákupu e-learningu. Více informací .
Kotlin week
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Daniel Vítek:22.10.2012 8:52

Zdravím, dá se nějak zjistit jestli se v nějakém poli nachází určité slovo ? např.

string[] mojepole = new string[10];
string mujtext = "devbook";
if(mujtext je v mojepole)
{
MessageBox.Show("Je tam !!!!!!!");
}
else
{
MessageBox.Show("Neni......");
}
Odpovědět
22.10.2012 8:52
Na síti působím už pěknou řádku let. Pokud budeš něco potřebovat, písni mi, pokusím se ti poradit :)
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
David Jančík:22.10.2012 9:00

Buďto to projet cyklem a nebo použít LINQ. Něco jako

int[] i = new int { 1, 5, 8, 7 };
i.Any(item => item > 5);

string[] s = new string { "ahoj", "cau" };
s.Any(item => item == "ahoj");

Zkus a dej vědět. Je to jen momentální nápad, nezkoušel jsem.

Nahoru Odpovědět
22.10.2012 9:00
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na Daniel Vítek
matesax:22.10.2012 9:03

Použij list... :) (Můžeš pomocí Linq - ale to mi přijde zbytečné - jakmile něco takového chceš, tak to stejně asi hodláš používat jako list...)

 
Nahoru Odpovědět
22.10.2012 9:03
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Jančík
Daniel Vítek:22.10.2012 9:04

Co znamená to item => item == "ahoj" ??
Dobrá, prozradím svůj nápad - něco zkouším a chci přiřadit každé klávese zvuk (ťuknutí) a chci rozlišit písmena a čísla od funkcí (caps lock, shift, control atp.) tak mě napadlo že si to dám do pole..
Pokud to bude v 1. poli ozve se ťuknutí,když to bude v 2. třeba zabzučení :D

Editováno 22.10.2012 9:05
Nahoru Odpovědět
22.10.2012 9:04
Na síti působím už pěknou řádku let. Pokud budeš něco potřebovat, písni mi, pokusím se ti poradit :)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:22.10.2012 9:11

Použij Dictionary.

Nahoru Odpovědět
22.10.2012 9:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:22.10.2012 9:12

OK jdu googlit :D

Nahoru Odpovědět
22.10.2012 9:12
Na síti působím už pěknou řádku let. Pokud budeš něco potřebovat, písni mi, pokusím se ti poradit :)
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
David Jančík:22.10.2012 9:18

Tak na tohle se Pole nehodí. Jak říkal Kit použij slovník. Do něj si uložíš klávesu a k ní přiřazený zvuk.
Dictionary<Keys,string> kde Keys bude klávesa a string cesta k souboru s hudbou.
Pak si dáš

if (x.ContainsKey(Keys.Escape))
   PlaySound(x[Keys.Escape]);
Nahoru Odpovědět
22.10.2012 9:18
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Jančík
Daniel Vítek:22.10.2012 9:25

Takže to bude nějak.....

Dictionary<Keys,string> seznamKlaves = new Dictionary<Keys,string>();
seznamKlaves.Add("a",Program.Properties.Resources.zvuk);
seznamKlaves.Add("b",Program.Properties.Resources.zvuk);
seznamKlaves.Add("c",Program.Properties.Resources.zvuk);
seznamKlaves.Add("d",Program.Properties.Resources.zvuk);
seznamKlaves.Add("e",Program.Properties.Resources.zvuk);
seznamKlaves.Add("escape",Program.Properties.Resources.zvuk2);
..........

??

Nahoru Odpovědět
22.10.2012 9:25
Na síti působím už pěknou řádku let. Pokud budeš něco potřebovat, písni mi, pokusím se ti poradit :)
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
David Jančík:22.10.2012 9:29

Tak já ti to napíšu a ty uděláš tohle?
Když dáváš jako klíč dat. typ Keys tak tam asi nebudeš dávat string to samý se zvukem. Božee.

seznamKlaves.Add(Keys.Escape, "C:\\Hudba\\Můj zvuk.wav");

A příště si to zkoušej. Tohle by ti VS omlátil vo hlavu.

Nahoru Odpovědět
22.10.2012 9:29
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na Daniel Vítek
matesax:22.10.2012 9:31

První položka je klíč (druhá je jeho hodnota) - klíč používáš jako index - k tomu je slovník... (Dále můžeš odděleně vyhledávat jak v klíčích, tak v hodnotách)...

slovník[klíč] > hodnota

slovník.ContainsKey(klíč) ?
Editováno 22.10.2012 9:32
 
Nahoru Odpovědět
22.10.2012 9:31
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Jančík
Daniel Vítek:22.10.2012 9:36

A co když mám ten zvuk v Resources ?

Nahoru Odpovědět
22.10.2012 9:36
Na síti působím už pěknou řádku let. Pokud budeš něco potřebovat, písni mi, pokusím se ti poradit :)
Avatar
matesax
Redaktor
Avatar
Odpovídá na Daniel Vítek
matesax:22.10.2012 9:40

Tak je přeci jedno kde ho máš - prostě klíč bude klávesa, a hodnota zvuk. Osobně si myslím, že lepší to bude v složce sounds - i třeba nějak komprimované...

Také bych se vyhnul podmínkám a jiným větvením - prostě dej vstup jako index do slovníku a to do try bloku... (A to pak i využiješ pro jiné potřeby.)

Editováno 22.10.2012 9:42
 
Nahoru Odpovědět
22.10.2012 9:40
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
David Jančík:22.10.2012 9:41

Si tam ulož cestu do resources. Ale docela blbě se s tím pracuje. Bude lepší, když si uděláš složku zvuky u programu a tam je budeš mít. Nebo tu zas budeš zmatkovat, že ti to nejde.
Ale pokud chceš nuceně použít ty Resources tak tam dáš tu cestu co tam máš nebo se to ještě dělá nějak přes Assembly GetResource.
To musíš vyzkoušet. Takto jsem s tím zatím nikdy nepracoval.

Nahoru Odpovědět
22.10.2012 9:41
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:22.10.2012 9:49

Výjimky budou v tomto případě o něco rychlejší.

try {
   PlaySound(x[key]);
} catch (KeyNotFoundException) {
   PlaySound(defaultSound);
}

Pokud však ve slovníku budou pouze znaky, možná by se místo něho víc hodil Regex.

Nahoru Odpovědět
22.10.2012 9:49
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:22.10.2012 9:51

Už jsem mu vyjímky navrhl... A zrovna jsem si to pořádně pročetl - a minimálně ten regex bych tu také uvítal...

 
Nahoru Odpovědět
22.10.2012 9:51
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:22.10.2012 10:00

Nakonec jsem zjistil že budu potřebovat jen 3 klávesy - Caps,Shift a Control... takže jsem to vyřešil IFem

Teď další problémek :D
Mám Font dialog, v events je jen Apply,takže když kliknu na OK tak se písmo nezmění, musím napřed na Použít, pak na OK a to už se změní... Dá se udělat aby se změnilo po kliknutí na OK ?

Editováno 22.10.2012 10:01
Nahoru Odpovědět
22.10.2012 10:00
Na síti působím už pěknou řádku let. Pokud budeš něco potřebovat, písni mi, pokusím se ti poradit :)
Avatar
Kit
Redaktor
Avatar
Odpovídá na matesax
Kit:22.10.2012 10:02

Když jsem napsal ten Regex, tak jsem si uvědomil, že klávesa není znak. Je tedy otázkou, zda Regex použít. Pokud by se do toho montovaly funkční klávesy, tak určitě ne.

Nahoru Odpovědět
22.10.2012 10:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Redaktor
Avatar
Odpovídá na Kit
matesax:22.10.2012 10:05

e.KeyData.ToS­tring()

Funkční: "F.", zbytek vypsat...

 
Nahoru Odpovědět
22.10.2012 10:05
Avatar
matesax
Redaktor
Avatar
Odpovídá na Daniel Vítek
matesax:22.10.2012 10:12
if (fontDialog1.ShowDialog() == DialogResult.OK)
xxx.Font = fontDialog1.Font;
 
Nahoru Odpovědět
22.10.2012 10:12
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 19 zpráv z 19.