Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje
Uputstvo Članstvo Kalendar Današnje poruke Pretraži

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 12.11.2011, 23:36   #441
Exreey
Član
 
Član od: 25.8.2010.
Poruke: 30
Zahvalnice: 3
Zahvaljeno 0 puta na 0 poruka
Određen forumom Re: How to... C#

uuh... muke sa xml.
nece i nece
ne znam kako da napisem Name="" pod entery
<entry name="Marko"><city>Beograd></city><number>06....xx</number></entry>
takodje kada jednom napisem ok je...samo nema name="" pod entery ali kada ponovo napisem sa drugacije ime,grad,br ono izbrise ono predhodno i napise ovo novo...
Ako moze neko da mi napravi primer za pisanje/citanje xml (ako moze sa objasnjenje) bicu mu doveka zahvalan...
Exreey je offline   Odgovor sa citatom ove poruke
Stara 19.11.2011, 5:45   #442
Ivan-94
Veteran
 
Član od: 15.3.2009.
Lokacija: Beograd
Poruke: 654
Zahvalnice: 240
Zahvaljeno 63 puta na 43 poruka
Slanje poruke preko MSN-a korisniku Ivan-94 Slanje poruke preko Skypea korisniku Ivan-94
Određen forumom Re: How to... C#

Ovako bih ja to uradio:

Citao:

Kod:
//Deklarises listu negde
List<EntryClaas> entryList = new List<EntryClaas>();
private void ReadXml(string p)
{
    //p ti je path do fajla ili ceo string
    
    try
    {
        var doc = XElement.Load(p);
        var elements = from e in doc.Descendants("entry")
                       select new
                       {
                           //Citas atribut "name"
                           Name = e.Attribute("name").Value,
                           //Citas elemente, tj. text izmedju njih
                           //Ako ti na primer zatreba int stavis Age = int.Parse(e.Element("age").Value) itd.
                           City = e.Element("city").Value,
                           Number = e.Element("number").Value
                       };
        foreach (var item in elements)
        {
            //I ovde radis nesto sa podacima, ja obicno napravim npr. List<EntryClass> (gde je EntryClass klasa koju si ti napisao) i to popunjavam
            EntryClaas entry = new EntryClaas();
            entry.EName = item.Name.ToString();
            entry.ECity = item.City.ToString();
            entry.ENumber = item.Number.ToString();
            entryList.Add(entry);
        }
    }
    catch (Exception e)
    {
        MessageBox.Show("Unable to read xml file.\nError:\n" + e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
    }
}
Pisanje(dodavanje jednog entry-a):

Kod:
public static void AddItem(EntryClass ec)
{
    try
    {
        XElement doc = XElement.Load("putanja do tog fajla");
        XElement newEntry = new XElement("entry",
                 new XAttribute("name", ec.Name),
                 new XElement("city", ec.City),
                 new XElement("number", ec.Number)
            );
        doc.Add(newEntry);
        doc.Save("putanja do tog fajla");
    }
    catch (Exception e)
    {
        MessageBox.Show("Unable to add entry to xml file.\nError:\n" + e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
    }
}
Brisanje jednog itema:

Kod:
public static void DeleteItem(string name)
{
    //name je ime entry-a tj. atribut koje oces da izbrises
    try
    {
        var doc = XDocument.Load("putanja do tog fajla");
        var element = (from x in doc.Root.Elements("entry")
                       where x.Attribute("name").Value == name
                       select x).FirstOrDefault();
        element.Remove();
        doc.Save("putanja do tog fajla");
    }
     catch (Exception e)
    {
        MessageBox.Show("Unable to delete entry from xml file.\nError:\n" + e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
    }
}
Na primer EntryClaas bi izgledao, ovo je neka bzv. klasa, nema ni konstruktor:

Kod:
public class EntryClaas
{
    public string EName { get; set; }
    public string ECity { get; set; }
    public string ENumber { get; set; }
}
Kod:
//I naravno da bi koristion LINQ moras da koristis:
using System.Xml.Linq;
//Za liste
using System.Collections.Generic;
Ovo je citanje xml fajlova pomocu LINQ-a, sto je mnogo lakse od standardnog nacina.
Ivan-94 je offline   Odgovor sa citatom ove poruke
Stara 11.12.2011, 0:03   #443
talenat
Starosedelac
 
Član od: 16.2.2010.
Lokacija: Sremeska Kamenica
Poruke: 2.128
Zahvalnice: 103
Zahvaljeno 354 puta na 278 poruka
Određen forumom Re: How to... C#

moze pomoc oko prikazivanja sadrzaja hard diska u tree view kontroli...
ne znam ni kako da pocnem sa ubacivanjem svih stvari u tree view(sto je,jelte,i kljucan deo :s)
talenat je offline   Odgovor sa citatom ove poruke
Stara 12.12.2011, 0:55   #444
zokocx
Starosedelac
 
Član od: 8.4.2006.
Lokacija: Beograd
Poruke: 2.590
Zahvalnice: 919
Zahvaljeno 585 puta na 364 poruka
Određen forumom Re: How to... C#

Za pocetak ako googlas malo videc da ljudi predlažu da punjene treeview-a odradiš rekurzivno sto je losa praksa jer veci hard moze i ceo minut da drlja jer ulazi u sve foldere i puni treeview svime.

Ovde lik objasnio kako to moze da se uradi a da popunjava samo kad proširiš čvor (folder).
http://stackoverflow.com/questions/2...ck-workarounds

A imas ovde gotov primer, samo probaj da odradis svoju kontrolu jer ovo je prenatrpano.
http://www.codeproject.com/KB/tree/t...wexplorer.aspx

Za svoju upotrebu sam odradio kontrolu za foldere kao u total commanderu sa sve ikonicama i detaljima fajlova... tako da oko ikona ti mogu pomoci. Samo moras malo sam da gledas i tudji kod da pohvatas neke cake.
zokocx je offline   Odgovor sa citatom ove poruke
Stara 12.12.2011, 16:28   #445
Eddy
Starosedelac
 
Član od: 10.12.2005.
Lokacija: ¯\_(ツ)_/¯
Poruke: 1.397
Zahvalnice: 811
Zahvaljeno 404 puta na 255 poruka
Određen forumom Re: How to... C#

Kako je najpametnije praviti pauzu i izvrsavanju neke funkcije a da se ne koristi sleep? Sleep mi ne odgovara jer se onda "blokira" ceo program. I jos nesto, u vezi sleep. Jer bi Application.DoEvents() ovo pomoglo?

EDIT: DoEvents pomaze nije bas responsive program, ali je mnogo bolje nego sto je bilo.

Kod:
     
System.Threading.Thread.Sleep(Vreme / (int)brojRaspolozivihFrejmova4); //cca 40ms
Application.DoEvents();

Poslednja ispravka: Eddy (12.12.2011 u 16:48)
Eddy je offline   Odgovor sa citatom ove poruke
Stara 12.12.2011, 20:19   #446
talenat
Starosedelac
 
Član od: 16.2.2010.
Lokacija: Sremeska Kamenica
Poruke: 2.128
Zahvalnice: 103
Zahvaljeno 354 puta na 278 poruka
Određen forumom Re: How to... C#

zanimljivo koliko se stvari razlikuju kod wpf i form aplikacija...
dosta samn guglavo i pronasao nesto sto me je zanimalo,ako mi bude trebalo jos pomoci znam kome da se obratim
talenat je offline   Odgovor sa citatom ove poruke
Stara 15.12.2011, 3:26   #447
Ivan-94
Veteran
 
Član od: 15.3.2009.
Lokacija: Beograd
Poruke: 654
Zahvalnice: 240
Zahvaljeno 63 puta na 43 poruka
Slanje poruke preko MSN-a korisniku Ivan-94 Slanje poruke preko Skypea korisniku Ivan-94
Određen forumom Re: How to... C#

Citat:
Eddy kaže: Pregled poruke
Kako je najpametnije praviti pauzu i izvrsavanju neke funkcije a da se ne koristi sleep? Sleep mi ne odgovara jer se onda "blokira" ceo program. I jos nesto, u vezi sleep. Jer bi Application.DoEvents() ovo pomoglo?

EDIT: DoEvents pomaze nije bas responsive program, ali je mnogo bolje nego sto je bilo.

Kod:
     
System.Threading.Thread.Sleep(Vreme / (int)brojRaspolozivihFrejmova4); //cca 40ms
Application.DoEvents();
Kod:
protected void Delay(int ms)
{
    DateTime end = DateTime.UtcNow.AddSeconds (ms);
    while (DateTime.UtcNow < end)
    { }
}
ili

Kod:
protected void Delay(int ms)
{
    int time = Environment.TickCount;
    while(true)
        if(Environment.TickCount - time >= ms) return;
}
Ali ovo opet stavlja CPU da radi nesto. Mislim da je Sleep() najbolje resenje.
Ivan-94 je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Ivan-94 na korisnoj poruci:
Eddy (15.12.2011)
Stara 15.12.2011, 10:15   #448
MG-RAY
Starosedelac
 
Član od: 15.2.2006.
Lokacija: Midlands
Poruke: 1.523
Zahvalnice: 277
Zahvaljeno 307 puta na 207 poruka
Slanje poruke preko Skypea korisniku MG-RAY
Određen forumom Re: How to... C#

^ U praksi se to ne radi, pošto bi trebalo izbegavati rad dugotrajnijih / zahtevnijih operacija na UI threadu.

Ili koristite ThreadPool.QueueUserWorkItem za kraće stvari, ili jednostavno napravite novi tread za nešto dugotrajnije. Time se UI neće blokirati, a na vama je samo da callbackove i/ili eventove sa threada.

Tu je naravno i BackgroundWorker.

Ukoliko je potrebno da piristupite UIu sa posebnog threada:
  • Za WinForms - Control.Invoke(...)
  • Za WPF - Dispatcher.Invoke(...)
MG-RAY je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku MG-RAY na korisnoj poruci:
Eddy (15.12.2011)
Stara 15.12.2011, 10:31   #449
Eddy
Starosedelac
 
Član od: 10.12.2005.
Lokacija: ¯\_(ツ)_/¯
Poruke: 1.397
Zahvalnice: 811
Zahvaljeno 404 puta na 255 poruka
Određen forumom Re: How to... C#

Jel bi ti bilo ovako nesto?

Nisam siguran da sam dobro shvatio ovaj backgroundworker, ali tek sad cujem o tome.

Jos nesto, pre nego ste se uopste upustim u ovo. Ako timer pici u nekom drugom threadu, jel i onda dolazi do njegovog kasnjenja? Znam da je pitanje neprecizno, ali ne znam bolje. Probao sam ovo moje uraditi bez sleep, ali sa tajmerom i veoma mi je neprecizno i gomila mi se kasnjenje.

Sad cu da prostudiram ovo:
http://www.albahari.com/threading/
http://msdn.microsoft.com/en-us/library/hybbz6ke.aspx
http://msdn.microsoft.com/en-us/libr...v=VS.100).aspx

Poslednja ispravka: Eddy (15.12.2011 u 10:43)
Eddy je offline   Odgovor sa citatom ove poruke
Stara 15.12.2011, 11:20   #450
MG-RAY
Starosedelac
 
Član od: 15.2.2006.
Lokacija: Midlands
Poruke: 1.523
Zahvalnice: 277
Zahvaljeno 307 puta na 207 poruka
Slanje poruke preko Skypea korisniku MG-RAY
Određen forumom Re: How to... C#

Citat:
Eddy kaže: Pregled poruke
Jel bi ti bilo ovako nesto?

Nisam siguran da sam dobro shvatio ovaj backgroundworker, ali tek sad cujem o tome.

Jos nesto, pre nego ste se uopste upustim u ovo. Ako timer pici u nekom drugom threadu, jel i onda dolazi do njegovog kasnjenja? Znam da je pitanje neprecizno, ali ne znam bolje. Probao sam ovo moje uraditi bez sleep, ali sa tajmerom i veoma mi je neprecizno i gomila mi se kasnjenje.

Sad cu da prostudiram ovo:
http://www.albahari.com/threading/
http://msdn.microsoft.com/en-us/library/hybbz6ke.aspx
http://msdn.microsoft.com/en-us/libr...v=VS.100).aspx
Sleep savršeno lepo radi, samo nemoj da ga koristiš u glavnom thread-u.
MG-RAY je offline   Odgovor sa citatom ove poruke
Stara 15.12.2011, 11:37   #451
Eddy
Starosedelac
 
Član od: 10.12.2005.
Lokacija: ¯\_(ツ)_/¯
Poruke: 1.397
Zahvalnice: 811
Zahvaljeno 404 puta na 255 poruka
Određen forumom Re: How to... C#

Hm, jel tu ima nekog skrivenog podsmeha?

Inace sad sam probao da implementiram ovo samo mi ponekad puca 3d engine.
Eddy je offline   Odgovor sa citatom ove poruke
Stara 15.12.2011, 11:51   #452
MG-RAY
Starosedelac
 
Član od: 15.2.2006.
Lokacija: Midlands
Poruke: 1.523
Zahvalnice: 277
Zahvaljeno 307 puta na 207 poruka
Slanje poruke preko Skypea korisniku MG-RAY
Određen forumom Re: How to... C#

Citat:
Eddy kaže: Pregled poruke
Hm, jel tu ima nekog skrivenog podsmeha?
Naravno da ne, ovde smo da pomažemo međusobno...

Citat:
Eddy kaže: Pregled poruke
Inace sad sam probao da implementiram ovo samo mi ponekad puca 3d engine.
Nisi baš najbolje objasnio šta tačno želiš da postigneš? Pošto najbolje rešenje zavisi od tvog problema koji imaš.

Ali, neke smernice:
  • Timer - koriste se kada je potrebno da obaviš nešto u pravilnim vremenskim intervalima, tj. dobri su ta neki scheduling jer će ti slati Tick redovno. U zavisnosti od implementacije mogu da ti šalju taj event na glavnom/UI threadu ili na sopstvenom (u .net imaš 4 timera, u to je uključen i WPF DispatcherTimer).
  • BackgroundWorker - namenjeni su dugotrajnijim operacijama i podržavaju eventove koji ti šalju obaveštenja o progress-u.
  • QueueUserWorkItem - uzima slobodan Thread is sistemskog ThreadPool-a i na njemu obrađuje zahtev. Preporučuje se za kraće operacije obzirom da ThreadPool nije beskonačan i ti threadovi se recikliraju.
  • Tread - U tvom slučaju, pošto si rekao da pravis 3D engine, ne znak kako si zamislio, ali, ako ti neka komponenta engine-a radi sve vreme, a ti želiš da oslobodiš glavni thread, izmeni kod tako da ti radi na novom threadu. Naravno, moraćeš da paziš na sinronizaciju između threadova što je i ujedno stvar koja će ti najverovatnije zadati najviše problema...

Ako nam daš malo više informacija, dobićeš i bolji odgovor...
MG-RAY je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku MG-RAY na korisnoj poruci:
Eddy (15.12.2011)
Stara 15.12.2011, 11:57   #453
Eddy
Starosedelac
 
Član od: 10.12.2005.
Lokacija: ¯\_(ツ)_/¯
Poruke: 1.397
Zahvalnice: 811
Zahvaljeno 404 puta na 255 poruka
Određen forumom Re: How to... C#

Ok, pogresno sam razumeo.

Inace pravim ovo:
http://www.youtube.com/watch?v=QZ6yD...yBeeJ6kHog6Zv3

http://www.youtube.com/watch?v=aBgwu...WI75MnwPRKk1fu

Jos pre dosta vremena sam isklucio konstantno renderovanje posto mi je bagovalo, i uvek sam renderovao samo jedan frame nakon neke promene. E sad kad sam to hteo uraditi sa ovim bw pucao je program.
Kod:
       
private int TimeConsumingOperation(BackgroundWorker bw, int sleepPeriod)
        {
            int result = 0;

            Random rand = new Random();

            while (!bw.CancellationPending)
            {
                bool exit = false;

                //tu bi trebao ubaciti operacije rotacije

                //Do some work
                glavnaforma.pokazivacnaogreform.mogreWin.nodeGlava.Yaw(Mogre.Math.DegreesToRadians(5f));
                //glavnaforma.pokazivacnaogreform.mogreWin.root.RenderOneFrame(); //<--pravio mi je gresku pa sam prebacio iz renderoneloop u startrendereing

                Thread.Sleep(sleepPeriod);


                //ovo mi verovatno nece trebati ali neka ostane za sada
                if (exit)
                {
                    break;
                }

            }

            return result;
        }
Te sam ponovo ukljucio konstantno renderovanje da vidim sta se desava, i zasad nemam bagova. Mada jos uvek nisam siguran da je ovo pravi put, tojest kako cu sinhronizovati sve zglobove ispravno.


Probacu sa ovako nekom metodom:
Kod:
private int TimeConsumingOperation(BackgroundWorker bw, int sleepPeriod, float ugaoGlave, float ugaoUgaoPrviLeviZglob, float ugaoUgaoDrugiLeviZglob, float ugaoTreciLeviZglob)
{
}
SAmo mi nije jasno zasto mi resetuje poziciju glave kada pokrenem bw samo kada se i neki drugi zglob pomerao (edit: skontao).
http://www.youtube.com/watch?v=0zFYy...ature=youtu.be

Eh, konacno imam dovoljno da formulisem novo pitanje. Kako mogu iz ovog novog "threada" pozivati metode iz "starog"? Kako sam skontao treba nesto sa invoke. Dakle kako da izvrsim ovo btnRead.PerformClick(); iz backgroundworkera i valjda sa invoke.

Poslednja ispravka: Eddy (15.12.2011 u 12:24)
Eddy je offline   Odgovor sa citatom ove poruke
Stara 15.12.2011, 15:25   #454
zokocx
Starosedelac
 
Član od: 8.4.2006.
Lokacija: Beograd
Poruke: 2.590
Zahvalnice: 919
Zahvaljeno 585 puta na 364 poruka
Određen forumom Re: How to... C#

Posto radis neku izmenu na GUI-u sto jedino sme samo da radi taj thread koji je kreirao GUI (verovatno glavni), moras da Invoke-ujes metodu na tom threadu preko delegata (sad ne znam da li sam se dobro izjasnio, posto malo je komplikovana terminologija).

Ovo bi ti resilo verovatno problem:
Kod:
glavnaforma.pokazivacnamainpulationfrom.btnRead.Invoke(new MethodInvoker(delegate()
                {
                    glavnaforma.pokazivacnamainpulationfrom.btnRead.PerformClick();
                }));
Ili ako je moguci slucaj da se PerformClick() u toj situaciji pozove i sa glavnog threada onda moras da ubacis i proveru, inace provera je suvisna.
Kod:
if(  glavnaforma.pokazivacnamainpulationfrom.btnRead.InvokeRequired)
{
            glavnaforma.pokazivacnamainpulationfrom.btnRead.Invoke(new MethodInvoker(delegate()
                {
                    glavnaforma.pokazivacnamainpulationfrom.btnRead.PerformClick();
                }));
}
else // obican poziv
  glavnaforma.pokazivacnamainpulationfrom.btnRead.PerformClick();
Ovako se to radi pešice tj. nekad(onaj odgovor sa 3 glasa tj. poslednji)
http://stackoverflow.com/questions/4...ead-in-c-sharp
Info o MethodInvoker Delegate
I setio sam se dobrog primera (post 305) u ovoj temi, koji mi je pomagao ovo da ti smislim.
zokocx je offline   Odgovor sa citatom ove poruke
Sledećih 2 korisnika se zahvaljuje korisniku zokocx na korisnoj poruci:
Eddy (15.12.2011), irreal (21.12.2011)
Stara 15.12.2011, 15:48   #455
Eddy
Starosedelac
 
Član od: 10.12.2005.
Lokacija: ¯\_(ツ)_/¯
Poruke: 1.397
Zahvalnice: 811
Zahvaljeno 404 puta na 255 poruka
Određen forumom Re: How to... C#

Eh, uspeo sam da resim pomocu nekog delegate tutorijala. Sa obzirom na rezultat u odnosu na ono resenje sa dve linije koda

Kod:
System.Threading.Thread.Sleep(Vreme / (int)brojRaspolozivihFrejmova4); //cca 40ms
Application.DoEvents();
Ne vredi mi da se petljam sa threadovima toliko.

Svakako cu da uporedim ovo tvoje da vidim ima li razlike i kakve.

EDIT: E to sam trazio, kako se to radi odmah u argumentima. Ja sam odradio malo komplikovanije, i ne pitajte me kako je ovo proradilo iz prve:
Kod:
        public delegate void klikniMe();
        public klikniMe mojDelegat;

        public Manipulation(MainForm ulaz)
        {
            InitializeComponent();
            glavna = ulaz;
            oforma = glavna.pokazivacnaogreform;
            dataForma = glavna.pokazivacnaDataGridFormform;

            mojDelegat = new klikniMe(klikniMeMetoda);
        }

        public void klikniMeMetoda()
        {
            btnRead.PerformClick();
            //oforma.mogreWin.root.RenderOneFrame();

        }
Kod:
        private int TimeConsumingOperation(BackgroundWorker bw, int sleepPeriod)
        {
            int result = 0;

            Random rand = new Random();

            try
            {

                while (!bw.CancellationPending)
                {
                    bool exit = false;

                    //tu bi trebao ubaciti operacije rotacije

                    //Do some work
                    glavnaforma.pokazivacnaogreform.mogreWin.nodeGlava.Yaw(Mogre.Math.DegreesToRadians(5f));
                    

                    if (glavnaforma.pokazivacnamainpulationform.btnRead.InvokeRequired)
                    {

                        if (glavnaforma.pokazivacnaNovuBazu.backgroundWorkerNovaBaza.IsBusy)
                            glavnaforma.pokazivacnamainpulationform.Invoke(glavnaforma.pokazivacnamainpulationform.mojDelegat); //ovo iz nekog razloga radi
                    }
                    Thread.Sleep(sleepPeriod);

                    //ovo mi verovatno nece trebati ali neka ostane za sada
                    if (exit)
                    {
                        break;
                    }

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

            return result;
        }

Poslednja ispravka: Eddy (15.12.2011 u 15:56)
Eddy je offline   Odgovor sa citatom ove poruke
Stara 15.12.2011, 16:31   #456
Eddy
Starosedelac
 
Član od: 10.12.2005.
Lokacija: ¯\_(ツ)_/¯
Poruke: 1.397
Zahvalnice: 811
Zahvaljeno 404 puta na 255 poruka
Određen forumom Re: How to... C#

Nov problem:

Zasto ne mego odraditi konverziju
Kod:
uintKrajnjeVrednostiUglovaLIST[j - 2] = Convert.ToUInt64(red.Rows[0][j]);
Vec sam od uint stigao ulong, i dalje mi izbacuje da je value to large or to small. A treba da prebacim -60 u ovu listu.

ne radi ni ovo:
var tempi = Convert.ToUInt64(red.Rows[0][j].ToString());

EDIT: Radi sa int. A zar ne treba da bude uint kada se barata sa brojevima koji mogu biti negativni? Sad bas gledam, ni ranije nisam koristio uint, ne znam zasto mi je palo sad na pamet.

Poslednja ispravka: Eddy (15.12.2011 u 17:03)
Eddy je offline   Odgovor sa citatom ove poruke
Stara 15.12.2011, 17:04   #457
zokocx
Starosedelac
 
Član od: 8.4.2006.
Lokacija: Beograd
Poruke: 2.590
Zahvalnice: 919
Zahvaljeno 585 puta na 364 poruka
Određen forumom Re: How to... C#

Malo si se zabunio

uint - unsigned integer ... tj. samo pozitivni celi brojevi (0 to 4,294,967,295)
int - sadrzi negativne (-2,147,483,648 to 2,147,483,647)

Tako da ne mozes da stavis -60 u listu koja drzi samo uint, menjaj to sve na int (System.Int32) ili long (System.Int64).
zokocx je offline   Odgovor sa citatom ove poruke
Stara 15.12.2011, 17:05   #458
Eddy
Starosedelac
 
Član od: 10.12.2005.
Lokacija: ¯\_(ツ)_/¯
Poruke: 1.397
Zahvalnice: 811
Zahvaljeno 404 puta na 255 poruka
Određen forumom Re: How to... C#

LoooooooooooooooooL

Unsigned, kako sam se zeznuo. I jos vrtim sebi u glavi, uint je signed...uint je signed. Kada zurim ko kreten, pa samo jos vise zeznem (hteo bih da mi ovo proradi do sutra ujutru). Izmenjao sam. Sreca pa mi je to doslo tek sada pa nisam napravio havariju.
Eddy je offline   Odgovor sa citatom ove poruke
Stara 15.12.2011, 18:28   #459
RaKuN_s_NeOnKoM
Član
 
Član od: 27.9.2006.
Lokacija: Sombor
Poruke: 227
Zahvalnice: 92
Zahvaljeno 51 puta na 31 poruka
Slanje poruke preko MSN-a korisniku RaKuN_s_NeOnKoM Slanje poruke preko Skypea korisniku RaKuN_s_NeOnKoM
Određen forumom Re: How to... C#

Pozdrav svima. Poceo sam da ucim C# pa se trenutno bavim klasama/metodima i odnosima izmedju njih. Da li postoji nacin da ovaj oznaceni deo koda smestim u poseban metod pa da ga odatle upotrebim? Nekako mi je neuredno da stoji u main metodu. [verovatno radim pogresno]

Takodje bih voleo da naucim da npr. sa tastature unesem 'prva' ili 'druga' [imena objekata u kodu] pa da mi na taj nacin primeni 'spec' metod na njih.


Kod:
using System;

class Kada
{
    string ime;
    double zapremina;
    int cena;
    bool luksuzna;

    static void Main()
    {
// OVO ODAVDE ####################
        Kada prva;
        prva = new Kada();

        prva.ime = "Nadja";
        prva.zapremina = 20.20;
        prva.cena = 1000;
        prva.luksuzna = false;

        Kada druga;
        druga = new Kada();

        druga.ime = "Jadranka";
        druga.zapremina = 60.44;
        druga.cena = 3000;
        druga.luksuzna = true;
// DOVDE ########################

        prva.spec();
        Console.WriteLine("\n");
        druga.spec();
    }

    public void spec()
    {
        Console.Clear();
        Console.WriteLine("Ova kada se zove " + this.ime + ", ima zapreminu " + this.zapremina + " litara, kosta " + this.cena + " evra i ");
        if (this.luksuzna == true)
        {
            Console.Write("spada medju luksuzne kade.");
        }
        else
        {
            Console.Write("nije luksuzna kada.");
        }
    }
}
edit: u medjuvremenu sam uradio unosenje preko switch iskaza. Postoji li jos neki nacin?

Kod:
Console.WriteLine("Unesi kod kade.");
        string g = Console.ReadLine();
        switch (g.ToLower())
        {
            case "prva":
                {
                    prva.spec();
                    break;
                }
            case "druga":
                {
                    druga.spec();
                    break;
                }
        }

Poslednja ispravka: RaKuN_s_NeOnKoM (15.12.2011 u 18:48)
RaKuN_s_NeOnKoM je offline   Odgovor sa citatom ove poruke
Stara 15.12.2011, 18:50   #460
Eddy
Starosedelac
 
Član od: 10.12.2005.
Lokacija: ¯\_(ツ)_/¯
Poruke: 1.397
Zahvalnice: 811
Zahvaljeno 404 puta na 255 poruka
Određen forumom Re: How to... C#

Pa sad, ja nisam neki programer. Ali jel pametno tako deklarisiti niz klasa Kada? Tojest ne znam sta hoces da postignes. Da se samo igras sa klasama ili da tako pravis razlike izmedju modela. Ako je ovo drugo, zar nije pametnije praviti neku bazu i baratati sa njenim vrednostima iz jedna klase npr?

Kazem, vrlo je moguce da sam i pogresno razumeo.
Eddy je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Tagovi
c sharp, c# tutoriali, how to, visual studio


Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno



Sva vremena su po Griniču +2 h. Sada je 14:36.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com