C# - Problemi i rješenja izdvojena tema

poruka: 2.151
|
čitano: 705.035
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Ne uspije doći do ExecuteQueryja, izgleda da ga ove liste hebu. Sada sam išao ponovno i jedna nije popunjena uopće. Mislim da znam di je problem, postat ću rješenje.

http://nighthawk-software.blogspot.com/
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Poslušaj Fridaya i kreni koristiti EF ili L2S. Preporodit ćeš se. EF je moja preporuka. Ali ako želiš kucati ADO.NET kôd, samo naprjed. :D

16 godina
odjavljen
offline
C# - Problemi i rješenja

Sad sam na 2 projekta pa nemam vremena detaljnije poučavati EF. Kad završim, nema novih poslova dok to ne pohvatam.

 

A što se tiče ovog gore problema, Google API nije punio liste kako treba. Sad sve radi (relativno) ok.

http://nighthawk-software.blogspot.com/
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja
Sum_of_all_fears kaže...

 Sad sve radi (relativno) ok.

 Relativno?

16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Ma ovaj Google API me pojede živog. Ne vraća adrese i URLove od kontakata kako treba. Dokumentacija je ili štura ili se ja nisam snašao. Problem je riješen jednim ogromnim try...catch blokom koji u slučaju exceptiona to polje (adresa ili url) popuni sa "" iako kada gledam na Gmailu taj kontakt ima adresu. Za neke vrati kako treba a za neke jednostavno neće.

http://nighthawk-software.blogspot.com/
16 godina
neaktivan
offline
C# - Problemi i rješenja

Može preporuka neke dobre knjige za C#? :-)

 
0 0 hvala 0
15 godina
odjavljen
offline
Re: C# - Problemi i rješenja
LOTROwannabe kaže...

Može preporuka neke dobre knjige za C#? :-)

Iako nisam .NET developer, svojedobno dok sam bio zainteresiran za .NET, posebno mi je za oko zapala knjiga Luke Abrusa, uglavnom knjiga se zove Simfonija programiranja u .NET-u, nastala je pod otkriljem i palicom ekipe iz Buga, i kod istih je dobavljiva u fizičko obliku. Svojedobno sam zbog te knjige okrenuo par knjižnica, maltretirao tetu Vesnu iz BUG redakcije i samog Luku. UGlavnom, moja preporuka, knjiga na dosta lijep način uvodi novog korisnika/developera u .NET svijet, od web formi, servisa, ASP.NET, WPF-a, samog .NET frameworka, kao i same fundamente programiranja, petlje, varijable, namespaces, objekte, klase i to početni primjeri pisani i u C# i VB.NET-u, dok se kasnije sve orijentira na C#.

12 godina
neaktivan
offline
C# - Problemi i rješenja

Bok! Zanimalo bi me kako da napravim Parsing jednog commandLine koje napišem na console aplikaciji u C#. Znaci trebala bi taj commandline podjelit i sejvat u posebne String value, da ih mogu koristit u pozivu druge procedure.

Moja console aplikacija bi trebala napisat početnu line "napiši postavke koje želiš" ja napišem "postavke 1 - to, 2-to ... itd."  i trebala bi svaki "to" sejvat u String value. Nadam se da sam bila jasna. Trebala bi bit neka glupost ali nikako da proradi, jer kad napravim tako ispadne mi da String[] args je prazan, uopce mi ne pročita podatke koje sam napisala.

 

Hvala vam puno!

 
0 0 hvala 0
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja
alankish kaže...

Iako nisam .NET developer, svojedobno dok sam bio zainteresiran za .NET, posebno mi je za oko zapala knjiga Luke Abrusa, uglavnom knjiga se zove Simfonija programiranja u .NET-u, nastala je pod otkriljem i palicom ekipe iz Buga, i kod istih je dobavljiva u fizičko obliku. Svojedobno sam zbog te knjige okrenuo par knjižnica, maltretirao tetu Vesnu iz BUG redakcije i samog Luku. UGlavnom, moja preporuka, knjiga na dosta lijep način uvodi novog korisnika/developera u .NET svijet, od web formi, servisa, ASP.NET, WPF-a, samog .NET frameworka, kao i same fundamente programiranja, petlje, varijable, namespaces, objekte, klase i to početni primjeri pisani i u C# i VB.NET-u, dok se kasnije sve orijentira na C#.

