- Bemutatkozott a Poco X7 és X7 Pro
- Samsung Galaxy A54 - türelemjáték
- Android alkalmazások - szoftver kibeszélő topik
- Xiaomi 15 Ultra - kamera, telefon
- Milyen okostelefont vegyek?
- Brutál akkuval érkeztek az Ulefone X16 modellek
- Samsung Galaxy A56 - megbízható középszerűség
- Samsung Galaxy S23 Ultra - non plus ultra
- Azonnali mobilos kérdések órája
- Hivatalosan is bemutatta a Google a Pixel 6a-t
Új hozzászólás Aktív témák
-
Froclee
őstag
sziasztok. gyakorlásképp szeretnék egy egyszerű picike háttérben futó programot írni. annyi a lényege, hogy a Cod-ot megnyitom akkor a utorrent záródjon be, ha pedig bezárom, akkor nyíljon ki. na most egyik problémám a process monitoring, ami gőzöm sincs hogy nézhet ki. ezért úgy gondoltam, hogy időzítéssel fogom megoldani. pl 10 másodpercenként megnézi, hogy fut-e a cod2, ha nem akkor mehet a utorrent. ha fut, akkor kill. ezt majd még később fogom megcsinálni (illetve a minize to taskbar-t is), mert egyelőre gombnyomásra sem működik teljesen. íme:
private void button1_Click(object sender, EventArgs e)
{
foreach (Process kalofdutyi in Process.GetProcessesByName("CoD2MP_s"))
{
if (kalofdutyi.Responding)
{
textBox2.Text = "CoD2 fut";
foreach (Process jutorrent in Process.GetProcessesByName("utorrent"))
{
jutorrent.Kill();
textBox1.Text = "uTorrent kilőve";
textBox1.BackColor = Color.GreenYellow;
}
}
if (!kalofdutyi.Responding)
{
textBox2.Text = "CoD nem fut";
Process.Start("E:\\Program Files (x86)\\uTorrent\\uTorrent.exe");
textBox1.Text = "uTorrent fut";
textBox1.BackColor = Color.White;
}
}az első ág működik, ha lenyomom a gombot és fut a cod, kilövi, de a második ág istenért se akar jó lenni. sejtésem szerint azért, mert a "not responding" a futó, de kifagyott alkalmazásokra utal. hogyan tudnám ellenőrizni másképpen, hogy fut az adott alkalmazás? erre nem jövök rá.
illetve láttam msdn-en egy HasExited property-t, de azt nem igazán tudtam működésre bírni.
köszi -
#34322688
törölt tag
Hali.
Köszi a választ, nem régóta foglalkozom a programozással, ezért vannak ilyen szarvashibáim, mint a nagy E-s megoldás. Más jellegű ugymond szakmához kell egy kis alapszintet konyítani a c, c# stb nyelvből alapszinten. Ha privin tudnál ennek a javításában segíteni, azt megköszönném. Legalább átudnám nézni, mit miért hogyan van javítva.
Előre is köszönöm ha lesz időd, módod segíteni. -
Karma
félisten
válasz
#34322688 #6091 üzenetére
Tényleg nincs olyan változód, hogy eletkor. Mindenhol máshogy egy nagy "E"-betűvel jelölted (ami mellesleg nagyon ocsmány gyakorlat, inkább legyen mindenhol "eletkor", vagy "age"). Jelöld egységesen, és jó lesz.
Valamint ha legközelebb kódot illesztesz be, használd a Programkód gombot!
-
válasz
sztanozs #6096 üzenetére
Nem az első volt helyből talán az 5. De pont az kellett
Jjjja, meglátom, ennek még nem jártam utána (illetve jártam, csak nem pont ez volt a gond, és ez okozhat eltéréseket).
Van BringToFront, azt tudom. Csak az feldobja az ablakot. De az jó nekem, ha feljön a Form1, elkapni az eseményt, és fel a Form2. Ha hátramegy, akkor hátradobni a Form2-t is. Ha a Form2 jön fel, akkor rántsa fel a Form1-et is.
Csak nem tudom, ez működne-e. -
sztanozs
veterán
Egyáltalán nem bántásként írtam, csak az összes találat az első oldalon relevánsnak tűnt - így nem volt kedvem külön linkelgetni
Topmostnál pont az a probléma, hogy a többi form nem takarhatja el... UI kezelő zorderjével kellene valacolni, de asszem ez már meghaladja a google-fu-mat
-
válasz
sztanozs #6094 üzenetére
Basszus.
Én általában előbb gőglizok, aztán kérdezek
De ebben a keresésben volt egy olyan amit még nem láttam, és ott van, TransparencyKey.Köszi
Még azon filózok, a 2 formos progit hogy lehet úgy megoldani, hogy a 2 form bármelyikét előtérbe hozva előtérbe jöjjön a másik is - elég ehhez az előttérbe hozás eseménykezelőire ráülni?
Illetve hogy az egyik formomnak a másik fölött kell lennie, de más programok eltakarhassák, erre nem jó a TopMost... De akkor mi? :S
-
Hello!
Van valami értelmes módszer arra, hogy egy form háttere átlátszóság legyen? Nem a teljes formot kell átlátszósítani, csak a háttérszínét. Sajnos ha a teljes formot átlátszósítom, akkor a rajta levő elemek is átlátszóak lesznek, azaz pl. a fekete betűkből szürke :S Ha pedig form.BackColor transparent, akkor kiakad a progi induláskor
-
#34322688
törölt tag
válasz
Alexios #6090 üzenetére
Itt van az egész forráskód:
using System ;
using System . C o l l e c t i o n s . Gene ric ;
using System . Linq ;
using System . Text ;namespace Co n sol eA p pli ca tio n1
{ c l a s s Program {
s t a t i c void Main ( s tr ing [ ] a rg s )
{Con sole . Write
( "Kérem␣ ad ja ␣meg␣ az ␣ é l e t k o r á t : ␣" ) ;
int E =
int . Pa rse ( Con sole . ReadLine ( ) ) ;
int a=0;
i f (E >= 0 && e l e t k o r < 7 ) a=1;
i f (E >= 7 && e l e t k o r < 22 ) a = 2 ;
i f (E >= 19 && e l e t k o r < 66 ) a = 3 ;
i f (E > 65 ) a = 4 ;
switch (a )
{
case 1:
Con sole . WriteLine ( "Gyermek . " ) ;
break ;
case 2:
Con sole . WriteLine ( " I s k o l á s . " ) ;
break ;
case 3:
Con sole . WriteLine ( " F el nő t t . " ) ;
break ;
case 4:
Con sole . WriteLine ( " Nyugdí ja s . " ) ;
break ;
de fau lt :
Con sole . WriteLine
(" Rossz ␣ é r t é k e t ␣ a do t t ␣meg . " ) ;
break ;
}
Con sole . ReadLine ( ) ;
}
}
}Valami miatt nem működik.
-
#34322688
törölt tag
Sziasztok.
Nem tudok rájönni, miért ír hibát a életkornál?
Console.Write
("Kérem adja meg az életkorát:");
int E =
int.Parse(Console.ReadLine());
int a=0;
if (E >= 0 && eletkor < 7) a = 1; -
zuzu000
őstag
Igen, az a baj vele, hogy nem elég egyszerre két szóra nézni, hanem a T szöveg összesére kell egyszerre. Ha két szavanként nézzük, akkor közelítő megoldást tudunk kapni, de nem az lesz a legrövidebb. De arra se tudtam megírni a kódot. Az is baj, hogy nem egyértelmű.
pl: x = ac y = ab
most akkor melyik lesz a közös legrövidebb szó, melynek x és y is részsorozata? abc, vagy acb? -
Dinter
addikt
Ha kérek egy számot, viszont nem ad meg semmit, akkor azt hogy csinálom meg, hogy újra kérje? Erre gondoltam, de ez nem jó.
int szam = int.Parse(Console.ReadLine());
if (szam == null)Meg amikor az IntelliSense-nél elkezdek valamit írni, akkor kijelöli a sárga kerettel, de nem írja be magától, azt hogy lehet visszakapcsolni?
-
zuzu000
őstag
válasz
Jester01 #6080 üzenetére
Igaz, igaz, ott a pont! Így már megy, köszi
Szerk.: ez még mindig a beadandó feladatomhoz kell, és tegnap utánaolvasva kiderült, hogy a tanár nem gondolta át egészen. A feladat az, hogy adott egy T szöveg. Keressünk meg azt a legrövidebb X szót, melyre igaz, hogy T minden szava részsorozata X-nek. Részsorozat az, hogyha a karaktereinek törlésével előállítható, a sorrendet figyelembe véve.
Pl: A = "abba" B = "aa", akkor B részsorozata A-nak.
Ahogy néztem ez lenne a Shortest Common Supersequence, amire jelenleg nincs olyan kód (n szavú szövegre), mely ésszerű időn belül lefutna. Ti mit tudtok erről? -
Peter Kiss
őstag
válasz
zuzu000 #6077 üzenetére
Ez jó eredményt ad (vagyis azt csinálja, amit akarsz)?
static Dictionary<char, int> MibőlMennyi(IEnumerable<string> szavak, ICollection<char> karakterek)
{
return szavak.SelectMany(x => x.ToCharArray())
.Where(karakterek.Contains)
.ToLookup(x => x)
.ToDictionary(x => x.Key, x => x.Count());
}Látom, nem. Legközelebb átgondoltabban kérdezzünk.
A metódus neve eleve hibás. -
Jester01
veterán
válasz
zuzu000 #6079 üzenetére
A "maximum" szó sehol nem szerepelt ám a hozzászólásodban, a gondolatolvasásért pedig külön díjat számítunk fel
Mindenesetre ha a count nagyobb lesz mint az eddigi maximum akkor te simán eggyel növeled, nem pedig beállítod az új értékre a maximumot.
mimennyi[i2] = Math.Max(mimennyi[i2], szavak[i].Count(x => x == karakterek[i2]));
-
zuzu000
őstag
válasz
Jester01 #6078 üzenetére
De ez 3-at adna vissza b-re, nem? Azt akartam, hogy maximum hányszor fordul elő, tehát ha 'a' már volt az első szóban, és a másodikban is csak egyszer van, akkor ne növelje az értéket. Ha 'b' egyszer van az első szóban és 2x a másodikban, akkor 2 legyen a mimennyi megfelelő eleme. Vagyis csak akkor növelje a mimennyi[i2]-t, ha többet talál a következő szóban, mint amennyi már eddig van.
-
zuzu000
őstag
static int[] MibőlMennyi(string[] szavak, char[] karakterek)
{
int[] mimennyi = new int[karakterek.Length];
for (int i = 0; i < szavak.Length; i++)
{
for (int i2 = 0; i2 < karakterek.Length; i2++)
{
if ((szavak[i].Count(x => x == karakterek[i2]) > mimennyi[i2]))
mimennyi[i2]++;
}
}
return mimennyi;
}szavak[0] = "abcd"
szavak[1] = "abb"
karakterek = a,b,c,d
Meg szeretném számolni, hogy miből hány darab van, és egy int[] tömbbe betenni a mennyiségeket. De valamiért a mimennyi[] így néz ki : 1,1,1,1,0,0,0,.. stb.
Tehát mintha minden karakterből csak egyet talált volna, ami szavak[0]-ra jó is, de b-ből kettő van szavak[1]-ben. -
Karma
félisten
A változók fogalmának fuss neki még egyszer. Futásidőben ez nem fog így működni - Jester01-nél a pont, hogy listára vagy dictionaryre lesz szükséged. A kettő közötti választás feladatfüggő.
Kiegészíteném azzal, hogy a string[]-ökkel való zsonglőrködés helyett sokkal jobban jársz, ha csinálsz egy osztályt a felhasználóknak, és minden későbbi lépésnél ezt használod alapként. A stringfétis, ahogy egy néhai kollégám hívta, veszélyes gyakorlat. Inkább ne hagyd magadban kialakulni.
Szóval a következő lépéseket javaslom egy nagyon naiv megoldáshoz(*):
1) Csinálj egy User osztályt négy adattaggal.
2) Írj egy olyan metódust valahova, ami egy beolvasott sorból User példányt csinál (ezen belülre rakhatod a Split hívást és az adattagok feltöltését).
3) Írj egy olyan metódust, ami paraméterként kap egy StreamReadert, while ciklusban (amíg van mit olvasni), a ReadLine metódussal felolvas egy sort, az előzőleg megírt metódussal Usert gyárt belőle, és berakja egy List<User>-be. A végén visszaadja ezt a listát.
4) Ezt a metódust meghívod a fájllal, és máris előállt minden felhasználó adata.(*): Nem tudom, hogy folytatódik a feladat. Ha csak a belépéshez kell a fájl tartalma, akkor jobban megérheti egy olyan konstrukció, ami nem nyalja fel memóriába a listát egyszerre, hanem mindig csak az aktuális, egy sornyi Usert ellenőrzi, és ha illeszkedik a név/jelszó párra, visszaadja.
-
Dinter
addikt
válasz
Alexios #6070 üzenetére
Azt hogy tudom megcsinálni, hogy ezt berakom egy for ciklusba, és akkor legenerálja a 6 usernek jelen esetben:
string[] user+i=adatok[I].Split(':')
Azt hogy tudom elérni, hogy olyan nevű string tömböt hozzon létre, amiben benne van a 'user' és még hozzáfűzi az 'i' jelenlegi értékét?
-
Dinter
addikt
Üdv!
Egy versenyfeladatot kezdtem el gyakorlásképp. Egy loginrendszer az első része. Egy szövegfájlban vannak elmentve az adatok, és ha nem stimmel, akkor nem enged belépni, aztán pedig a beosztástól függően különböző felületet ad ki, aztán még vannak benne plusz funkciók, de egyenlőre csak a bejelentkezésnél tartok.
1. Erre console app vagy winform app az alkalmasabb?
2. A loginnál addig jutottam, hogy beolvasom az adatokat egy adatok string[]-be. A txt-ben a fájlok ilyen formátumban vannak:azonosító:felh.:jelszó:vezető-e
1:id:pw:1Na most ezeket hogy, mivel kéne különszednem?
-
Dj Sügi
őstag
Sziasztok!
Lenne egy olyan kérdésem, hogy megvalósítható ez az ötlet: Ha ki van jelölve a DataGridView-ban egy sor, akkor egy PictureBox-ban jelenítsen meg egy képet a program, ha egy másik sor van kijelölve akkor egy másik képet. A képek a program mappájában lennének tárolva. Alapértelmezettnek mindig az első sor kellene hogy kijelölve legyen a DataGridView-ban és akkor a PictureBox-ban a program betöltésekor rögtön az ehhez tartozó képet jelenítené meg.
Lövésem sincs hogy kellene hozzákezdeni, nagyon bonyolult lenne megcsinálni? Tudnátok segítséget adni a kezdéshez, vagy linket ha már valaki próbálkozott ilyennel?
Kösz!
-
zuzu000
őstag
Bár tudnám, miről beszéltek
Megint kéne egy kis segítség, egyszerűen nem tudok rájönni. Csak rávezetés kéne, mivel nekem kéne megírnom. A lényeg, hogy tegyük fel, van két szó. Az egyik szó részsorozata a másiknak, ha a másik karaktereinek törlésével előállítható. Pl: x = aa , y = abba, ilyenkor x részsorozata y-nak. Az a feladat, hogy van egy szöveg és elő kell állítani a lehető legrövidebb szót, hogy a szöveg összes szava részsorozata legyen annak a szónak.
pl a szövegben ez van: "aba abba aab", ilyenkor a legrövidebb szó, melynek minden szó részsorozata:
aabba (ha nem nézem félre).
Erre írtam a metódust, ami kigyűjti egy char tömbbe azokat a betűket, amik nincsenek benne, és a main-ben pedig a megfelelő helyre beillesztem.
static char[] MikHianyoznak(string szo, string x)
{
char[] hianyzik = new char[szo.Length];
for (int i = 0; i < szo.Length; i++)
{
char s = szo[i];
if (x.IndexOf(s) == -1)
hianyzik[i] = s;
else
x = x.Substring(x.IndexOf(s)+1);
}
return hianyzik;
}Így néz ki. A hiba ebben a példában az aab-nél jön elő. Az első a-t megtalálja, a másodikat is, de az utána lévő b-t már nem, mivel az x ilyenkor már üres a substring miatt.
Lehetőleg ezt szeretném módosítani valahogy. Vagy túl egyszerűen gondolkozom és a megoldás ennél sokkal bonyolultabb? -
válasz
zuzu000 #6059 üzenetére
A \0 meg érdekes, mert kipróbáltam.
string y = "abba";
y = y.Insert(1, '\0'.ToString());
Console.WriteLine(y);
"a bba"Keversz ket dolgot: a karaktert es azt, hogy a konzol hogy jeleniti meg. A \0 karakter NEM szokoz, de a konzol nem tudja megjeleniteni, ezert rak egy szokozt a helyere. Ez viszont egy implementacios kerdes.
-
zuzu000
őstag
Huh, köszi, bár ilyet még nem tanultunk, meg nem is nagyon értem, mi történik benne, szóval nem tenném bele. (beadandó, és lehet, hogy belekérdeznek)
For-ral hogy gondoltad? while-lal próbáltam, de valamiért nem akart működni.
int hely = -1;
int temp =0;
while (hely != -1)
{
if (array [temp] != '\0')
hely = temp;
temp++;
}
De valamiért bele se akart menni a ciklusba, nem értem, mi baja.A \0 meg érdekes, mert kipróbáltam.
string y = "abba";
y = y.Insert(1, '\0'.ToString());
Console.WriteLine(y);
"a bba" -
Karma
félisten
válasz
zuzu000 #6056 üzenetére
"Char tömbben hogy keresem meg az első nem \0 elem indexét?
Tehát ami valamilyen karaktert jelöl, nem üres."Legegyszerűbben egy for ciklussal.
Ha általánosabban meg akarod oldani, akkor célszerű írni egy extension methodot a feladathoz. Álljon itt egy példa StackOverflowról:
public static class EnumerableExtension
{
public static int FirstIndexMatch<TItem>(this IEnumerable<TItem> items, Func<TItem,bool> matchCondition)
{
var index = 0;
foreach (var item in items)
{
if(matchCondition.Invoke(item))
{
return index;
}
index++;
}
return -1;
}
}Ezzel a metódussal a feladatod így néz ki:
var array = new [] { '\0', '\0', '\0', '4' };
Console.WriteLine(array.FirstIndexMatch(ch => ch != '\0'));"Illetve a \0 space-t jelöl?"
Nem, dehogy is. Az Unicode NULL karaktert jelöli, aminek nyolc bites testvére C-ben ugyebár a string végét jelölte, viszont C#-ban nincs ilyen jelentősége, mert a char tömb tudja magáról a saját hosszát.
"Vagyis ha ezt beillesztem egy string-be, akkor ott szóköz lesz?"
Nem. Bekerül a stringbe, foglalja a helyet, de ha kiírod, nem jelenik meg semmi.
Szerintem nem szabadna, de most csak .NET fiddle-ön tudtam kipróbálni, ott tényleg nem jelent meg semmi. Lehet, hogy konzolon máshogy megy.Az biztos, hogy a szóköz helyes jelölése: ' '
-
zuzu000
őstag
Char tömbben hogy keresem meg az első nem \0 elem indexét? Tehát ami valamilyen karaktert jelöl, nem üres. Illetve a \0 space-t jelöl? Vagyis ha ezt beillesztem egy string-be, akkor ott szóköz lesz?
Szerk.: kipróbáltam, \0 = szóköz
-
-
fatal`
titán
válasz
Peter Kiss #6053 üzenetére
Akkor írhat ha más nevet akar neki adni, de akkor meg using Timer = System.Windows.Forms.Timer;
Legalábbis az adott kontextusban.
Bár végülis bármit írhat, maximum le sem fordul.
Ú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!
- Apple asztali gépek
- Vélemény: nem úgy tűnik, de Lip-Bu Tan most menti meg az Intelt
- Fogyjunk le!
- WoW avagy World of Warcraft -=MMORPG=-
- Bluetooth hangszórók
- Kerékpárosok, bringások ide!
- Kertészet, mezőgazdaság topik
- Milyen processzort vegyek?
- Path of Exile (ARPG)
- Nem tetszik a Procon-SP-nek, hogy a Nintendo távolról kivégezheti a Switch 2-t
- További aktív témák...
- Gigabyte RX 6800 16Gb Aorus (LCD kijelzős)
- Bower & Wilkins px7s2 garanciával eladó.
- Dell Latitude 7410 Strapabíró Ütésálló Profi Ultrabook Laptop 14" -80% i7-10610U 16/512 FHD IPS MATT
- Eladó Lian Li O11D MINI-X gépház
- Lenovo ThinkPad P17 Tervező Vágó Laptop -50% 17,3" i7-10750H 32/512 QUADRO T1000 4GB
- Lenovo ThinkPad L15 Gen 2 - 15.6" FullHD IPS - i5-1135G7 - 8GB - 256GB SSD - Win11 - MAGYAR
- Eredeti DELL 240W töltők (LA240PM160)
- Szinte új, minőségi, állítható ritkítóolló
- LG 32SQ700S-W - 32" VA Smart - 3840x2160 4K UHD - 62Hz 5ms - WebOS - Wifi + BT - USB-C - Hangszórók
- Apple iPhone 14 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest