- iPhone topik
- Android alkalmazások - szoftver kibeszélő topik
- Profi EKG-s óra lett a Watch Fitből
- Honor 400 Pro - gép a képben
- Samsung Galaxy S21 és S21+ - húszra akartak lapot húzni
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Samsung Galaxy A54 - türelemjáték
- Milyen okostelefont vegyek?
- Telekom mobilszolgáltatások
- Apple iPhone 16 Pro - rutinvizsga
Új hozzászólás Aktív témák
-
Karma
félisten
válasz
trisztan94 #4603 üzenetére
Természetesen lehetséges, ezt a funkciót geocodingnak nevezik, így keress rá.
Kb. tényleg ennyi: betolod a címet, visszajönnek a lehetséges koordinátái.Mondjuk a Bing helyett én a Google API-ját javaslom, ha más nem, a jobb adatbázis miatt.
-
Karma
félisten
válasz
RexpecT #4588 üzenetére
Mit használsz a szerveroldalra?
WCF-et, ASP Web API-t (ha nem, miért nem?), ServiceStacket, stb.?leximester: Mindenképp nézd meg a HorizontalAlignment és VerticalAlignment propertyk értékét, mert Griden belül számítanak. Ha ilyen abszolút elhelyezést akarsz, nem lenne egyszerűbb Canvast használni?
-
Karma
félisten
válasz
leximester #4545 üzenetére
Az Silverlightnak számít, és tényleg nem a rendeltetésszerű használat.
Tisztább kódot kapnál, ha nem közvetlenül manipulálnád a színeket (sőt magukat a controlokat se), hanem kihasználnád a data bindingot. Például vannak óra objektumaid, amiknek egy propertyje tárolja a hozzá tartozó színt; vagy még jobb, ha csak egy enumot, amiből egy converter csinál színt.
-
Karma
félisten
válasz
leximester #4543 üzenetére
Mi lesz ebből?
Egyébként meg úgy, ahogy beállítottad. A Fill propertyvel megkapod a SolidColorBrush objektumot, annak meg el tudod kérni a színét.
Bár meg kell jegyeznem, hogy ha ez most WPF vagy Silverlight, akkor nem ez a rendeltetésszerű használata...
-
Karma
félisten
Magam nem írtam még ilyet, de ez a SO kérdés pont ezzel foglalkozik.
-
Karma
félisten
válasz
leximester #4500 üzenetére
Egy ilyennek a megvalósításához igazából bőven elég a tárhely. Felraksz egy fájlt rá, tetszőleges tartalommal (például egy JSON objektum, benne a hírekkel), amit statikusan kiszolgál a szerver. Ha új hírt akarsz, átírod a tartalmát.
A jövőben ha szofisztikáltabbat akarsz helyette, akkor meg majd olyan kódot írsz, ami ugyanilyet dinamikusan generál
-
Karma
félisten
Ja hogy az iterátorra gondolsz? Abból kötelezően új példányok kellenek. Oldal renderelésenként egy iterátort létrehozni azért nem olyan durva költség, inkább premature optimization ellene küzdeni
Hogy máshogy töltenéd fel a listát? Légyszi ne mondd, hogy a Viewba kódolnád a listát...
-
Karma
félisten
Hol látsz "osztályt az osztályban"?
Ez egy minimális kód ami teljesíti a kritériumot: feltölthető vele egy DropDownList, lokalizálva. Emellett összesen három példány jön belőle létre... Kb. olyan, mint a Java enum.
Biztos ugyanazt a kódot nézzük?
Az ISO szabványos kódot meg bele lehet ebbe ágyazni.
-
Karma
félisten
válasz
leximester #4398 üzenetére
Határozott ughhhhh.
Miért hoznál létre kódból TextBlockokat? Főleg hogy ebben a kis részletben nem is adtad hozzá semmihez se.
Használd a XAML-t!
A primitív verzióban csináld meg a 30 TextBlockot, mindegyiknek más Name property-vel, és akkor generálódik hozzájuk azonos nevű tagváltozó.
Ha meg kinőtted az okádék verziót, csinálj egy ListBoxot, aminek az ItemTemplate-je a neked tetsző TextBlock, a tartalmát meg hozd be bindingon keresztül. Gondolom most is egy tömbben van minden...
-
Karma
félisten
válasz
Mister_X #4327 üzenetére
Részben, az alkalmazáslogikát C#-ban (esetleg Visual Basicben) lehet írni, viszont a felhasználói felület XAML. Ezért is emlegettem a Silverlightot az előbb.
WP8-tól kezdve már lehet C++-ban írt natív libeket használni és akár tisztán DirectX/C++ játékot is írni, de az teljesen más történet.
A bonyolult nyelvek védelmében: az előző sorrend semmilyen nyelven nem működött volna, és csak töredékükön lett volna egyáltalán fordítható/futtatható
Viszont a C# legbonyolultabb részei is elegánsak (szvsz) és a fejlesztői hatékonyságon sokat dobnak.
-
Karma
félisten
válasz
Mister_X #4325 üzenetére
Nemhogy nem futna le, le se fordulna, mert a beolvasásnál deklaráltam, ahogy mondod. Nagyon nem mindegy a sorrend. Mondjuk a var kulcsszó lehet túl hirtelen volt, képzeld azt, hogy string van helyette!
Az ifet is eltaláltad, a TryParse bool értéket ad vissza, ami igaz ha sikerült számot beolvasni, és hamis ha nem.
-
Karma
félisten
válasz
Mister_X #4322 üzenetére
Deklarálni biztosan nem fogja a felhasználó, maximum ő adhat neki értéket.
Egyébként az előbb felsorolt három környezetben melyikben végeznéd el előbb a számítást, minthogy beolvasnád a bemenetet?
Nem jó a sorok sorrendje.
Meg ugye hiányzik a beolvasás. A Console.ReadLine(). metódussal tudsz egy sort beolvasni (stringbe), utána az int.TryParse-szal számot csinálni belőle.
Na ma reggel jó fej leszek és megírom:
int fahr;
Console.WriteLine("Kérem adja meg az átváltandó hőmérsékletet Fahrenheitben!");
var s = Console.ReadLine();
if (int.TryParse(s, out fahr))
{
int cels = ((fahr - 32)/9*5);
Console.WriteLine("Celsius: {0}", cels);
}
else
{
Console.WriteLine("Hibás szám!");
}Apropó frissítés és Windows Phone: iskolai gépen ne frissíts semmit, viszont otthon simán felrakhatod a WP8 SDK-t, vagy ha még előtte kísérleteznél, a VS 2012 Express for C#-ot. Mondjuk a WP-ig még nagyon sokat kell tanulnod, ha most konzol programot írkálsz. Például Silverlightot.
-
Karma
félisten
válasz
trisztan94 #4274 üzenetére
Hja, éreztem. Messziről bűzlik, hogy az oktatás a strukturális programozás szintjét alulról súroló valamiben kimerül... A C#-ot is csak gondolom azért vették elő, mert a Turbo Pascal már nem fut Windows 7-en.
Sok mindent ne alapozz erre az órára.
Meg ne is rettentsen el, a C# szerintem az egyik legszebb nyelv -
Karma
félisten
válasz
trisztan94 #4272 üzenetére
A struct tagváltozóinak alapból private a hozzáférése, ezért nem lehet hozzájuk férni. Az objektumok alapfogalmait azért elmondták órán? Mert azért elég nagy hiányosságok vannak... Érzésre az oktató hibája.
A legegyszerűbb hack hogyha a "public" kulcsszót odaírod mindhárom tagváltozó elé.
Struktúra és struktogramm nem ugyanaz egyébként.
Globális változók se sűrűn vannak C#-ban.
-
Karma
félisten
Ah, korrigálom magamat: az előbb linkelt a Gang of Four könyv (alapmű), a másik amire gondoltam egy másik sorozat: Pattern-Oriented Software Architecture. Ebből olvastam a második kötetet, de a többi is biztosan jó.
-
Karma
félisten
válasz
leximester #4226 üzenetére
Ja egyébként ha az egeret a változó fölé viszed, akkor kiírja a valódi típust a Studio is
-
Karma
félisten
válasz
leximester #4224 üzenetére
Ez nem egy "var típusú" változó, hanem egy AudioVideoCaptureDevice típusú. A var miatt nem kell külön kiírnod a blokkon belül, a fordító kitalálja - más szóval csak egy kis könnyítés neked.
Ha át akarod adni, el akarod tenni tagváltozóba vagy bármi hasonló, a valódi típusát kell használnod, amit fenn kiemeltem.
-
Karma
félisten
válasz
Bobrooney #4221 üzenetére
Nem tudom mit építesz, de három tippem van:
1) SQLite, ha csak lokálisan akarsz valami nagyon egyszerűt;
2) SQL Express, ha valami nagyobb kell, sokat gondolkodni meg nem akarsz az ügyön (VS-sel feltelepül és minden flottul megy vele konfiguráció nélkül),
vagy 3) SQL Azure, ha egyébként webalkalmazást fejlesztesz és hostolni is akarod valahol - és ez a valahol az Azure. -
Karma
félisten
A StringComparison egy enum, amit a String StartsWith metódusa egyik változatának tudsz megadni paraméterként.
-
Karma
félisten
Filózok folyamatosan a problémán, igazából ha mondjuk ebből a példából indultál ki, akkor az előzőleg említett állításom nem áll meg - egy elrejtett Form az alapja az egésznek, a rendes kontextus az Application.Runnak köszönhetően felépül.
A linkem a konzol alkalmazásokra vonatkozott csak, ez meg nem az.
Viszont felmerült bennem egy kérdés a kódod azon részére, amit nem mutattál eddig: az mWorker változót hogyan deklarálod és mikor hozod létre a BackgroundWorker objektumot? Nem maradt ki véletlenül a new?
Ettől függetlenül a ThreadPool jó dolog
-
Karma
félisten
Amúgy az előző konstrukcióban van valami oka annak, hogy innen próbálod indítani a BackgroundWorkert, nem pedig a SysTrayAppon belül? Drkbl jó úton jár, a BackgroundWorker működéséhez kell a megfelelő kontextus, ami ebben a formában nem áll elő.
A linkelt SO kérdésben is említik az egyszerű megoldást: használj pl. ThreadPoolt. Vagy a C# 5.0-öt használsz, ott az async/await is. (Microsoft.Bcl.Async csomaggal meg régi .NET-en is megy.)
-
Karma
félisten
válasz
Neil Watts #3916 üzenetére
"Megnéztem a kódodat most, s vannak benne érdekességek. tömböt forral az életben nem fogsz tudni feltölteni. While, s int elemszam bevezetése ajánlott véleményem szerint. "
Ezt kifejthetnéd kicsit, mert innnen nézve eléggé a valóságtól elrugaszkodott kijelentés és tanács.
-
Karma
félisten
A ciklusodat 0-tól 49-ig járatod (ezek a tömb érvényes indexei is egyébként), de belül t[i+1]-et írtál, ami az utolsó lépésben 50 -> robban a túlindexelés. A javításhoz a ciklust ne nullától, hanem 1-től indítsd ugyanígy, és tüntesd el a +1-et; ahogy Athlon64+ is megírta.
Másrészt t[0]-t minden lépésben beállítod, teljesen felesleges (bár nem okoz hibát). Harmadrészt ne legyen büdös a debuggert használni, azonnal látszik az Exception eldobódásánál, hogy milyen i érték mellett történt a robbanás.
-
Karma
félisten
-
Karma
félisten
-
Karma
félisten
válasz
tototos #3883 üzenetére
Nem túloztad el felénk a specifikálást
Például feltételezhető, hogy a sorazonosítóban és a harmadik mezőben (Steering_msg_1:)-es mezőben nem lehet szóköz, és a második mező (256) biztosan szám? Mert ha igen, elég könnyű rá regexet írni, és capture groupokkal kirángatni a megfelelő értékeket. Ha viszont nem lehet feltételezni a szóköztelenséget, akkor nagyobb baj van.
Így pl. fel lehet darabolni, ha igaz a feltételezés: (.+?) ([0-9]+) (.+?): (.*)
C#-ban konkrétan (nem teszteltem!) ilyesmi:
var regex = new Regex(@"(.+?) ([0-9]+) (.+?): (.*)");
var match = regex.Match(input);
if (match.Success)
{
var lineId = match.Groups[1].Value; // fontos! 1-től kezdődnek a groupok!
var something = match.Groups[2].Value;
var something2 = match.Groups[3].Value;
var message = match.Groups[4].Value;
} -
Karma
félisten
A public static int mezőt bárhonnan el tudod érni a Form példány nélkül, hiszen azért static. Ezzel nagyon gyorsan és igénytelenül át lehet hidalni a problémát. Rendes MVC felbontás nélkül kár erőlködni szerintem szépítési kísérletekkel...
A formos kérdésre: mi a kénkőért tennél ilyet? Azaz miért kéne a Formot bárkinek ismernie?
-
Karma
félisten
válasz
forbence #3865 üzenetére
Hát ez nem volt valami konkrét kérdés, de a string.ToCharArray metódus char[]-t csinál neked.
Ha pontosítasz, gondolkodom is rajta egy kicsit.
-
Karma
félisten
De nem feltétlen az egyetlen
-
Karma
félisten
válasz
martonx #3771 üzenetére
Ja értem. Plaintextben jönnek a mezőnév-értékpárok, amiknek a lehetséges kulcsait sehol se akarod felsorolni újra. Hát érdekes kihívás ezt típusérzékenyre megcsinálni.
Gyanítom a Dynamic LINQ is reflexióra épül, talán nem lene lassabb puszta kézzel végigmenni a listán, lekérni reflexióval a property típusát, és a megfelelő Where feltételt rátűzni a selectre.
-
Karma
félisten
Akkor ha canvas tömböd van, már régen rossz. Használj ListBoxot vagy ItemsControlt, és ezeknek az ItemsSource és ItemTemplate attribútumait a Canvasok legyártásához. A sablonban pedig sok lehetőséged van: létrehozhatsz Buttonöket (Commandot átadva nekik), vagy a Canvasnak adsz Tap eseménykezelőt, vagy Behaviorokkal is lehet játszani.
-
Karma
félisten
Akkor is elszáll, ha az excel hívásokat kikommentezed? Nekem alapjáraton fura, hogy előbb indítod el a workert, mint hogy a DoWork eseményt bekötöd. Meg egyébként ez az exception akkor gyakori, ha UI komponenseket bizgerálsz Invoke nélkül, másik szálból.
Szerk.: oké, ezesetben tárgytalan.
-
Karma
félisten
Formsszal én főleg csak barkácsolni szoktam, de ezt próbálnám meg.
-
Karma
félisten
válasz
xxSanchez #3633 üzenetére
Kicsit konkrétabban nem tudnád megírni, mi a probléma?
A példaprojekt se működött?A túl régi példákkal (mint pl. ez is) az simán lehet baj, hogy régi Windowshoz, vagy 32-bites explorerhez készültek. Majd napközben ránézek én is.
Szerk.: Áh, írja is egy kommentelő, hogy 64-biten semmi.
-
Karma
félisten
válasz
dudika10 #3591 üzenetére
A C programozás topikot erre találod.
Egyébként egyszerű a dolog, a scanf az újsor karaktert olvassa be a billentyűzetpufferből, amit az első karakter beolvasásánál benne hagytál. (Az első hívás csak a karaktert húzta be, az enter ottmaradt.)
Nagyon gyakori probléma amibe belefut mindenki, amikor kezdő.
Ezért is menj át a másik topikba, és keress rá a scanf-re.Szerk.:
Az fflush(stdin) az egyik lehető legrosszabb megoldás (jutalma: guillotin), mert a szabvány szerint illegális, és teljesen implementációfüggő.Egy karakter beolvasásához a getchar() tökéletesen elég amúgy is.
-
Karma
félisten
Akkor ideje végre leírnod, hogy mit is szeretnél pontosan. Először memóriát akartál foglalni, lett is rá megoldás, aztán bejött a MemoryFailPoint, nem volt jó, még egy foglalás, nem volt jó...
Egyébként meg hót egyszerű a MemoryFailPoint használata: csak a konstruktornak meg kell adnod, hogy mennyi memóriát szeretnél biztosítani, aztán ha végeztél, Dispose (vagy használhatsz using blokkot is). Természetesen try blokkba kell tenned, hogy az exceptiont lekezelhesd, ha nem állna rendelkezésre ekkora heapszelet.
De ez mind le van írva az MSDN-en, még csak nem is érthetetlenül.
-
Karma
félisten
válasz
MrSealRD #3533 üzenetére
A szoros csatolás az, amikor a View codebehindjában előveszed a DataContextet és elkezdesz matatni benne. Ekkor konkrét interfészhez vagy osztályhoz kötöd a Viewt. Vö. amikor bindingot használsz, csak a propertyk nevének kell egyeznie, de a csatolt objektum típusáról egyébként mást nem kell feltételezni.
Konkrét példát egy darab iPaddel felszerelve nem írnék
Szerintem elképzelhető simán.Másfajta szoros csatolás meg az, ha az üzleti logikát belekened a Viewba. Akkor meg az alkalmazásod működése függ a konkrét View típustól... De ennek elkerüléséről szól az MVVM.
-
Karma
félisten
Hát igen, null referencián nem könnyű hosszot mérni. Inicializáld a változóidat! Mondjuk String.Empty-vel a szamot, a szorzast meg nullával.
Nem feltétlen így csinálnám a while ciklust, de abba nem akarok beleszólni. Na jó, mégis: a szamra semmi szükséged kívül, elég ha a szorzas látszik a while cikluson kívül. (Amit egyébként szorzonak is hívhatnál.)
És a do while is teljesen jogos.
Convert.ToInt32() helyett meg int.TryParse()-ra szavaznék. Egy kicsit más a szintaxisa, de legalább nem tud robbanni, és nem drótozol be vele változóméretet se.
Csak nálam nem működik Chrome alatt a Monospace?
-
Karma
félisten
válasz
eziskamu #2479 üzenetére
Ez szerintem érdekes lehet.
Sajnos a Visual Studionak csak a fizetős változataival lehet a .NET Compact Frameworkkel fejleszteni, az Express nem elég hozzá az addintámogatás hiánya miatt. Valamint ahogy te is tapasztaltad, az asztali .NET nem fut mobileszközökön
Amúgy a VS fejlettebb verzióinak is van trialja.
-
Karma
félisten
Mármint milyen objektumot akarsz velem leszármaztatni?
Egyébként ezt más ember nem fogja olvasni. Mondjuk ezzel a motivációval írta meg egy csimpánz eredetileg: WPF elemekből de WinFormsos (vagy inkább Delphis) logikával, millió+1 getter/setter hívás széthányva egyetlen MainWindow.xaml.cs állományban többezer soron át. Én leültem mindezt megcsinálni szépen, hiszen bugos is volt, javítani meg lehetetlen.
Szerk.: A javítással legalább értem mire gondolsz
Mindenki: azt hiszem tényleg ez lesz a holnapi program. A View osztályba belerakom ezt a kiválasztás-logikát, aztán remélem menni fog
Az eredetiben is volt ilyen (nem csoda), csak reméltem, hogy meg tudom oldani kevesebb kóddal.
-
Karma
félisten
Egy WPF-es kérdésem lenne, amivel már egy ideje szívok... Próbáltam rákeresni, de nem voltam eredményes.
Adott két Selector-leszármazott (egy TabControl és egy ComboBox), melyek ItemsSource-a egy-egy ObservableCollection.
Azt szeretném elérni, lehetőleg codebehind nélkül (de ha nem úszom meg, beadom a derekam), hogy egy elem mindig ki legyen jelölve, azaz amikor az aktív elemet törlöm a collectionből, akkor egy másik lesz Selected, illetve ha az üres collectionhöz adok egy elemet, az is választódjon ki azonnal.
Valaki csinált már ilyet?
Ez a ComboBox:
<ComboBox ItemsSource="{Binding Scripts}" DisplayMemberPath="ScriptName" SelectedItem="{Binding CurrentScriptModel, Mode=TwoWay}"/>
Illetve a kapcsolódó collection:
private ObservableCollection<ScriptViewModel> _scripts = new ObservableCollection<ScriptViewModel>();
public ObservableCollection<ScriptViewModel> Scripts
{
get
{
return _scripts;
}
}
private ScriptViewModel _scriptModel = new ScriptViewModel { ScriptName = "XXX" };
public ScriptViewModel CurrentScriptModel { get { return _scriptModel; } set { _scriptModel = value; NotifyPropertyChanged("CurrentScriptModel"); } } -
Karma
félisten
Mivel olvasol a fájlból? A StreamReader dokumentációja szerint \r, \n és \r\n-ek esetén is leválasztja a sort. A TextReader hasonlóan viselkedik, sőt még az Environment.NewLine propertyt is figyelembe veszi - ezt is felhasználhatnád akár.
Az biztos, hogy a saját ReadLine() nem jó megoldás.
Működik, de nem kéne mindig újra feltalálni a kereket.
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Azonnali készpénzes INTEL CPU NVIDIA VGA számítógép felvásárlás személyesen / postával korrekt áron
- Telefon felvásárlás!! Samsung Galaxy A70/Samsung Galaxy A71/Samsung Galaxy A72
- BESZÁMÍTÁS! Apple MacBook Pro 16 M4 Pro 24GB RAM 512GB SSD - garanciával hibátlan működéssel
- BESZÁMÍTÁS! Microsoft XBOX Series S 512GB játékkonzol garanciával hibátlan működéssel
- AKCIÓ! Dell Precision 5820 XL Tower PC - Xeon W-2123 112GB RAM 512GB SSD 1TB RX 580 8GB Win 11
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Promenade Publishing House Kft.
Város: Budapest