I Domagoja Pavlešića. :D Odlična knjiga, ja sam je tražio dugo, pa sam odustao pa je opet tražim, sumnjam da ću je naći. Bum gnjavil Domagoja. :P

Autoru preporučujem Wrox - Beginning C# 2010. Ili, stara knjiga od Charlesa Petzolda, ne znam kako se točno zove ("intro in .NET" ili tako nešto...), ali je odlična.

17 godina
odjavljen
offline
Re: C# - Problemi i rješenja
blackCoffee kaže...

Bok! Zanimalo bi me kako da napravim Parsing jednog commandLine koje napišem na console aplikaciji u C#. Znaci trebala bi taj commandline podjelit i sejvat u posebne String value, da ih mogu koristit u pozivu druge procedure.

Moja console aplikacija bi trebala napisat početnu line "napiši postavke koje želiš" ja napišem "postavke 1 - to, 2-to ... itd."  i trebala bi svaki "to" sejvat u String value. Nadam se da sam bila jasna. Trebala bi bit neka glupost ali nikako da proradi, jer kad napravim tako ispadne mi da String[] args je prazan, uopce mi ne pročita podatke koje sam napisala.

 

Hvala vam puno!

 

Ovo je vrlo zbrčkano objašnjeno. Daj nekakav banalan primjer jer ovo što si napisala nema baš nekog smisla...

Freak Show Inc.
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Ako sam ja dobro skužio, treba joj neka for petlja koja će pohvatati te "postavke" i spremiti ih kao List<String>. Nakon završetka upisa tih varijabli, program bi trebao krenuti dalje...

 

String[]args se popuni samo ako se aplikaciji zadaju parametri npr. chkdsk C: /f - parametri bi bili C: i f

http://nighthawk-software.blogspot.com/
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja
blackCoffee kaže...

String[] args je prazan

A kakav bi trebao biti? Pozivaš li aplikaciju iz komandnog retka?

12 godina
offline
Re: C# - Problemi i rješenja

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Answer1

{

   class Program

   {

     static void Main(string[] args)

     {

       if (args.Length != 0)//Ukoliko se postavke unesu preko komandne linije

       {

         foreach (var item in args)

         {

           Console.WriteLine(item.ToString());

         }

         return;

       }

 

       Console.WriteLine("napiši postavke koje želiš :");//npr. postavka jedan,postavka dva,postavka tri,postavka ...

       string postavke = Console.ReadLine();

       string[] polje_postavki = postavke.Split(',');//Odvoji postavke na mjestu gdje je zarez i spremi ih u polje postavki

       foreach (var item in polje_postavki)

       {

         Console.WriteLine(item.ToString());

       }

       return;

     }

   }

}

Ukoliko postavke uneseš preko komandne linije npr. Answer1 p1 p2 p3 rezultat je sam po sebi spremljen u polje stringova args[] kojem i svakoj postavci možeš pristupiti pomoću indexa u polju npr. Console.WriteLine(args[1]); daje rezultat p1
Ukoliko postavke ne uneseš preko komandne linije pojaviti će se zahtjev za unosom postavki te ih možeš unijeti npr. p1,p2,p3 i spremiti će se u polje_postavki gdje opet možeš pristupiti svakoj pojedinačno putem indexa npr. Console.WriteLine(polje_postavki[1]); daje rezultat p1
Nadam se da sam dobro razumio problem
LP

16 godina
odjavljen
offline
C# - Problemi i rješenja

Koje je po vama najlakše rješenje za provjeru je li aplikacija zatvorena na normalan način?

 

Dakle, ako nešto "nasilno" prekine aplikaciju, ja bi to mora znati. Aplikacija na idućem pokretanju mora pokazazi upozorenje da prošli put nije ugašena na pravilan način - preko posebnog gumba.

 

Jedan od načina je spremiti ključ u registry na gašenju. Ako ključa nema, aplikacija nije ugašena kako treba. Ako je ključ tu, aplikacija vrati cleanExit = 1 i obriše ključ tijekom pokretanja. Na zatvaranju, zapisuje ključ opet.

 

Ima nešto jednostavnije ili je to to?

 

[edit] - aplikacija generira i neke tmp fajlove ({guid}.tmp) koje ostavlja ili briše - ovisno o tome što se radilo. E sada, postoji mogućnost da se ti fajlovi pobrišu ručno preko serverskog dijela pa njihova prisutnost ne znači ništa - ne zna se jel aplikacija ugašena "nasilno" pa su fajlovi ostali ali ih je server pobrisao.

http://nighthawk-software.blogspot.com/
Poruka je uređivana zadnji put čet 27.9.2012 21:15 (Sum_of_all_fears).
Moj PC  
2 0 hvala 0
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

I mene to zanima, evo nasao sam na CodeProjectu ovo. Pogledam kasnije, ako nađeš nešto "konkretnije" javi. :D

16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Aplikacija ne zapisuje u registry ništa - sve drži u XML fajlovima (opet, da bi server mogao čitati i mijenjati njihov sadržaj). Ako postoji neki drugi način, htio bi izbjeći piskaranje po registiyu bez previše potrebe.

http://nighthawk-software.blogspot.com/
14 godina
neaktivan
offline
Re: C# - Problemi i rješenja
Sum_of_all_fears kaže...

Koje je po vama najlakše rješenje za provjeru je li aplikacija zatvorena na normalan način?

 

Dakle, ako nešto "nasilno" prekine aplikaciju, ja bi to mora znati. Aplikacija na idućem pokretanju mora pokazazi upozorenje da prošli put nije ugašena na pravilan način - preko posebnog gumba.

 

Jedan od načina je spremiti ključ u registry na gašenju. Ako ključa nema, aplikacija nije ugašena kako treba. Ako je ključ tu, aplikacija vrati cleanExit = 1 i obriše ključ tijekom pokretanja. Na zatvaranju, zapisuje ključ opet.

 

Ima nešto jednostavnije ili je to to?

 

[edit] - aplikacija generira i neke tmp fajlove ({guid}.tmp) koje ostavlja ili briše - ovisno o tome što se radilo. E sada, postoji mogućnost da se ti fajlovi pobrišu ručno preko serverskog dijela pa njihova prisutnost ne znači ništa - ne zna se jel aplikacija ugašena "nasilno" pa su fajlovi ostali ali ih je server pobrisao.

Aplikacija može koristiti običnu log datoteku u kojoj može jednostavno zapisati npr. broj 0 kad aplikacija krene s radom i broj 1 prilikom završavanja. Ti pri sljedećem pokretanju samo provjeriš da li je zadnji unos u log datoteku bio 0 ili 1.

 

Inače se ovo rješava vrlo elegantno kada je riječ o više procesa. Prvi proces pozove drugi proces i čeka ga da završi s radom, a nakon toga analizira njegovu povratnu vrijednost tj. exit code.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja
TracerCPP kaže...
...

 

Inače se ovo rješava vrlo elegantno kada je riječ o više procesa. Prvi proces pozove drugi proces i čeka ga da završi s radom, a nakon toga analizira njegovu povratnu vrijednost tj. exit code.

Da ali što ako oba procesa nešto prekine? Npr, netko odlogira usera? Malo vjerojatna situacija ali nije nemoguće.

 

Što se tiče ovog sa log fajlom, tako nešto sam i planirao napraviti. Hvala.

http://nighthawk-software.blogspot.com/
16 godina
odjavljen
offline
C# - Problemi i rješenja

Jedno pitanje

 

Kako syncati npr. 3 backgroundWorkera?

 

Ta 3 workera rade SELECT na nekoliko SQL tablica i u jednoj Access bazi. Select se vrti na osnovu promjene textboxa tj. radi google-like search - čim dopišete novo slovo, on ponovno pokreće pretragu i fila dataGrid. E sada, to je poprilično sporo, pogtovo select u Access bazi od 100tinjak MB - treba mu skoro 2 sekunde.

 

Ako korisnik prebrzo utipka naziv, proces (thread - backgroundWorker) se skrši jer nije gotov sa izvršavanjem starog querya. Palo mi je na pamet disableati search textbox dok ne završi sa izvršavanjem querya i kada sva 3 workera budu imali spremne podatke tek onda enableati searchbox i dozvoliti daljnji upis.

 

Ukratko - kako sinkronizirati 3 threada tako da najbrži ne vraća RunWorkerComplete sve dok zadnji ne bude gotov?

http://nighthawk-software.blogspot.com/
Moj PC  
0 0 hvala 0
17 godina
odjavljen
offline
Re: C# - Problemi i rješenja
Sum_of_all_fears kaže...

Jedno pitanje

 

Kako syncati npr. 3 backgroundWorkera?

 

Ta 3 workera rade SELECT na nekoliko SQL tablica i u jednoj Access bazi. Select se vrti na osnovu promjene textboxa tj. radi google-like search - čim dopišete novo slovo, on ponovno pokreće pretragu i fila dataGrid. E sada, to je poprilično sporo, pogtovo select u Access bazi od 100tinjak MB - treba mu skoro 2 sekunde.

 

Ako korisnik prebrzo utipka naziv, proces (thread - backgroundWorker) se skrši jer nije gotov sa izvršavanjem starog querya. Palo mi je na pamet disableati search textbox dok ne završi sa izvršavanjem querya i kada sva 3 workera budu imali spremne podatke tek onda enableati searchbox i dozvoliti daljnji upis.

 

Ukratko - kako sinkronizirati 3 threada tako da najbrži ne vraća RunWorkerComplete sve dok zadnji ne bude gotov?

 

Bolje onda napravi sa Task klasama i nakon što si sva 3 taska upogonio pozovi wait na sva 3:

t1.wait();

t2.Wait();

t3.Wait();

 

kod će se dalje izvršavati tek kad su sva 3 gotova.

Freak Show Inc.
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Framework 4.0?

 

Ima neko drugo rješenje a da je za 3.5? Ovo rješenje je ok ali ciljani framework je 3.5.

http://nighthawk-software.blogspot.com/
17 godina
odjavljen
offline
Re: C# - Problemi i rješenja
Sum_of_all_fears kaže...

Framework 4.0?

 

Ima neko drugo rješenje a da je za 3.5? Ovo rješenje je ok ali ciljani framework je 3.5.

 

Sorry, nisam znao. Onda provjeravaj statuse ostala 2 BW-a kad pojedini završi. Ako su druga 2 gotova "opali" neki svoj event/metodu. Vrlo jednostavno. Ili si napravi neki int property koji ćeš dizati za 1 za svaki complete. U set metodi tog property-ja svaki puta provjeri jel mu trenutna vrijednost 3 - ako je izvrši ono što trebaš.

 

EDIT: nemoj ni slučajno izvršavati "teške" query-je za svako slovo, NI SLUČAJNO!!!

Freak Show Inc.
Poruka je uređivana zadnji put uto 9.10.2012 17:25 (Friday).
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Nešto ću iskemijati sa ovim gore - kada worker završi, dignut će neki int za +1 a neki "monitor" će u do..while petlji paziti jel dozvoljeno ponovno pokretanje workera.

 

Problem je u tome što su mi takvi queryji potrebni jer pretražuje kontakte i podatke o kontaktima. Access baza je problem. Ona se updatea preko drugog programa svakih x sekundi nad čime ja nemam kontrolu a moj program mora pretraživati tu bazu. Parcijalno pretraživanje je bitno u cijeloj priči.

 

Da se ova access baza ne mijenja svakih par minuta ili manje, jednostavno bi na loadanju search forme sve kopirao u privremenu sqlite tablicu i nju pretraživao do zatvaranja forme. Pretraživanje bi bilo puno prije gotovo (jer worker koji traži po glavnoj SQL bazi uopće nema problema sa pretraživanjem slovo-po-slovo a ima daleko više kontakata nego access) nego ovo roštanje po Accessu.

 

I to na mrežnom disku -.-

http://nighthawk-software.blogspot.com/
17 godina
odjavljen
offline
Re: C# - Problemi i rješenja
Sum_of_all_fears kaže...

Nešto ću iskemijati sa ovim gore - kada worker završi, dignut će neki int za +1 a neki "monitor" će u do..while petlji paziti jel dozvoljeno ponovno pokretanje workera.

 

Problem je u tome što su mi takvi queryji potrebni jer pretražuje kontakte i podatke o kontaktima. Access baza je problem. Ona se updatea preko drugog programa svakih x sekundi nad čime ja nemam kontrolu a moj program mora pretraživati tu bazu. Parcijalno pretraživanje je bitno u cijeloj priči.

 

Da se ova access baza ne mijenja svakih par minuta ili manje, jednostavno bi na loadanju search forme sve kopirao u privremenu sqlite tablicu i nju pretraživao do zatvaranja forme. Pretraživanje bi bilo puno prije gotovo (jer worker koji traži po glavnoj SQL bazi uopće nema problema sa pretraživanjem slovo-po-slovo a ima daleko više kontakata nego access) nego ovo roštanje po Accessu.

 

I to na mrežnom disku -.-

 

do... while bi ti mogao zakucati procesor na 100% (ili barem jezgru na kojoj se izvršava). Bolje onda stavi neki timer koji ćeš paliti/gasiti a koji će nakon svakih n milisekundi provjeravati jel se smije raditi što već treba.

Freak Show Inc.
16 godina
neaktivan
offline
Re: C# - Problemi i rješenja
Navedeno sam rješavao tako da prvo se čeka 2 sekunde da korisnik prestane tipkati, dakle dok god tipka ništa se ne izvršava i kad prestane nakon 2 sekunde se pokreće thread za SQL. Stavi neki indikator koji će ti javljati dali je query izvršen i koji neće dozvoljavati izvršavanje novih query-a dok se trenutni ne obavi. Background worker ako se dobro sjećam ima work complete event na koji se možeš oslonit.
17 godina
odjavljen
offline
Re: C# - Problemi i rješenja
vedran984 kaže...
Navedeno sam rješavao tako da prvo se čeka 2 sekunde da korisnik prestane tipkati, dakle dok god tipka ništa se ne izvršava i kad prestane nakon 2 sekunde se pokreće thread za SQL. Stavi neki indikator koji će ti javljati dali je query izvršen i koji neće dozvoljavati izvršavanje novih query-a dok se trenutni ne obavi. Background worker ako se dobro sjećam ima work complete event na koji se možeš oslonit.

 

Vjeruj mi da ima korisnika koji će u te dvije sekunde već napraviti print screen i poslati mail u kojem piše "ZAŠTO MENI NE RADI PRETRAGA???"

Freak Show Inc.
16 godina
neaktivan
offline
Re: C# - Problemi i rješenja
Friday kaže...
vedran984 kaže...
Navedeno sam rješavao tako da prvo se čeka 2 sekunde da korisnik prestane tipkati, dakle dok god tipka ništa se ne izvršava i kad prestane nakon 2 sekunde se pokreće thread za SQL. Stavi neki indikator koji će ti javljati dali je query izvršen i koji neće dozvoljavati izvršavanje novih query-a dok se trenutni ne obavi. Background worker ako se dobro sjećam ima work complete event na koji se možeš oslonit.

 

Vjeruj mi da ima korisnika koji će u te dvije sekunde već napraviti print screen i poslati mail u kojem piše "ZAŠTO MENI NE RADI PRETRAGA???"

 

Srića da su moji korisnici strpljivi i redovito po principu googla udaraju enter nakon tipkanja pa taman ispadne da se pojavu rezultati nakon udara na enter, za sada nisam imao problema a uvijek se da skratit za pola sekunde :)

17 godina
odjavljen
offline
Re: C# - Problemi i rješenja
vedran984 kaže...

Srića da su moji korisnici strpljivi i redovito po principu googla udaraju enter nakon tipkanja pa taman ispadne da se pojavu rezultati nakon udara na enter, za sada nisam imao problema a uvijek se da skratit za pola sekunde :)

 

To je oksimoron! Nema strpljivih korisnika...

Freak Show Inc.
16 godina
odjavljen
offline
C# - Problemi i rješenja

Jel netko radio sa google APIjem za .net?

 

Imam problema sa adresama i telefonskim brojevima. Ne vidim način kako ih dohvatiti. Sve drugo ok ali to dvoje ne ide. Npr:

 

foreach (Street street_adr in e.PrimaryPostalAddress.Street)

{

        strt_addr.Add(street_adr.ToString());

}

 

ne prolazi. Dobijem praznu listu a morao bit dobiti adresu. Kontakt ima sve upisano na gmailu ali dobiti to, nema teorije.

http://nighthawk-software.blogspot.com/
Moj PC  
0 0 hvala 0
17 godina
odjavljen
offline
Re: C# - Problemi i rješenja
Sum_of_all_fears kaže...

Jel netko radio sa google APIjem za .net?

 

Imam problema sa adresama i telefonskim brojevima. Ne vidim način kako ih dohvatiti. Sve drugo ok ali to dvoje ne ide. Npr:

 

foreach (Street street_adr in e.PrimaryPostalAddress.Street)

{

        strt_addr.Add(street_adr.ToString());

}

 

ne prolazi. Dobijem praznu listu a morao bit dobiti adresu. Kontakt ima sve upisano na gmailu ali dobiti to, nema teorije.

 

A šta je konkretno prazno?

e?

e.PrimaryPostalAddress?

e.PrimaryPostalAddress.Street?

 

Ili strt_addr?

Freak Show Inc.
Nova poruka
E-mail:
Lozinka:
 
vrh stranice