- iPhone topik
- Samsung Galaxy S25 - végre van kicsi!
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Milyen okostelefont vegyek?
- Mobil flották
- India felől közelít egy 7550 mAh-s Redmi
- 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
Új hozzászólás Aktív témák
-
sztanozs
veterán
válasz
lord.lakli #6329 üzenetére
Ja nem neked, neki: haromegesz14
Szerintem csinálj egy listát 0 - 30-ig és azt keverd össze random módon és abból vegyél ki annyit, amennyi neked kell:
Enumerable.Range(0, 30).OrderBy(x=>Guid.NewGuid()).Take(amennyikell).ToList() -
sztanozs
veterán
válasz
byron75 #6312 üzenetére
Ezeknek a chipeknek általában nincs túl nagy memóriájuk, ráadásul a tartalom nem látható drive-ként, speciális programmal olvasható csak. Egy nagyobb memóriával rendelkező darabra egy 200x200 px közepesen tömörített jpeg talán ráfér, de ne gondolkodj nagy fájlokban.
Ezen a kártyán konkrétan 2 kB memória van, ne is álmodj kép tárolásáról - egy url-t esetleg el tudsz tárolni, ha nem túl hosszú...
-
sztanozs
veterán
Lehet, hogy az a baja, hogy újra és újra létrehozod az osztályodat...
a Main-ben egyszer a print_mcp2210_settings-ben pedig minden alkalommal, amikor lefut...
Van ott egy using MCP2210 is az elején (gondolom az IC dll driverének a wrappere), szóval egy csomó probléma lehet. Lehet wrapper probléma, lehet, hogy az a gondja, hogy több osztályból akarot meghivatkozni a cuccod... -
sztanozs
veterán
Én csinálnék egy Struct-ot, ami a kereszteződéseket jelöli (négy irány, melyik szabad), utána pedig egy A*-ot kell ráereszteni.
De mindenféle trükközés nélkül - ezt az infót eltárolva (honnan hova tilos) is lehet a*-ot számolgatni, nem kell felépíteni az egész hálózatot...
-
sztanozs
veterán
válasz
Aethelstone #6136 üzenetére
PIN kódot kér be - más kérdés, hogy a PIN azért 4 karakternél azért nem rövidebb...
-
sztanozs
veterán
válasz
Scrake^;DD #6130 üzenetére
0. használd a kód formázást
1. jelszót nem hardcode-olunk a kódba
2. break/continue csak ciklusból lép ki, gondolom nem többször kéred be ugyanazt a jelszót egymás után
3. egy if után nem teszünk egy másik ellentétes értelmű if-et, arra ott az else
4. azért nem tudod mit kell csinálni, mert inline használod az if-et. Nem inline:
if (valami_feltétel)
{
// utasítások
// ha a feltétel igaz
}
else
{
// utasítások
// ha a feltétel hamis
}
5. hibát kezelünk!
Az i = Convert.ToInt16(Console.ReadLine()); simán elszáll Exception-nel, ha nem számot adsz meg.
6. ne rakj bele semmit fölöslegesen { } blokkba (első if előtt és második if után)... -
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
-
sztanozs
veterán
válasz
beleszólok #6005 üzenetére
Mondjuk timestamp nem volt mellette
Tapasztalatból az összes temporary megoldás permanent lesz, amint a termék működikteljesen normális, ha lehetőséget biztosítanak arra, hogy beállíts egy timeoutot, aminek lejártával zombinak minősítesz egy processzt. - ja és beállítod a zimbivá válás konstansát végtelenre; na arra aztán lehet várni
-
sztanozs
veterán
válasz
beleszólok #6003 üzenetére
c# angol kommentek érdekesek
Találkozás a végzettel:
mscorlib/system/threading/Tasks/ConcurrentExclusiveSchedulerPair.cs:243
// Now that we're doomed, request completion
RequestCompletion();Zombivá vált producer...
System.Core/System/Linq/Parallel/Scheduling/Scheduling.cs:52
// The number of milliseconds before we assume a producer has been zombied.
internal const int ZOMBIED_PRODUCER_TIMEOUT = Timeout.Infinite;A csúf múlt
mscorlib/system/reflection/emit/isymwrappercore.cs:27
// Ideally we wouldn't need ISymWrapper.dll on desktop either - it's an ugly piece
// of legacy. We could just use this (or COM-interop code) everywhere, but we might
// have to worry about compatibility.Szerintem nem kell, de nem tudom bizonyítani...
System/services/monitoring/system/diagnosticts/EventLogInternal.cs:1097
// NOTE, [....]: ERROR_PROC_NOT_FOUND used to get returned, but I think that
// was because I was calling GetLastError directly instead of GetLastWin32Error.
// Making the buffer bigger and trying again seemed to work. I've removed the check
// for ERROR_PROC_NOT_FOUND because I don't think it's necessary any more, but
// I can't prove it...Nem tűnik a legjobb megoldásnak, de így hagyom...
mscorlib/system/globalization/compareinfo.cs:361
// some NLS VM functions can handle COMPARE_OPTIONS_ORDINAL
// in which case options should be simply cast to int instead of using this function
// Does not look like the best approach to me but for now I am going to leave it as it isNem teljesen értem miért működik, így inkább nem piszkálom.
mscorlib/system/reflection/emit/methodbuilder.cs:736
// We used to always "tokenize" a MethodBuilder when it is constructed. After change list 709498
// we only "tokenize" a method when requested. But the order in which the methods are tokenized
// didn't change: the same order the MethodBuilders are constructed. The recursion introduced
// will overflow the stack when there are many methods on the same type (10000 in my experiment).
// The change also introduced race conditions. Before the code change GetToken is called from
// the MethodBuilder .ctor which is protected by lock(ModuleBuilder.SyncRoot). Now it
// could be called more than once on the the same method introducing duplicate (invalid) tokens.
// I don't fully understand this change. So I will keep the logic and only fix the recursion and
// the race condition.Ezt a részt nem fogom karbantartani.
system/threading/Tasks/Parallel.cs:3421
// I'm not going to try to maintain this -
sztanozs
veterán
Érdekes részletek a .NET forráskódból
[link] -
sztanozs
veterán
Community Edition nagyon durva:
Announcing Visual Studio Community Edition
I’m also excited to announce that we are launching a new free edition of Visual Studio today that will empower even more developers to build great apps and solutions.
The new Visual Studio Community 2013 edition is a full-featured IDE. It supports multiple project types in one solution file in a single IDE, and has all of the productivity features and IDE extensibility capabilities (meaning you can use Xamarin, ReSharper, VsVim, and any other VSIX extension) that developers love in Visual Studio.
It is now available completely free for:
- Any individual developer working on a commercial or non-commercial project
- Any developer contributing to an open source project
- Anyone in an academic research or course setting (e.g. students, teachers, classroom, online course)
- Any non-enterprise organization with 5 or fewer developers working on a commercial/non-commercial project togetherWe are making it available for download starting today, and developers can download and start using it immediately. There is no program you need to join to use it – simply visit www.visualstudio.com, click the download button, and you are good to go.
It is going to enable even more developers to take advantage of Visual Studio and build even better applications. We are looking forward to seeing what you build with it -
sztanozs
veterán
válasz
Peter Kiss #5899 üzenetére
Ráadásul nem is csinált több string objetumot, hanem byte-array-be pakolta a string konstansokat...
-
sztanozs
veterán
válasz
MATEO6600 #5894 üzenetére
A lényeg lényege (megvágva)
newarr [mscorlib]System.Object
ldstr bytearray (41 00 20 00 73 00 7A 00 E1 00 6D 00 31 00 3A 00 // A. .s.z...m.1.:.
box [mscorlib]System.Int32
ldstr bytearray (2C 00 20 00 73 00 7A 00 E1 00 6D 00 32 00 3A 00 // ,. .s.z...m.2.:.
box [mscorlib]System.Int32
ldstr bytearray (2C 00 20 00 73 00 7A 00 E1 00 6D 00 33 00 3A 00 // ,. .s.z...m.3.:.
box [mscorlib]System.Int32
call string [mscorlib]System.String::Concat(object[])
call void [mscorlib]System.Console::WriteLine(string)Szóval csinál egy Sting.Concat-t egy Object[] array-on - amibe belepakolja az összekötendő részeket.
-
sztanozs
veterán
0) Feltelepíted a provider-t,
1) létrehozod a connection-t és
2a) SQL utasításokkal beolvasod (Select) vagy
2b) kiírod (Insert Into) az adatokat
3) bontod a kapcsolatot.Persze meg lehet oldani JET driverrel is, de akörül van egy két "érdekesség" (32/64 bit problémák, registry hackelés, stb).
-
sztanozs
veterán
És ha megnyitod mint adatbázist, és úgy írsz bele vagy olvasod?
https://www.connectionstrings.com/net-txtreader-for-text-files/
Data Source='C:\MyFolder';Delimiter=',';Has Quotes=True;Skip Rows=0;
Has Header=True;Comment Prefix='';
Column Type=String,String,String,Int32,Boolean,String,String;Trim Spaces=False;
Ignore Empty Lines=True; -
sztanozs
veterán
Ha timeoutol, akkor katasztrófa van...
-
sztanozs
veterán
-
sztanozs
veterán
válasz
Ticituc #5743 üzenetére
Este nézek majd valami projektet a régi cuccaim között, hátha ki tudok vágni valamelyikből egy egyszerű példát. De az alapján amit leírtam (meg az MSDN-es példákból már simán össze lehet tákolni egy működőképes dolgot. Ami a rákfenéje, az az xpath... az kell a kereséshez, és elsőre nem tűnik olyan egyszerűnek, mint amennyire az.
-
sztanozs
veterán
válasz
Ticituc #5741 üzenetére
Beolvasod XMLDocument objektumba, A DocumentElement-ben (root elem) megkeresed a megfelelő helyet (XPath-szal), belemódosítasz (add, remove node) és elmented a megfelelő beállításokkal.
Én egy csomót használtam korábban. Mondjuk egy meglevőt úgy módosítani, hogy az eredeti formátum tutira megmaradjon csak hackelve lehet. Ha betöltöd DOM-ba, akkor az XML Writer beállításai alapján fogja kiírni: XmlWriterSettings
-
sztanozs
veterán
public partial class MainWindow : MetroWindow
{
System.Windows.Forms.NotifyIcon nI;
public MainWindow()
{
InitializeComponent();
nI = new System.Windows.Forms.NotifyIcon();
nI.Icon = new System.Drawing.Icon("favicon.ico");
nI.ContextMenu.MenuItems.Add("Exit", onExitClicked);
nI.Visible = true;
}
private void onExitClicked(object sender, EventArgs e)
{
nI.Visible = false;
nI.Dispose();
Application.Current.Shutdown();
}
} -
sztanozs
veterán
Még bezárás előtt tüntesd el rendesen (kódból tüntesd el az ikont, zárd be és szüntesd meg a winforms objektumot). Amennyiben úgy zárod be a programot, hogy majd a rendszer úgyis terminálja a winforms részt is, akkor "ragad be" (addig ott marad, míg az egeret rá nem viszed).
-
sztanozs
veterán
válasz
Flashback #5162 üzenetére
Miért nem valami data típust töltesz fel "adatbázis" jellegű adattal, miért kell tömböt használni?
Vagy használj List<string[]>-et és a header beolvasásánál már tudod, mire kell mindig inicializálni a string[]-t. így legalább nem kell kétszer beolvasni az egész fájlt... -
sztanozs
veterán
-
sztanozs
veterán
válasz
tototos #4879 üzenetére
Kicsit sokáig állt a hsz-em szerkesztésben
A CurrentCulture.NumberFormat nem jó, mivel vsz nem English formátum van beállítva a gépen.
A default beállításhoz a következőt kell csinálni a kiírás előtt.System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
-
sztanozs
veterán
válasz
leximester #4535 üzenetére
Berakod a ciklusba a létrehozást és kész, ez nem a téglalap neve lesz, csak egy változó, ami (ideiglenesen) tárolja az aktuális téglalap objektumot.
-
sztanozs
veterán
válasz
leximester #4533 üzenetére
A teglalap1 az nem a téglalap neve, hanem a változó neve... Amúgy miért kell más neve legyen? Hozz létre másik változót... Vagy mi a gond?
-
sztanozs
veterán
válasz
bagyusz #4485 üzenetére
C-nek sincs köze az androidhoz...
Ez kell neked: Android programozás -
sztanozs
veterán
válasz
leximester #4431 üzenetére
Gondolom pont abban a fügvényben vársz a visszatérésre, amiben elindítottad.
A BGW-t eseményvezérelten kell megírni és mindjárt nem várakozik a programod a bgw-re "feleslegesen"... -
sztanozs
veterán
válasz
Gáborr93 #4365 üzenetére
Fa bejárással - gyakorlatilag legenerálod az összes lehetséges bejárható utat. Úgy a legeszerűbb, ha gombonként nyilvántartod az érvényes szomszédokat és ezt felhasználva építed fel a fádat egyszerű "jobbkezes" bejárással. Ez úgy gyorsítható, hogy figyeled, hogy az azott karaktersorozattal kezdődik-e szó a szótárban, és ha nem kezdődik, akkor visszalépsz egyet a bejárt fán és tovább mész a következő elemmel.
-
sztanozs
veterán
válasz
Gáborr93 #4360 üzenetére
Megnéztem a neten, hát nem egyszerű játék - bár mondjuk nem is atomfizika megvalósítani...
Először is kell egy szótár, ami ellenőrzi a lehetséges találatokat.
Utána le kell generálni a betűket, lehetőleg egyenlő arányban magán és mássalhangzókat (magyar nyelv szabályai szerint - ékezetes és célszerűen dupla betűket is kell generálni).
A gombok sorrendjének vizsgálatára kell külön algoritmus (ne lehessen nem szomszédos gombot megnyomni.
És végül le vagy le kell generálni az összes lehetséges jó megoldást (szótárral generálás közben ellenőrizni, hogy ne legyen sok felesleges futás), vagy futásidőben ellenőrizni, hogy jó-e az aktuális kattintgatás.
Ezután lehet indítani a játékot (általában időkorláttal).
Végül pedig leellenőrizni, hogy a játékos mennyit talált meg a lehetséges szavak közül (ha játék közbeni ellenőrzés van csak, akkor itt mindenféleképp le kell generálni az összes lehetséges megoldást. -
sztanozs
veterán
válasz
trisztan94 #4269 üzenetére
Azért az sem ártana, ha megértenéd, hogy mi, miért, merre, meddig
-
sztanozs
veterán
válasz
trisztan94 #4267 üzenetére
Struct is használható, főleg, hogy csak adatot tárolsz bennük. Mondjuk arra érdemes odafigyelni, hogy a struct inicializálható értékadás nélkül is, de gondolom ez téged itt nem zavar
Fejből - hibakezelés nélkül - kb:
public struct Konyv
{
int ar;
int db;
string nev;public Konyv( int ar, int db, string nev)
{
this.ar = ar;
this.db = db;
this.nev = nev;
}
}és csinálsz belőle egy listátz és azt töltöd fel:
List<Konyv> raktar = new List<Konyv>();
/*
stream reader cucc
*/
string sor = null;
while((sor = sr.readLine()) != null)
{
string[] sordarab = sor.Split(' ', 3);
Konyv k = new Konyv(int.Parse(sordarab[0]), int.Parse(sordarab[1]), sordarab[2]);
raktar.Add(k);
}Ezután már a raktar változóval tudsz játszani:
Összeg:
var osszeg = raktar.Sum(r => r.db * r.ar);Kifogyott:
var kifogyott = raktar.Any(r => r.db == 0);Adott ár alatt:
var adottAr = Convert.ToInt32(tb_adottAr.Text);
var szamlalo = raktar.Count(r => r.ar < adottAr); -
sztanozs
veterán
válasz
trisztan94 #4262 üzenetére
Access DeniedAthlon64+: egy még maradt
-
sztanozs
veterán
válasz
trisztan94 #4260 üzenetére
Mivel a for ciklusok mindig mást csinálnak így nem tudsz túl sokat nyerni a dologgal.
Ráadásul a második metódusod szerintem rossz. Ha bármelyik könyvből 0 vanna, akkor a végén azt írja ki, hogy kifogyott (bármi kifogyott-e a raktáron) - de azt nem fogod tudni, hgy melyik fogyott ki. Persze jó volna tudni, mi a cél... Mondjuk nem is csinál a végén semmit a metódus, csak számolgat és a végén kilép.Másik dolog - használd a string.Format-ot öszetett stringek készítésére:
l_megjelenites.Text = string.Format("A raktárkészlet összértéke: {0} Ft", ossz);l_megjelenites.Text = string.Format("{0}-féle könyv kapható {1} Ft alatt.", szamlalo, adottAr);
-
sztanozs
veterán
válasz
trisztan94 #4258 üzenetére
Lehet, hogy nem értem a kérdésedet
Viszont ez alapján nem hiszem, hogy neked for ciklus kellene:
Annyi lenne a lényeg, hogy egy metódusba szeretnék egy for ciklust rakni, mivel a 9 gomb ami a programban van mind használja pontosan ugyan azt.. Viszont van pár eset amikor elágazás is lenne benne. -
sztanozs
veterán
Az "eredetit" nem tudod, mert az pont kitölti a maga által elfoglalt memóriahelyet.
(illetve bele tudod másolni saját magába kisebb vagy nagyobb méretben, de az alapvető tulajdonságai - size, depth nem változik)
Méretváltoztatásra kell egy úgy bitmap (tekintsd úgy, mint egy rajzfelületet) és arra be tudod illeszteni az eredeti bitmap-edet bármilyen nyújtásban. -
sztanozs
veterán
Tegyél ki egy progress bar message box-ot , ami ~ 10 mp alatt ér véget, alá íod, hogy "Feldolgozás alatt, várható befejezési idő 10..9..8..7.. .. mp" és ha elkészült akkor bezárod (vagy ha nem készült még el, akkor újraindítod). Így a júzerek is látják, hogy történik valami - mert ugye a felhasználónak csak az a lényeg, hogy lássa, hogy épp valami történik.
Én napi szinten több BO exportot is generálok, aminek az időtartama 30 - 60 mp között van. Ha nem volna kint a progress bar, én is zajonganék. Így viszont legalább tudom, hogy kb. mennyit kell várnom.
-
sztanozs
veterán
Esetleg a Console-hoz nem fér hozzá... Passz. Mindenesetre találtam egy tiédhez hasonló problémát:
http://stackoverflow.com/questions/6165759/using-console-writeline-in-a-backgroundworker-dowork-eventAmúgy ha WinForm alkalmazást fejlesztesz, ahhoz nem lesz console...
-
sztanozs
veterán
Használj debug kapcsolókat command line compilerhez és akkor kicsist több lesz a hibaüzenet...
És van command line debugger is.
-
sztanozs
veterán
Nem friss, de használható:
http://www.codeproject.com/Articles/30989/Using-PostgreSQL-in-your-C-NET-application-An-intr -
sztanozs
veterán
válasz
Parameter #4109 üzenetére
Amúgy félrenéztem a tábládat - első pillantásra az időből azt gondoltam, hogy csökkenő sorrendben van (valójában növekvőben, csak megzavart a végén a reggel 7 óra). Ehhez nem jó a programom, hanem az a leírás használható, amit a hsz-om végén írtam (ha megfordítod a logok sorrendjét excelben, akkor mondjuk jó lesz). Amúgy elég problémás egy olyan log, amiben az idö mellett nincs dátum...
-
sztanozs
veterán
válasz
Parameter #4109 üzenetére
De amit becsatoltál, az excel volt - ezért VBA-ban írtam meg... Milyen formában elérhetők a kódok?
Favágó logika: végigmegyek soronként és ha valahol OUT van, akkor (szubrutinban) a következőtől kezdve megkeresem az első IN-t és összehasonlítom a megfelelő mezőket. Ha egyeznek, akkor a végére kiírom az időt, ha nem találok egyezőt, akkor kiírom, hogy nincs egyező.
Ezzel amúgy két probléma van
1) ha valamiért nincs IN (nem került be a logba), akkor egy korábbi IN-t fog megtalálni (esetleg több out is megkapja ugyanazt az IN időpontot)
2) Ha nagyon hosszú a fájl és hosszúak a session-ök, akkor közel exponenciálisan nö a feldolgozási időEnnél jobb módszer, ha sorban dolgozod fel a logokat és egy struktúrába berakod az összes OUT-ot és menet közben szépen ellenőrzöd az IN-eket is. Ha találtál párt akkor az adott OUT sorát frissíted, majd kiveszed a struktúrából. Ami pedig a feldolgozás végén marad, ahhoz odaírod, hogy nem találtál IN-t.
Ez a módszer fájl-alapú logolásnál működhet, de azok a session-ök nem lesznek azonosíthatók, amelyek nyitása az előző fájlokban voltak.Ha pedig realtime log feldolgozás van (syslog) - vagy a log (egyébként így szokott lenni) időrendben növekvő (legkorábbi esemény van a fájl elején) rendben van, akkor érdemes az IN-eket letárolni (mivel ugye azt kapod meg először). Ha később jön egy (neki megfelelő) OUT sor, akkor az ahhoz tartozó IN dátumát beírni mellé és az IN-t kivenni az ideiglenes tárból...
-
sztanozs
veterán
válasz
Parameter #4105 üzenetére
Mondjuk ennek semmi köze nincs a C#-hoz...
Public Sub TestLogout()
Dim c As Range
For Each c In Sheet1.UsedRange.Columns(2).Cells
If c.Value = "OUT" Then
Set c = c.EntireRow
Set Row = FindRelativeRow(c)
If Row Is Nothing Then
c.Columns(6).Value = "No Entries Found"
Else
c.Columns(6).Value = Row.Columns(1)
End If
End If
Next
End Sub
Private Function FindRelativeRow(currentRow As Range) As Range
For r = currentRow.Row + 1 To Sheet1.UsedRange.Rows.Count
If Sheet1.UsedRange.Cells(r, 2).Value = "IN" Then
If Sheet1.UsedRange.Cells(r, 3).Value = currentRow.Columns(3) And _
Sheet1.UsedRange.Cells(r, 4).Value = currentRow.Columns(4) And _
Sheet1.UsedRange.Cells(r, 5).Value = currentRow.Columns(5) Then
Set FindRelativeRow = Sheet1.UsedRange.Rows(r)
Exit Function
End If
End If
Next
Set FindRelativeRow = Nothing
End Function -
sztanozs
veterán
Specifikálnád egy kicsit jobban a kérdést? A windows "saját" context menüje is típusonként, elemenként, és állapotonként is változó. Más ha ikonra kattintasz, más ha az asztalra, más ha form fejlécre. A context menünek épp az a lényege, hogy az elem típusának és állapotának megfelelő menüt adjon...
Ú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!
- Nvidia Quadro M2000/ M4000/ P2000/ P2200/ P4000/ P5000/ RTX 4000/ RTX A2000 / RTX A4000
- Samsung Galaxy S23 Plus 256 GB Kártyafüggetlen 1Év Garanciával
- LG 65BX - 65" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready!
- REFURBISHED - DELL Thunderbolt Dock WD19TBS docking station (210-AZBV)
- BANKMENTES részletfizetés Noblechairs HERO Fekete/Platinafehér Gamer Szék
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged