Új hozzászólás Aktív témák
-
válasz joysefke #8550 üzenetére
Semmilyen jelölőkarakter nincsen az ilyen köztes sortörések előtt...
helyesbítek: annyi jelölés van, hogy sor közbeni sortörés csak aposztrófok között lehetséges.
Ez lesz a megoldás : https://github.com/22222/CsvTextFieldParser/blob/master/CsvTextFieldParser/CsvTextFieldParser.cs[ Szerkesztve ]
-
válasz joysefke #8551 üzenetére
Nem tudom, mit szeretnél, de: https://www.nuget.org/packages/CsvHelper/9.2.3
-
dqdb
nagyúr
válasz bandi0000 #8538 üzenetére
(a + bi)(c + di) = ac + adi + bci + bdi² = ac + (ad + bc)i + bdi²
Mivel i = √-1, ezért i² = -1, azaz
ac + (ad + bc)i + bdi² = ac + (ad + bc)i + bd × (-1) = (ac - bd) + (ad + bc)i
Vagyis:
(a + bi)*(c + di) = (ac - bd) + (ad + bc)i
Ha megnézed ennek a .NET Core-ban található implementációját, akkor ott pontosan ez szerepel:
public static Complex Multiply(Complex left, Complex right)
{
return left * right;
}
public static Complex operator *(Complex left, Complex right)
{
// Multiplication: (a + bi)(c + di) = (ac -bd) + (bc + ad)i
double result_realpart = (left.m_real * right.m_real) - (left.m_imaginary * right.m_imaginary);
double result_imaginarypart = (left.m_imaginary * right.m_real) + (left.m_real * right.m_imaginary);
return new Complex(result_realpart, result_imaginarypart);
}Vagyis akárhogyan nézem, jól szoroz össze két komplex számot az ajánlott osztály (csúnya is lenne, ha nem).
tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek
-
válasz Peter Kiss #8552 üzenetére
Köszönöm, nagyon jó tipp volt!
-
tototos
őstag
Sziasztok!
Van arra lehetőség, hogy emuláljak egy game controller HID device-t c# programból? A terv az lenne, hogy külső interfészen érkező adatok alapján vezéreljünk egy játékot. Eddig egy külső kis mikrovezérlő végezte ezt, de jó lenne ha nem lenne szükség külső eszközre, hanem "tisztán" szoftveresen megoldható lenne a dolog.
Köszönöm
-
-
summers
tag
válasz Peter Kiss #8558 üzenetére
Hm, nagyon segítőkész vagy.
-
lali76
újonc
Sziasztok! Info zh-ra kellene egy kis segitseg C programozás van! Ezer köszönhet és hála érte❤️
Feladat:matrix.dat fájlban 12 egész szám van (4 bájton ábrázolva) bináris módban.
Írjon programot, mely beolvassa a számokat a fájlból egy dinamikusan létrehozott két dimenziós tömbbe. Írja ki az elemeket a képernyőre 3x4 formában és végül írja ki a transzponált mátrixot egy transzponalt.txt nevű szöveges fájlba! -
bandi0000
nagyúr
Beolvasáshoz használhatod az fgetc, vagy freadet
Dinamikus tömböt nem értem, C ben nem annyira egyszerű megcsinálni, de arra is találsz példát
Kiíráshoz csak egy for kell, benne egy if, ha 3-al(2-vel) egyenlő az index, akkor egy sotörést teszel, és persze mindig növeled 3 al azt a változóz
Kiírás meg ugyan ez, csak fprintf et használsz
Xbox One: bandymnc
-
lali76
újonc
válasz paramparya #25 üzenetére
Most írom a zht srácok, 1 órám van rá. Letöltöttem a fájlt de ennyi tudok. Valaki tudna nekem írni egy prograot rá? Nagyon kéne, mert nem akarom hogy, államiról kirakjanak fizetősre
Feladat: Le kell töltenem egy fajlt. Az megvan. A fájlban 5 vektor van eltárolva bináris formában. Minden vektornak 3 koordinátája (x;y;z) van (intiger típusúak).
Írj programot ami kiszámolja a vektorok összegét.
Eredményt írja ki a képernyőre x;y;z formában. -
bandi0000
nagyúr
Okoskosni nem akarok, meg a többiwknwk van igaza, ên csak azt nem értem, hogy miért kell mindent az utcsó pillanatra hagyni? Nálunk a gépêszeknek is csak mellék tárgy ez, és kb ők is ZH elötti nap kaparja az ajtót, hogy kéne neki megoldás stb stb...
Ha korábban írsz esetleg megcsináltam volna,de nem tudom most
Xbox One: bandymnc
-
nagyúr
Sziasztok!
Asp.net mvc alkalmazásban van egy saját filter komponensünk javscriptben. Ilyen összetett kereséseket lehet vele írni, nem is ez a lényeg. Cshtml-ben be van hardcode-olva a js-ben egy 'ÉS'. Ez nem 'ÉS'-ként renderelődik le, hanem 'ÉS'-ként, ezért a user nem tudja használni normálisan a filtert. Meta charset okés, cshtml file utf-8, mit nézzek még meg?
[ Szerkesztve ]
-
ASP .NET Core MVC 2
Iránymutatás kéne, elég kezdő vagyok ebben
Csinálok egy esküvőszervező appot. Ennek lesz egy User és egy Admin felülete. A User felületen lehet látni a bemutatkozást, elolvasni a részleteket, elfogadni a meghívást, visszajelezni stb. Az Admin felületen lehet konfigurálni a szövegmezőket (nevek, időpontok, helyszín, bemutatkozás stb..) képeket feltölteni az egyes szekciókhoz illetve a usereket konfigurálni, meghívókat elküldeni stb...
Adatbázis -SQLite- már van az applikációban, ez tárolja az IdentityUser entitásokat az elérhetőségekkel illetve hozzájuk a userek visszajelzéseit is. A backend logika már egész jól működik, ehhez akarok hozzákendácsolni valami értékelhető user interfészt. Ehhez értek a legkevésbé.
A User felülethez letöltöttem egy (free) single page reszponzív template-t HTML-CSS-JS+képekkel. Ennek a HTML részéből csináltam egy _UserLayout.cshtml-t. Azonosítottam azokat a szövegmezőket és képeket amelyeket az Admin által konfigurálhatóvá akarok tenni.
Ezek a konfigurálható textboxok/képek a Layout-on teljes mértékben szét vannak szórva, nincsenek lokalizálva, nem tudok egy szekciót kiemelni, hogy csak ott legyenek a konfigurálható elemek. Minimum 50-60db szövegelemmel és 20db képpel számolok. Szóval a végére akár a duplája is lehet.
A kérdés az, hogy mi a legértelmesebb módja annak, hogy a Layout/View-nak átadjam a megjelenítendő szövegelemeket, képeket? Minél kevesebb javascript-tel. Az admin felülettel nem lesz problémám.
Nekem ez jutott eszembe:
-(1)Írjam be a konfigurálható szövegelemeket az adatbázisba,
-(2)onnan kerüljenek az alkalmazás-szerver indításakor (vagy bármikor amikor konfigurációs változás történt) egy perzisztens read only in-memory Dictionary<string, string> objektumba ami dependecy injectionnal elérhető lesz a kontroller(ek)ből,
-(3) A kontroller(ek) pedig (egy közös helper methoddal) mielőtt meghívják a View-t bepakolják az adatokat a ViewBag-be?
-(4)A ViewBag-re alapozva lehetne a Layout/View-ban megjeleníteni a konfigurálható szövegelemeket._________
Azt hogy ezeket (a gyakorlatilag statikus) elemeket ViewModel-be rakjam és mindig cipeljem nem tűnik optimálisnak.
Mi a sztenderd megoldás? Gondolom ez nem valami egyedi dolog és van rá több jó megoldás...
Képeket adatbázisba rakjam, vagy csak a nevük/útvonaluk/rendeltetésük kerüljön az adatbázisba, maga a fájl pedig a fájlrendszerbe? Itt jelentkezne az a probléma, hogy a fájlrendszert és az AB-t szinkronban kellene tartanom. Van erre valami pattern?
Előre is köszönöm!
üdv
J.[ Szerkesztve ]
-
martonx
veterán
válasz joysefke #8570 üzenetére
1. ha nem értesz a frontend fejlesztéshez, akkor ne SPA-val kezdj hanem maradj a HTML-nél, és igyekezz minél több mindent html és mvc alapokon tartani. Ha hirtelen szépet is akarsz, akkor maximum húzz be egy bootstrap-et, bár esetedben még annak is erősen utána kellene olvasni, hogy az mit hogy, miért csinál.
2. MVC - megvan, hogy mit jelent az MVC? Akkor miért nem használod? Miért ViewBag-el akarsz bohóckodni? De ha ragaszkodsz a ViewBag-hez (ami egyébként Core alatt már amúgy se javasolt), akkor inkább ViewData. De leginkább könyörgök használj model-t a viewban, hiszen erről szól az MVC
3. A konkrét kérdéseidben olyan evidenciákat kérdezgetsz, amiket nem is kellene megkérdezni, hiszen bakker így működik az MVC.
4. Hogy szerinted mi az optimális, azt rohadtul nem ezen a szinten kellene feszegetni, hanem majd amikor megcsináltad, és fut a rendszer, és a terhelés függvényében úgy érződik, hogy lassú, és már mindent értesz, átlátsz, tudod mitől, hogyan működik az Asp.Net Core, és megírtad pár év alatt a már sokadik Asp.Net Core rendszeredet, majd akkor elkezdhetsz utána olvasni az optimalizációs lehetőségeknek.
5. Képek standard megoldása, hogy mennek a filerendszerbe, adatbázisba csak az elérési útjukat tároljuk.
+ bónusz: nincs olyan, hogy Asp.Net Core MVC 2 Régen volt Asp.Net MVC 1-5-ig, ezt váltotta az Asp.Net Core 1.0 - 2.2bocs a keresetlen stílusomért, egyébként szívesen segítek
Én kérek elnézést!
-
válasz martonx #8571 üzenetére
Hi köszi a választ! Igen, számítottam rád
Nah szóval:
hanem maradj a HTML-nél, és igyekezz minél több mindent html és mvc alapokon tartani.Az Admin oldalon ez már megvan és működik. Van egy _AdminLayout-om ami tartalmazza a linkeket (no meg némi bootstrap formázást) az egyes admin feladatokhoz, ezek a feladatok külön-külön View-ba vannak szervezve. Itt a kontrollerek és a View-k között az adatok ViewModel objektumokkal közlekednek, visszafelé ugyanígy Model-bindinggal.
Szerintem ez a része jó ahogy van. Nem túl esztétikus, de nem is kell az legyen.
A userek felé viszont illene valahogyan esztétikusan kinézzen a dolog. Ehhez töltöttem le egy template-t. Se nem tudnám, se nem akarnám megcsinálni a user oldal HTML+CSS+ izgő mozgó JS design-ját. Ennek egyébként is minimális köze van csak a feladathoz. Az admin tudjon usereket konfigurálni, meghívókat szétküldeni, a kapott visszajelzéseket aggregálva megjeleníteni.
A usernek annyi dolga van, hogy a user View-ban rábökjön, hogy jön-e vagy sem, hányan jönnek, kell-e szállás stb..
Tehát ezt a szép template-t szeretném a korábban általam elkészített management felülettel összeházasítani illetve a user felület néhány tartalmát az admin által konfigurálhatóvá tenni.
A kérdés kifejezetten erre irányult, mégpedig azért, mert eddig az admin felület View-jait adatokkal ellátó ViewModel objektumaim (user adatai, user visszajelzése) mind nagyon karcsúak és feladat specifikusak voltak, most pedig nem tudom, hogy ezeket a kvázi-statikus adatokat (user neveket-bemutatkozásokat, képeket stb kb egyszer kell az adminnak konfigurálnia) hogyan lenne érdemes elszállítani a kontrollertől a renderelt user View-ba.
Ezek mellett a kvázi-statikus adatok mellett még lesz sokkal fókuszáltabb user specifikus adat (pld. üdvözlő szöveg amikor a user az egyedi linken keresztül belép vagy egy visszajelzés arról, hogy már elfogadta-e a meghívást)
Nah szóval leírtam a problémámat, és nagyon szépen megkérlek, ha már vetted a fáradtságot és végigolvastad a dolgot, írtál vagy 30 sort, akkor 2-3 pontba összeszedve valami olyat is próbálj beleírni a válaszodba ami engem most előre visz...
Nagyon szépen köszönöm
[ Szerkesztve ]
-
martonx
veterán
válasz joysefke #8572 üzenetére
megtisztelő
"A usernek annyi dolga van, hogy a user View-ban rábökjön, hogy jön-e vagy sem, hányan jönnek, kell-e szállás stb.." - gondolom ez egy html formban van. Remélhetőleg.
Kavarodás van a fejedben, hogy mi a statikus adat, és mi a dinamikus. Minden olyan adat, ami adatbázisból jön, az dinamikus adat. Statikus adat pl. egy img src-ben megadott kép valami 3rd party oldalon.
"hogyan lenne érdemes elszállítani a kontrollertől a renderelt user View-ba" - ModelViewController-ben mégis, hogy az istenbe lenne érdemes elszállítani, ha nem egy viewmodellben? De ezt már leírtam elég konkrétan az előbb is, légyszi ne kérdezgesd újra és újra ugyanazt.
Ennél jobban, a konkrétumok ismerete nélkül nem tudlak előre vinni. MVC-ben gondolkozz, leírtam mi dinamikus adat, és mi nem. Ennyi. Ha úgy érzed, ez sem elég, akkor keress meg nyugodtan privátban, ne ezt a topikot offoljuk szét
Én kérek elnézést!
-
.NET Core 2 MVC - model validálás, miért nem megy?
Sziasztok!
Szeretném a (működő) model validálást kiszervezni a kontrollerből egy külső osztályba. Létrehoztam egy : Attribute, IModelValidator interfészeket megvalósító validátor attributum-osztályt, a nevével dekoráltam az action method megfelelő paraméterét, mégis semmi nem utal arra, hogy valaha, bármilyen körülmények között eljutna a végrehajtás az én általam definiált IModelValidator.Validate() metódushoz. Sem a breakpoint sem a Validate függvényben levő exception nem aktiválódik. A
file
paraméterValidated
bejegyzést rak a ModelState-be akkor is amikor nem kéneRészletek:
[HttpPost]
public IActionResult EditPerson(Person model, int id, [ImageValidator]IFormFile file)Itt a
file
-t kellene validálni.Itt a validátor:
public class ImageValidatorAttribute : Attribute, IModelValidator
{
public bool IsRequired => true;
// Max size of image in KB
public int MaxSize { get; set; } = 1024;
// Allowed extensions
public string Extensions { get; set; } = ".jpg .jpeg";
public IEnumerable<ModelValidationResult> Validate(ModelValidationContext context)
{
throw new NotImplementedException();
IFormFile file = context.Model as IFormFile;
List<ModelValidationResult> result = new List<ModelValidationResult>();
if (file != null) {
.....
....
}
return result;
}
}A kontrolleren beül így néz ki a file paraméter-kezelése:
if (ModelState.GetValidationState(nameof(file)) == Microsoft.AspNetCore.Mvc.ModelBinding.ModelValidationState.Valid)
{....}Ez mindig igaz...
Elmulasztottam valamit? Kell esetleg regisztrálni valahol a validátort?
[ Szerkesztve ]
-
martonx
veterán
válasz joysefke #8575 üzenetére
Doksit olvastad? Mert ott nem így van a példa kód: https://docs.microsoft.com/en-us/aspnet/core/mvc/models/validation?view=aspnetcore-2.2
Én kérek elnézést!
-
válasz martonx #8576 üzenetére
Ez is egy példakód volt...
Igen, a linkelt doksit olvastam, azóta megcsináltam ami benne van, továbbra sem működik.
ValidationAttribute-tal.
public class SizeAttribute : ValidationAttribute
{
private int size;
public SizeAttribute(int Size) => size = Size;
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
IFormFile file = validationContext.ObjectInstance as IFormFile;
if (size * 1024 < file.Length) return new ValidationResult($"A maximum image size of only {size}KB is allowed");
else return ValidationResult.Success;
}
}Itt az action method:
[HttpPost]
public IActionResult EditPerson(Person model, int id, [Size(1024)]IFormFile file)Kell még valami? Kell esetleg valahol regisztrálni a SizeAttribute-osztályt?
[ Szerkesztve ]
-
petyus_
senior tag
válasz joysefke #8577 üzenetére
AttributeUsage attribute van az attribute-odon? Ott tudod megadni, hogy mire teheted rá. Most hirtelen nem tudom, mi a default, ha nem rakod rá.
Pl:
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
public class RangeAttribute : ValidationAttribute
{
}[ Szerkesztve ]
-
válasz petyus_ #8578 üzenetére
Nincsen, a doksi szerint azáltal, hogy nincsen rajta, nem is zártam ki, hogy érvényes legyen paraméterre:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/attributeusage
-
válasz martonx #8580 üzenetére
Nem, azt még nem próbáltam ki.
Alapvetően én ezt az IFormFile-t akarom validálni, maga a model objektumom (Person) nem túl kritikus, annak a propertijeit az osztálydeklarációban dekoráltam [Required]-del, az a része működik és nekem egyelőre elég is.
Dobtam a mai próbálkozásomat (elnapoltam) a kontrollert visszaállítottam a naiv, nem túl alapos kézi validálásra. Jelenleg így néz ki, csak annyi a célja az IFormFile validálásnak, hogy figyelmetlenségből ne lehessen rossz formátumot feltölteni. Tudom, hogy a fájl kiterjesztése semmit nem jelent.
A Person egy ViewModel objektum és tárolja egy személy adatait illetve a képének a relatív útvonalát a wwwroot-hoz képest. Összesen kb 6-10 Person objektum lesz, ezek in-memory tárolódnak (és minden változás mentődik a diszkre). Ők nem userek, hanem csupán koszorúslányok-fiúk, a képük-nevük pedig a Weblapon fog virítani. Az admin egyszer konfigurálja őket a content-manager oldalon utána ezek úgy maradnak.
A dolog nincsen túlságosan kitesztelve, de működik.
[HttpPost] public IActionResult EditPerson(Person model, int id, IFormFile file)
{
// Text based informations (Person object) and IFormFile gets validated separatelly
// The expectation is to execute EditPerson if the Person is valid, even if IFormFile is missing or invalid
// Exceptions can only be raised bc of file IO errors. This should not break the method
// we collect the exceptions to log details later into ModelState
IList<Exception> exceptions = new List<Exception>();
if (id < 0 || store.Data.People.Length <= id) ModelState.AddModelError("", "Error: route variable \"id\" has invalid value");
if (model?.Title != "Groomsmen" && model?.Title != "Bridesmaid") ModelState.AddModelError("", "Http post request contains invalid title: must be \"Bridesmaid\" or \"Groomsmen\"");
if (ModelState.IsValid)
{ // Person object is valid and updates the ContentStore no matter the IFormFile state
store.Data.People[id] = model;
store.Update(store.Data.People);
} // IFormFile gets manually validated
if (file != null)
{
string name = file.FileName;
string ext = Path.GetExtension(file.FileName.ToLower());
if (1024 * 1024 < file.Length) ModelState.AddModelError("", "Error: A maximum image size of 1MB allowed");
if (ext != ".jpeg" && ext != ".jpg") ModelState.AddModelError("", "Error: JPEG file expected extension must be either *.jpeg or *.jpg");
if (ModelState.IsValid)
{
// currently no renaming and no protection against malicious IFileForm-s as file upload is not available for public
string newFileName = file.FileName;
string newFileFullPath = Path.Combine(webRoot, imageFolder, newFileName);
while (System.IO.File.Exists(newFileFullPath))
{
//gets a nice, short random file name in case of a filename conflict
newFileName = (DateTime.Now.Ticks % 1000).ToString() + ext;
newFileFullPath = Path.Combine(webRoot, imageFolder, newFileName);
}
try
{
using (FileStream fs = System.IO.File.Create(newFileFullPath))
{
file.CopyTo(fs);
fs.Flush();
// file path gets saved in cshtml friendly relative path
store.Data.People[id].PictureSrc = "/" + imageFolder + "/" + newFileName;
}
}
catch (Exception ex) { exceptions.Add(ex); }
}
if (0 < exceptions.Count)
{
ModelState.AddModelError("", "Error: Could not upload image");
foreach (var ex in exceptions) ModelState.AddModelError("", ex.Message);
}
else store.Update(store.Data.People);
}
if (ModelState.IsValid) return RedirectToAction(nameof(Index));
else
{ ViewBag.id = id;
return View(model);
}
}[ Szerkesztve ]
-
-
-
I02S3F
őstag
Sziasztok!
Ez itt az első saját kútfőből származó programom (igen ez olyan egyszerű, mint egy vonalzó).
A 37. és a 47. sor között van egy "Kilép? Igen vagy nem" rész. Ezt megismétlem a 72. és a 82. sor között.
A C#-ból igen keveset tudok (mérnök infós levelezőn vagyok, elsős).
Kérdésem, hogy ezt nem lehet-e egy class-ba tenni, vagy valamibe, amivel ezt a szekvenciát szeretném megismételni? Nem is konkrét megoldást várok, hanem egy linket (olvasnivalót).
A másik kérdésem, hogy a következő két változó nevezés használata célszerű-e? KilepoKerdesreAValasz és KilepoKerdesreAValaszKetto, mert a neve nem beszédes, ránézésre nem tudni (csak a változónevet nézve), hogy
- mi a különbség,
- a KilepoKerdesreAValaszKetto mit csinálKözben olvasom azt is, hogy hogyan érdemes változót elnevezni. (Egy példát az iskolában is mutattak.)
-
fatal`
titán
Kérdésem, hogy ezt nem lehet-e egy class-ba tenni, vagy valamibe, amivel ezt a szekvenciát szeretném megismételni? Nem is konkrét megoldást várok, hanem egy linket (olvasnivalót).
Nem néztem a kódot, de szerintem tedd ki egy függvénybe / metódusba.
A másik kérdésem, hogy a következő két változó nevezés használata célszerű-e? KilepoKerdesreAValasz és KilepoKerdesreAValaszKetto, mert a neve nem beszédes, ránézésre nem tudni (csak a változónevet nézve), hogy
- mi a különbség,
- a KilepoKerdesreAValaszKetto mit csinálEgy, kettő, három ... n semmiképpen sem ajánlott, csak ha egyértelmű, próbálj beszédesebb nevet adni nekik. És bár az iskolákban nem tanítják, de szerintem kerüld a magyar változónevek használatát.
Elnevezésekhez:
Naming Guidelines
C# Coding Standards -
lord.lakli
őstag
válasz martonx #8593 üzenetére
Kódot szerintem nem minősíti az elnevezés, maximum a cég konvencióját mutatja. Több olyan terület van, ahol azért az angol változókkal rendesen meg kell szenvedni, mert a fejlesztő nem ismeri az adott terület szaknyelvét, hiába tud angolul. Ráadásul más világnyelvek esetében sem mindig követik az angolt mindig.
[ Szerkesztve ]
-
válasz lord.lakli #8595 üzenetére
Pedig nem ártana, akar a halál olasz, spanyol vagy egyéb nyelven konstruált szerkezetekben turkálni. Eddig én némettel találkoztam, 9 évig tanultam, nem kellene... Vagy az is rendben lenne, ha mondjuk oroszul natív abcvel menne?
-
lord.lakli
őstag
válasz Peter Kiss #8596 üzenetére
Szerintem a cégtől és területtől függ, de a legtöbb helyen helyesen az angolt használják. Vannak olyan szakterületek, ahol nem csak az angol a hivatalos tudományos nyelv, így miért kellene az angolhoz ragaszkodni? Tuti van olyan, ahol az orosz natív abc a megfelelő
-
dqdb
nagyúr
válasz Peter Kiss #8596 üzenetére
Pedig nincsen szebb annál, amikor az SAP interfészen a mező neve egy rövidített német, egy rövidített angol és egy rövidített magyar szóból áll össze, és ezeket részeket az aláhúzás és kötőjel véletlenszerű kombinációja választja el
tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek
Ú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!