Hirdetés
-
Mini-ITX méretű RTX 4070 Kínából
ph A Zephyr egyedi tervezésű VGA-ja szokatlanul rövid hűtést kapott, mely állítólag nagyon hatékony.
-
Horrorjáték lesz az A Quiet Place: The Road Ahead
gp A PC-re és konzolokra érkező alkotás valamikor idén debütál, de pontosabb részleteket nem kaptunk egyelőre.
-
Retro Kocka Kuckó 2024
lo Megint eltelt egy esztendő, ezért mögyünk retrokockulni Vásárhelyre! Gyere velünk gyereknapon!
Új hozzászólás Aktív témák
-
tototos
őstag
Egy kis programot írok, ami egy project fájlból csinál egy másikat. Az xml egy alap beállítást tartalmaz majd ebbe rakok még be elemeket és elmentem egy mappába. A C fájl pedig egy az egyben le lesz mentve egy mappába. Azért akarom a kódba rakni, hogy csak az exe-t kelljen futtatni, és ne kelljen még 2 fájlt is tárolni mellette.
-
Karma
félisten
válasz
tototos #5251 üzenetére
Ettől még ne akard kódba rakni, mert az nagyon nem oda való, és amúgy is egy undorító félindiai megoldás. A resource-oknak ellenben pont ez a lényege, hogy belefordulnak az assemblydbe.
Ha resx fájlt adsz a projekthez, akkor string konstansként éred el a tartalmakat (és a solutionben egy fájl lesz, benne a két tartalommal); de olyat is csinálhatsz, hogy a solutionben külön fájlok, a kódban meg streamként éred el.
[ Szerkesztve ]
“All nothings are not equal.”
-
thiclyoon
aktív tag
Sziasztok,
Fel vannak sorolva egy fájlban tantárgyak, valamelyik egyszer, valamelyik többször.
Hogyan kéne megoldani, hogy minden ott szereplő tantárgyat kiírassak, de csak egyszer?Úgy próbáltam, hogy kiírtam az elsőt, majd ha a következő nem egyenlő az elsővel, akkor azt tegye egy új változóba (for ciklussal), azonban így az lesz, hogy kiírja az elsőt, és az utolsót. (Feltéve, hogy az utolsó nem egyenlő az elsővel.)
Úgy is próbáltam, hogy ha az i-edik elem nem egyenlő az elsővel és a második kiírttal (tehát az utolsóval) se, akkor legyen egy harmadik változó, de így meg nem ír ki semmit.
Hogyan kell megoldani?
-
Peter Kiss
senior tag
válasz
thiclyoon #5254 üzenetére
Ez egy lehetőség, de pl. kis- és nagybetű miatt bukta, arra alkalmazhatsz más, de hasonló jellegű megoldást.
using (var sr = new StreamReader("útvonal a fájlhoz"))
{
var filter = new HashSet<string>();
while (!sr.EndOfStream)
{
var line = sr.ReadLine();
if (filter.Add(line))
{
Console.WriteLine(line);
}
}
} -
amargo
addikt
válasz
Peter Kiss #5255 üzenetére
Ha pl kis betusse konvertalod, jo lesz ez.
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
trisztan94
őstag
Áh, ez az igazi b@Ƶmeg kategória
Hát nekem ne mondd, most láttam csak a MySQL adatbázisban lévő adatokat... Lekérve a users táblát, minden plain text-ként benne, mind a 7000(!!!!!) felhasználó összes adata: felhasználó, jelszó, bankkártya adatok és még sorolhatnám.
Felvetettem nekik, hogy legyenek mán' oly kedvesek, rakjanak már fel egy RESTful API-t a szerverre, mert ez így botrányos (CSAK HTTP POST requesteket lehet küldeni és egy nagyon ótvar JSON string jön vissza), de nem, nem lehet, mert így jó droidon és iOS-en, há mé' ne lenne jó WP-n....
Szóltam nekik a plain texttel kapcsolatban, kíváncsi leszek a válaszra.
-----------------
Próbálok haladni vele, megint egy olyan kérdésem lenne, hogy jól gondolkodom-e.
Készítettem egy publikus osztályt: Database.cs
Ebben van kb. 20 constans string változó, amikben a csatlakozási adatok vannak. Mind private.Van benne egy public void Synchronize() metódus amit meghívva elindul a szinkronizáció, plusz ilyen segédmetódusok, mint pl. public bool IsLoggedIn(), stb.
Ugyanebben a Database.cs fájlban (de nem a Database osztályban) vannak a lokális adatbázis tábladefiníciói, pl.:
[Table(Name = "sample")]
public class Sample
{
[Column(Name = "id", IsPrimaryKey = true, CanBeNull = false, IsDbGenerated = false, DbType = "INT(11) NOT NULL PRIMARY")]
public int Id { get; set; }
[Column(Name = "Data", CanBeNull = false, IsDbGenerated = false, DbType = "NVarChar NOT NULL")]
public string Data{ get; set; }
}Plusz még vagy 20 ilyen. Tehát egy fájlban van 21 osztály: a Database és a maradék 20 tábladefiníció.
Ezt mind én a model mappába raktam.
Az lenne a kérdésem, hogy helyes-e ez így? Ha nem, akkor hogyan lenne az?------------------
Megint más:
SQLite vagy MSSQL legyen a lokális adatbázis? Melyik jobb erre a célra?
[ Szerkesztve ]
https://heureka-kreativ.hu
-
martonx
veterán
válasz
trisztan94 #5257 üzenetére
Csöndben jegyzem meg, szerinted egy RESTful API mit csinál? Valami csodát? Mert az is a kapott megfelelően felparaméterezett POST, GET, PUT, DELETE http hívások alapján Json-nal (xml-lel, odata-val, whatever) kommunikál a külvilággal.
És miért ne tudna már WP is pont így kommunikálni a szerver oldallal?
Én kérek elnézést!
-
Karma
félisten
válasz
martonx #5258 üzenetére
Igen, de azért mégis struktúráltabb, kontrolláltabb hozzáférést nyújtana az adatokhoz a szabad SQL futtatás helyett. Bár semmi értelme kardozni olyanokkal, akik szerint ez a megoldás rendben van.
Egyébként szerintem is megoldható WP-n simán.
trisztan94: Ennyi információ alapján egynek végülis elmegy. Bár a Synchronize-nak nem itt a helye szvsz.
[ Szerkesztve ]
“All nothings are not equal.”
-
martonx
veterán
Persze az nyilván beteg, hogy a POST paraméter egy komplett SQL query-t kell küldeni.
Csak azt jeleztem, hogy önmagában nem attól lesz jó egy megoldás, hogy egy komplett RESTful API-t kerítünk. Egy normálisan megoldott PHP /akármi fogadó a POST oldalon is teljesen jó tud lenni.
Azaz én az elvre mondtam, hogy azzal elvi szinten nincs gond. Sőt ha ezt vesszük RESTful API-t is meg lehet szarul oldani.Én kérek elnézést!
-
csiki_92
aktív tag
Sziasztok!
Olyan problémám lenne, hogy egy double értékét kéne kiírassam 3 tizedesjegy pontossággal, de nem tudom kerekíteni.
Itt kéne a kerulet értékét 3 tizedesjegy pontossággal megjelenítsem, de sehogy sem sikerül.public static void kerulet(Double sugar)
{
double kerulet = 0;
kerulet = 2 * Math.PI * sugar;
Console.WriteLine("A kör kerülete:"+ kerulet +" cm");
}Előre is köszi a segítséget!
-
trisztan94
őstag
válasz
csiki_92 #5261 üzenetére
Szia,
public static void kerulet(Double sugar)
{
double kerulet = 0;
kerulet = 2 * Math.PI * sugar;
kerulet = Math.Round((decimal)kerulet, 3);
Console.WriteLine("A kör kerülete:"+ kerulet +" cm");
}Ha nem castolod decimalra, akkor lefele kerekíti, tehát pl.:
double kerulet = 1.2759;
Math.Round((decimal)kerulet, 3); // -> értéke 1.276
Math.Round(kerulet, 3); // -> értéke 1.275Ha változókkal összefűzött stringet iratsz ki, akkor használd a string.Format()-ot:
Console.WriteLine(string.Format("A kör kerülete: {0} cm", kerulet));-----
martonx
"szerinted egy RESTful API mit csinál? Valami csodát? Mert az is a kapott megfelelően felparaméterezett POST, GET, PUT, DELETE http hívások alapján Json-nal (xml-lel, odata-val, whatever) kommunikál a külvilággal."Persze, tisztában vagyok vele, hogy mi az a REST API és, hogy mit tud/mit nem tud, nem is az a baj. Egyszerűen baromi rondának tartom azt, hogy SQL stringeket kell nekem küldözgetnem egy távoli dologhoz, mikor köze nincs hozzá. Utasítást küldeni rá, oszt' majd az API megoldja ahogyan megoldja, ne nekem kelljen figyelni a query szintaktikájára, stb. Mert itt ugye nem 1-2 query-ről beszélünk, hanem több százról és ha azok közül pár hibás, nincs nagyon fogalmam, hogy melyik, mert csak egy "Query failed" választ kapok rá, és emiatt azzal fog elmenni az idő, hogy ezt keresgéljem.
[ Szerkesztve ]
https://heureka-kreativ.hu
-
trisztan94
őstag
Úgy döntöttem, hogy SQLite-ot fogok használni lokális adatbázisként, mert mind az Android, mind az iOS verziója az appnak azt használja. Ezt a leírást követtem, név szerint a következő dolgokat használom fel: sqlite-net, sqlite-net-wp-8, SQLite for Windows Phone.
Rendesen működik is.Szeretném ellenőrizni, hogy létezik-e már egy adatbázis, ha nem, akkor csináljon újat. Ezt hogyan tudom?
Jelenleg ez a Database.Create() metódusom:
public async void Create()
{
SQLiteAsyncConnection db = new SQLiteAsyncConnection(Path.Combine(ApplicationData.Current.LocalFolder.Path, "localdatabase.db"));
await db.CreateTableAsync<Sample>().ContinueWith((results) =>
{
Debug.WriteLine("Sample table created!");
});
}Ez nem ad vissza semmilyen infót arról, hogy létezik-e az adatbázis, ha nincs, akkor létrehozza, ha van akkor nem tudom. Egyáltalán az is baj, hogy nem a solution-be hozza létre az adatbázist, hanem (ha jól értem), az app saját izolált tárhelyére, így nagyon nézegetni sem tudom VS-ból, sőt, azt gyanítom, hogy amikor újra debug módban futtatom, minden alkalommal törli az egészet ahogy van.
Tehát nekem egy egyszerű csekkolási módszer kellene, ami megmondja, hogy létezik-e már az adatbázis (+ benne a táblák), plusz valami amivel a solution explorerben is nézhető és létező dologgá tudom varázsolni. Tudtok ilyent?
[ Szerkesztve ]
https://heureka-kreativ.hu
-
martonx
veterán
válasz
trisztan94 #5262 üzenetére
ok, csak akkor az egyszerű embereknek ne olyan szavakkal vagdalkozz, hogy REST API, mert attól falnak mennek. Csak annyit mondj nekik, hogy a szerver oldalt nem ártana normálisra megcsinálni. Na persze ha ez eddig jó volt droidhoz, meg ios-hez, akkor most nem a te kedvedért fognak ezen változtatni.
Én kérek elnézést!
-
martonx
veterán
válasz
trisztan94 #5263 üzenetére
Az egyik ismert táblán futtatsz egy select top 1 * from ize-t. Ez mondjuk nem szép megoldás.
MSSQL-lel lehet csekkelni az egyes SQL elemek meglétét, nem tudom, hogy ilyen ellenőrzéseket tud-e az SQLite, a helyedben megnézném a dokumentációját.
Én kérek elnézést!
-
csiki_92
aktív tag
válasz
trisztan94 #5262 üzenetére
Hibát jelez a kerulet= Math.Round((decimal) kerulet, 3); sorra, és ezt írja: Cannot implicity convert type 'decimal' to 'double'. An explicit conversion exists (are you missing a cast?).
[ Szerkesztve ]
-
csiki_92
aktív tag
válasz
trisztan94 #5267 üzenetére
Köszi a segítséget, sikerült.
-
Karma
félisten
-
csiki_92
aktív tag
válasz
trisztan94 #5270 üzenetére
Még egy kérdésem lenne. Azt hogyan tudom megcsinálni, hogy ha a program futása közben a sugárnak nem számot írok be, hanem mondjuk betűt, akkor ne lefagyjon a program, hanem írja ki, hogy "hibás karakter" és kérje be újra? A negatív számot le tudtam kezelni, de a karaktert nem.
-
csiki_92
aktív tag
válasz
trisztan94 #5272 üzenetére
Köszi a segítséget!
-
trisztan94
őstag
A megkapott Json stringgel szeretnék elkezdeni dolgozni, erre e Json.NET lib deserializer-jét akarom felhasználni.
Ebben a formában kapom meg a stringet:
[{\"id\":\"1\",\"nev\":\"Áron\"},{\"id\":\"2\",\"nev\":\"Béla\"}]
Ezt parse-olni szeretném, erre a következőt használom:
var responseData = JsonConvert.DeserializeObject<dynamic>(jsonString);
Viszont itt nem tudom, hogy hogyan tudok hivatkozni a dolgokra. Ezt a SO kérdést nézegettem, leginkább a legfelső választ.
De mivel itt több adat van, gondolom maga a responseData is egy tömb lesz, nem? (Pontosabban egy JArray tömb), tehát az lenne a logikus, ha úgy tudnék hivatkozni az első sor nevére, hogy:
responseData[0].nev
Viszont ha ezt csinálom, dll hibával kivág.
Ez az értéke a responseData-nak:
{[ { "id": "1", "nev": "Aladár" }, { "id": "2", "nev": "Béla" }]}Tehát a kérdés az lenne, hogy hogyan tudok hivatkozni valamire? Mondjuk a 2. névre a responseData-ban.
[ Szerkesztve ]
https://heureka-kreativ.hu
-
martonx
veterán
válasz
trisztan94 #5274 üzenetére
Ez a DeserializeObject<dynamic> felejtős. Fix struktúrájú Json-t .Net-tel az alábbi módon illik parseolni:
1. létrehozol egy model-t a Json-nak. Ilyet a VS2013 már tud out of the box. Bemásolod valahova a Json-t, kijelölöd az egészt, jobb gomb, majd franc se tudja melyik menü melyik pontja, és már meg is kaptad a Json-nak megfelelő class-t.
2. Ezután használod a DeserializeObject<generáltobjektum> és örülsz.Én kérek elnézést!
-
trisztan94
őstag
válasz
martonx #5275 üzenetére
Hát én nem találtam meg azt az automatikus generálás cuccost.
Írtam egy ilyen model osztályt:
public class Nevek
{
public string id; //az id is stringként jön át
public string nev;
}És ezt csináltam:
Nevek responseData = JsonConvert.DeserializeObject<Nevek>(response.Content);
Hibaüzenet:
An exception of type 'Newtonsoft.Json.JsonSerializationException' occurred in Newtonsoft.Json.DLL but was not handled in user code
Additional information: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Click4Skill_Angol.Model.Nevek' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
Mint ahogy előbb írtam, ez a szervertől visszakapott json string:
"[{\"id\":\"1\",\"nev\":\"Aladár\"},{\"id\":\"2\",\"nev\":\"Béla\"}]"
Mit csinálok rosszul?
[ Szerkesztve ]
https://heureka-kreativ.hu
-
Karma
félisten
válasz
trisztan94 #5276 üzenetére
Típusnak inkább List<Nevek>-et adj meg, ha már listáról van szó
“All nothings are not equal.”
-
martonx
veterán
válasz
trisztan94 #5276 üzenetére
A kedvedért kipróbáltam. Nem teljesen jól írtam. Szóval a pontos process:
1. Fogod ezt a példa json-t, vágólapra teszed:
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}2. Majd fogsz egy bármilyen .cs file-t, mondjuk model.cs és Paste Special-lal beilleszted Json as Class-t választva.
3. VoliáAz ismertetett módszer egyébként XML-lel is működik.
Én kérek elnézést!
-
trisztan94
őstag
A táblalekérésekkel kapcsolatban lenne egy kérdésem még
RestSharppal történik a szerverrel a kommunikáció aszinkron módon.
Ezt úgy raktam most össze, hogy van 12 RestRequest típusú változóm amelyekben a kérés paraméterei vannak (felhasználónév, jelszó, SQL query, stb).
Így néz ki egy ilyen RestRequest:
RestRequest nevekRequest= new RestRequest(hostName, Method.POST);
nevekRequest.AddParameter("parancs", "SELECT * FROM nevek");
nevekRequest.AddParameter("user", databaseusername);
nevekRequest.AddParameter("prog_ver", prog_ver);
nevekRequest.AddParameter("databasehost", databasehost);
nevekRequest.AddParameter("databaseusername", databaseusername);
nevekRequest.AddParameter("databasepassword", databasepassword);
nevekRequest.AddParameter("databasename", databasename);
nevekRequest.AddParameter("db", db);Ebből 12 van.
Ezek után mind a 12-t lefuttatomclient.ExecuteAsync(nevekRequest, NevekCallback)
Ezt szintén 12x, minden egyes Request-re.Ezek után van megint 12 callback metódusom minden egyes request-re.
private void UsersRequestCallback(IRestResponse response, RestRequestAsyncHandle handle)
{
List<Users> responseData = JsonConvert.DeserializeObject<List<Users>>(response.Content);
Debug.WriteLine("Users-firstname: " + responseData[0].FirstName);
}1. Tisztában vagyok vele, hogy ez így valami elképesztően gány, viszont így este nincs nagyon most ötletem, hogy hogyan lehetne szépen megoldani
2. Valamikor memória túlcsordulás miatt behal a szerver a 12 egyszeri request miatt, tehát valahogyan úgy kellene csinálni, hogy amikor az 1. request készen van, akkor indítjuk a 2.-at, ha az kész a 3.-at, stb. Ezt szintén hogyan lehetne szépen megoldani?
---
Végül a DeserializeObject<>-nek azt az osztályt adtam, amiből az adatbázis táblákat építettem fel, tehát:
public class Nevek
{
[PrimaryKey, NotNull, MaxLength(11), AutoIncrement]
public int id{ get; set; }
[NotNull]
public string nev{ get; set; }
}Tehát:
List<Nevek> responseData = JsonConvert.DeserializeObject<List<Nevek>>(response.Content);Az a baj, hogy az id a JSON stringben stringként van benne és a DeserializeObject meg nem tudja átkonvertálni integerré:
Could not convert string to integer:
De még ez a legkisebb probléma, mert más tábladefiníciókban van DateTime típus is.
Tehát az lenne itt a kérdés, hogy hogyan tudom convertálni a deserializeobject értékeit úgy, hogy megfeleljenek azok a megadott típus (jelen esetben osztály) típusainak? Vagy kezeljek mindent stringként oszt' csókolom? Esetleg csináljak még 12 osztályt, amikben csak string-ként vannak ugyanezek a field-ek?
https://heureka-kreativ.hu
-
martonx
veterán
válasz
trisztan94 #5281 üzenetére
Figyi, ezt szépen nem lehet megoldani. A szervertől adat lekérésnek kellene olyannak lennie, hogy egy nagyobb json struktúrában küldje le az adatokat, ráadásul ne kelljen 12 queryt-t futtatni ehhez. Adj ide mindent, és kész. Maximum pár szűrő feltételt küldesz. Ez így végtelenül szarul lett megoldva.
Onnan kezdve, hogy a szerver oldal nem így működik, te már csak szarból tudsz várat építeni, és az sehogy sem lesz szép, és jó.Én kérek elnézést!
-
trisztan94
őstag
ReSharper-t használ valaki? Tényleg olyan jó, mint ahogy a videóban mutatják, ennyire megkönnyíti a munkát?
Céges gépen vagyok most, ha tényleg szuper akkor beszélnem kell főnökkel, hogy vegyünk licencet + rendszergazdával, hogy rakja fel, szóval mielőtt ebbe a procedúrába belekezdenék, érdekelne a véleményetek
----
(#5282) martonxHát mondjuk ja, szarból csak szar várat lehet építeni.
Viszont azzal mindenképp kell kezdeni valamit, hogy ne egyszerre küldje el a 12 request-et, mert 10-ből 2-3* mindig előjön a memória hiba.
https://heureka-kreativ.hu
-
ferensz
senior tag
válasz
trisztan94 #5283 üzenetére
Én imádom a ReSharpert, szerintem a funkciói felét nem használom ki, de így is sokkal gyorsabban tudok vele haladni, mint nélküle.
"jah, mert a többi nyelvben a for nem for, hanem kapswagenschmetterling"
-
trisztan94
őstag
válasz
ferensz #5284 üzenetére
Na szuper, én is olvasgatok más fórumokat, ott is nagyon ajánlják
---
mp3 fájlokat szeretnék lejátszani, erre két eset van:
1. Felhasználó letöltötte korábban az egész pakkot és lokális fájlokból
2. on-the-go stream-eljükItt szintén nincs lehetőség válogatni, csak mp3 fájlok vannak.
Ezt az MSDN cikket találtam erről. Ha jók az információim, elvileg csak BackgroundAudio-val lehet lejátszani mp3 fájlokat. Viszont ez a cikk arról szól, hogy úgy szólaljon meg a "zene", mintha a zenelejátszó lenne, ergo megállítja az aktuális zenét. Ezek iylen kis hangeffektek lennének csak, tehát ez nagyon nem kell.
Lehet valahogy .mp3 hangeffektek lejátszani egyszerűen úgy, hogy mind lokálból, mind online stream-ről menjen?
https://heureka-kreativ.hu
-
Karma
félisten
válasz
trisztan94 #5285 üzenetére
MediaElementtel meg lehet csinálni mindkét variációt.
“All nothings are not equal.”
-
haromegesz14
aktív tag
Hello!
Ismerkedek még csak a nyelvel, konzolos alkalmazások színterén, segítségeteket szeretném kérni!
Van egy string tömböm, aminek az elemeit metódussal úgy szeretnék kiíratni, hogy minden 5. elem után új sorba írja az elemeket. Hogyan tudom vizsgálni azt, hogy éppen az 5.? Maradékos osztással próbáltam, de sajnos nem jártam sikerrel.10 féle ember létezik, aki ismeri a bináris számrendszert, és aki nem!
-
Alexios
veterán
válasz
haromegesz14 #5287 üzenetére
pl. ciklussal mész végig rajta. for-nál ugye eleve ott van a ciklusváltozó amit nézhetsz, while-nál illetve foreachnél pedig egy saját változót növelsz mindig egyel.
[ Szerkesztve ]
-
haromegesz14
aktív tag
válasz
Alexios #5288 üzenetére
Elnézést rosszul fogalmaztam, kiíratás megy for ciklussal, de azon belül szeretnék még egy eljárást használni, ami azt nézi, hogy a ciklus számláló éppen 5. elemnél tart-e.
Szerk.: Nem szóltam, még sem jó ...
[ Szerkesztve ]
10 féle ember létezik, aki ismeri a bináris számrendszert, és aki nem!
-
Alexios
veterán
válasz
haromegesz14 #5290 üzenetére
és mi nem megy akkor pontosan?
Esetleg ha egy kódrészletet beraknál könnyebben tudnánk segíteni
[ Szerkesztve ]
-
fatal`
titán
válasz
haromegesz14 #5290 üzenetére
if (ciklusváltozó % 5 == 0) {
System.WriteLine();
}
//itt írod ki a maradékot[ Szerkesztve ]
-
haromegesz14
aktív tag
válasz
Alexios #5291 üzenetére
Igaz, jövök is a kódrészlettel. Tehát azt szeretném ezzel elérni, hogy a for ciklus változójáról ugye amit folyamatosan növel, ha éppen 5-el osztható, akkor legyen ott egy sortörés. A string tömbömet sikerült feltöltenem, csak ötössével tagolva szeretném sorokba rendezni az X elemét. Metódussal viszont csak idáig jutottam:
static bool otodikE(string[] A)
{
bool otodik = false;
for (int i = 0; i < A.Length; i++)
{
if (i%5=4) otodik true;
}
return otodik;10 féle ember létezik, aki ismeri a bináris számrendszert, és aki nem!
-
haromegesz14
aktív tag
Lehet Én gondolkodok rosszul, de ha 0-tól megy az indexelés, és én a ciklusváltozót osztogatnám 5-el, így nem jó ha nullát kapok vissza maradéknak. Első 5. elem a 4-es indexű, tehát maradék 4, és ezt követve ugye a többi X elemre is jó lenne.
Megoldódott!
static bool otodike(int szam)
{
bool otodik = false;
if (szam%5==4) otodik=true;
return otodik;
}szam paraméterként pedig megkapja a ciklusváltozót, és így már jó is. Köszönöm szépen a segítséget!
[ Szerkesztve ]
10 féle ember létezik, aki ismeri a bináris számrendszert, és aki nem!
-
fatal`
titán
válasz
haromegesz14 #5294 üzenetére
Igen, épp ezért emelsz sort azelőtt, hogy kiírod az ötös indexű elemet. És így pontosan a négyes indexű után fog emelni (ami az ötödik).
-
trisztan94
őstag
Egy olyan dolgot kell csinálni, hogy ha történik egy esemény, akkor el kell tüntetni valamit, megjeleníteni valamit másfél másodpercig, ha letelt a másfél másodperc azt amit most megjelenítettünk eltüntetni majd meg kell jeleníteni megint valamit 3 másodpercig, majd ha az letelt, azt is eltüntetni és az eredetileg látszó dolgot visszaállítani láthatóvá...
Na most én ezt így oldottam meg:
emptyLetterHole.Visibility = System.Windows.Visibility.Collapsed;
filledLetterHole.Visibility = System.Windows.Visibility.Visible;
draggedButton.Visibility = System.Windows.Visibility.Collapsed;
timer.Interval = TimeSpan.FromMilliseconds(1500);
timer.Tick += (arg1, arg2) =>
{
filledLetterHole.Visibility = System.Windows.Visibility.Collapsed;
goodLetterHole.Visibility = System.Windows.Visibility.Visible;
timer2.Interval = TimeSpan.FromMilliseconds(3000);
timer.Tick += (arg, arg0) =>
{
goodLetterHole.Visibility = System.Windows.Visibility.Collapsed;
emptyLetterHole.Visibility = System.Windows.Visibility.Visible;
};
timer2.Start();
};
timer.Start();Ez így nagyon csúnya? Lehetne szebben?
------
+1Van egy button objektumom, annak a gyermeke egy TextBlock:
<Button
x:Name="myButton">
<Button.Background>
<ImageBrush ImageSource="/Assets/Main/SquareBackground@2x.png" />
</Button.Background>
<TextBlock
x:Name="myButtonText"/></button>Erre a gombra rá van kötve egy Manipulation eseménysorozatra (drag and drop - started, delta és completed), ott így hivatkozok a manipulált gombra:
private void Drag_ManipulationStarted(object sender, System.Windows.Input.ManipulationStartedEventArgs e)
{
draggedButton = (Button)sender;
}Hogyan tudom a draggedButton-ban lévő TextBlock Text értékét megváltoztatni?
[ Szerkesztve ]
https://heureka-kreativ.hu
-
amargo
addikt
válasz
trisztan94 #5281 üzenetére
Task eseteben van olyan, hogy continuewith: http://msdn.microsoft.com/en-us/library/dd537612(v=vs.110).aspx
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
Alexios
veterán
válasz
trisztan94 #5296 üzenetére
a button content vagy child/ren elemei közt(hirtelen nem emlékszem melyik van neki) ott lesz a textblock.
[ Szerkesztve ]
-
Karma
félisten
válasz
trisztan94 #5296 üzenetére
Kib... ronda.
Valahogy így nézne ki C# 5-ben tisztábban:
public async void Magic() {
emptyLetterHole.Visibility = Visibility.Collapsed;
filledLetterHole.Visibility = Visibility.Visible;
draggedButton.Visibility = Visibility.Collapsed;
await Task.Delay(1500);
filledLetterHole.Visibility = Visibility.Collapsed;
goodLetterHole.Visibility = Visibility.Visible;
await Task.Delay(3000);
goodLetterHole.Visibility = Visibility.Collapsed;
emptyLetterHole.Visibility = Visibility.Visible;
}---
A TextBlocknak meg adtál nevet (illett volna nagybetűvel kezdeni), azon a néven létrejött egy property a page-en. Ott el tudod érni (vagy ha nem használod, vedd ki az x
ame-et!).
Másrészt a gomb Contentje tényleg a TextBlock lesz.
Harmadrészt meg az egész igen büdös, nem kéne minden logikát a Page-be írni...
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
A natúr ContinueWith-tel az a baj, hogy ha nem jól paraméterezi az ember – márpedig egyáltalán nem triviális –, akkor a folytatásként meghívott Task háttérszálon fog futni, és nem jön vissza a hívó (tip. UI) szálra. Ilyen UI piszkálásoknál ez elég kritikus.
Referenciaként, a szükséges paraméter a kontextus:
Task task2= task.ContinueWith(() =>
{
this.TextBlock1.Text = "Complete";
}, TaskScheduler.FromCurrentSynchronizationContext());Ennél kicsit egyszerűbb az async/await kulcsszavakat használni
“All nothings are not equal.”
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!