Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 16. diel - Diár s databázou v C#

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Lukáš Novák:7.2.2020 11:55
  1. Jak ví metoda "zaznamy.Remo­ve(z);", který objekt má vymazat, když objekt "z" je z listu "nalezeno" ? Jestli jsem správně pochopil předešlé lekce, tak jsou v listech pouze "reference" na objekt v paměti. Ale to je jedno, jsou to dvě ruzné reference. Pokud tedy metoda "zaznamy.Remo­ve(z);" zjistí, že existuje v listu "zaznamy" reference na stejné místo v paměti, jako jí předaný parametr "z", tak odstraní tento záznam (resp. referenci) ?
  2. Když budu mít v listu "zaznamy" dvě reference na stejné místo v paměti smažou se obě dvě metodou "zaznamy.Remo­ve(z);" ?
  3. Kdyby v "nalezeno" byly klony (Lekce 4: Dále můžeme použít klonování, ale o tom zas až někdy jindy. ), pak by to tedy takto jednoduše nefungovalo a musel by se celý objekt nějak porovnat?
Editované
Avatar
Odpovedá na Lukáš Novák
Michal Štěpánek:7.2.2020 12:15

List "nalezene" je pouze seznam, nebo "výcuc" položek objektu "zaznamy". Tím pádem položky v listu "nalezene" korespondují s původní kolekcí.

Odpovedať
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
David
Člen
Avatar
David:18.4.2020 14:41

Díky za článek. ;-)

Avatar
Fodo
Člen
Avatar
Odpovedá na Patrik Pastor
Fodo:4.5.2020 22:52

Záznam to uloží, ale nezobrazí ho, problém je v podmienke if v metode Databaza.Najdi­Zaznamy()

takto vyzera:

if (((podlaCasu) && (z.DatumACas == datum)) || ((!podlaCasu) && (z.DatumACas == datum.Date)))
        najdene.Add(z);

A takto treba prerobit:

if (((podlaCasu) && (z.DatumACas == datum)) || ((!podlaCasu) && (z.DatumACas.Date == datum.Date)))
        najdene.Add(z);

v druhej časti podmienky za z.DatumACas doplnené .Date. inač to porovnáva dátum, aj s časom

Avatar
Bohumír Bednařík:7.8.2020 12:44

Cvičení je pěkné, ale v kódu jsou podle mě následující chyby:

  1. V metode VyhledejZaznamy mi Visual Studio sděluje, že vlastnost Count nelze použít jako metodu (něměly by tedy za ní být závorky).
  2. Console.ReadKey() v hlavním programovém cyklu by podle mě mělo být až za ukončovací závorkou cyklu while, protože když přidávám nový záznam, musím stisknout enter dvakrát (je to matoucí). Naopak by měl být ještě navíc za vyhledáním záznamů, abych viděl, co se našlo a mohl to pak enterem odklepnout (ideálně by tam mělo být vypsáno něco jako pokračuj libovolnou klávesou. Respektive by to mohlo být přímo součástí dané metody.
  3. vyhledávání záznamů neumožňuje hledat záznamy dle času, tzn. vyžadovat zadání času je zbytečné, když mi to vždy vrátí všechny záznamy v daném dni. Chtělo by to tedy doplnit nějaký if nebo se uživatele zeptat, zda chce všechny záznamy v daném dni nebo jen pro konkrétní zadaný čas, ale to byl možná záměr, takže to možná není chyba..
  4. Do funkce pro přidávání záznamů by mohl být doplněn nějaký sort, aby záznamy seřadil dle data a času (ale to taky není chyba, ale jen nedostatek, pro který ještě nemáme na této úrovni znalosti - metodu Sort jsme si představili jen v základní verzi, bez možností její úpravy pro záznamy podobného typu, škoda, zajímalo by mě to, snad to bude v pozdějších lekcích).
Avatar
Odpovedá na michaela
Bohumír Bednařík:7.8.2020 13:05

Souhlasím, viz můj předchozí komentář. Console.ReadKey je tam špatně.

Avatar
Odpovedá na Jan Novák
Bohumír Bednařík:7.8.2020 13:21

Ne není tam zbytečně, protože se pak používá v hlavní programové smyčce na výpis záznamů pro daný den (dnešek/zítřek).

Avatar
Jiří Pivec
Člen
Avatar
Odpovedá na Bohumír Bednařík
Jiří Pivec:5.12.2021 22:24

Souhlasím, viz můj předchozí komentář. Console.ReadKey je tam špatně.

Console.ReadKey bych nechal určitě za Switchem (abych nemusel dávat Console.ReadKey do jednotlivých Case ve Switchi). Nicméně bych přidal nakonec do metody PridejZaznam ve třídě Diar:
Console.WriteLine("Záznam přidán, pokračujte jakoukoliv klávesou...");
Není tam potom to "prázdné" bouchnutí do klávesnice a vypadá to líp :)

Editované
Odpovedať
„Kdo se umí smát sám sobě, má právo se smát všemu ostatnímu, co mu k smíchu připadá.“ J.W.
Avatar
Jiří Pivec
Člen
Avatar
Odpovedá na Jiří Pivec
Jiří Pivec:5.12.2021 22:32

Anebo lépe dát:
Console.WriteLine("Záznam přidán, pokračujte jakoukoliv klávesou...");
do Case '1' ve Switchi.

Odpovedať
„Kdo se umí smát sám sobě, má právo se smát všemu ostatnímu, co mu k smíchu připadá.“ J.W.
Avatar
Jozef Vendel
Člen
Avatar
Jozef Vendel:22.3.2022 23:59

Caute, preco sa tu vyuziva slovo new ?

public void PridejZaznam(DateTime datumCas, string text)
{
    zaznamy.Add(new Zaznam(datumCas, text));
}
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 64.