- 45 wattos vezeték nélküli töltés jön az új iPhone-ba
- Befutott a megígért HRV-mérés a Withings órájára
- Samsung Galaxy Watch7 - kötelező kör
- Huawei Watch Fit 3 - zöldalma
- Vivo X200 Pro - a kétszázát!
- One mobilszolgáltatások
- iGO Primo
- Folyamatos vérnyomásmérést kínál a Huawei Watch D2
- VoLTE/VoWiFi
- Samsung Galaxy S21 FE 5G - utóirat
Új hozzászólás Aktív témák
-
kingabo
őstag
válasz
Peter Kiss #5899 üzenetére
Én is így látom, meg ez a teszt is alátámasztja: [link]
A .Format()-nak van még egy nagy előnye: első ránézésre is látszódni fog az eredmény, míg az összeadásoknál jóval kevésbé átlátható az eredmény. Szerintem. -
Peter Kiss
őstag
válasz
Goose-T #5897 üzenetére
A fenti példa maradhat így is, automatán string.Concat() lesz belőle, ami teljesen okés. String-.Format() jóval lassabb lenne, memóriában is valószínűleg többet fogna összességében, de ez a kérdés már mikro optimalizáció, aminek nem biztos, hogy van értelme. StringBuilder ilyen kevés összefűzésnél felesleges.
-
Goose-T
veterán
válasz
MATEO6600 #5896 üzenetére
Nem. A C# compiler minden egyes idézőjelbe tett kifejezésből a forráskódban csinál egy string objektumot, így a te kódodban négyszer fut le a String osztály konstruktora: háromszor a leírásuknál (mivel három részletben írtad le), és egy az összefűzésnél. A string.Format metódus használata esetén viszont csak kétszer jön létre string (egy a format string leírásánal, egy pedig a metódus futása során), szóval az takarékosabb az erőforrásokkal.
-
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.
-
MATEO6600
őstag
Resource managementes kérdés:
Az alábbi kódnál minden egyes + jel után új string objektum képződik?int szam1 = 10;
int szam2 = 15;
int szam3 = 20;
Console.WriteLine("A szám1: " + szam1 + ", szám2: " + szam2 + ", szám3: " + szam3);Ha igen, akkor ilyen esetben hasznosabb a {0}, {1} stb.. típusú taglalás, vagy az is ezt csinálja, és csak a string.format vagy StringBuilder ajánlott?
-
ubid
senior tag
Local databasehez kötelező legalább egy SQL express vagy what ?:S
-
ubid
senior tag
Újabb kérdés :
A kliens gépekre milyen providert kell telepíteni ahhoz hogy az általam fordított programban az sql adatbázist tudja kezelni ?
Egy újonnan telepített gépen volt tesztelve : azt írja ki hiba üzenetkénet hogy:
underlying provider faild on open.
EF-et használok és Local adatbázist, tehát csak a fájl van letéve a mappaszerkezeten belül.
Köszi a segítséget.
-
Dilikutya
félisten
Nem találtam élő Visual Studio fórumot, de itt biztos használja valaki.
Mi a különbség a Professional, Ultimate és Premium között? Melyiket érdemes feltenni?
Dreamspark, mielőtt valaki megkérdezné, honnan válogatok. -
Karma
félisten
-
-
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; -
ubid
senior tag
válasz
rgeorge #5877 üzenetére
A csv úgy keletkezik hogy egy saját csv creator megcsinálja...
Igen rakhatnék oda hogy ne ; legyen az elválasztó, hanem |,| saját szeparátor.. akármi karaktersorozat.idáig rendben is van, viszont ezt a saját szeparátort az excel mondjuk nem tudja kezelni..
A lényeg az hogy egy feltöltött táblát akár mikor ki lehessen rakni CSV,be, majd azt a CSV-t tovább bővítve újból felolvastatni a programmal, ami pedig az új rekordokat beteszi az adatbázisba...
és így tovább. újra letölteni ha kell... kibővíteni,...visszaolvasni... -
Goose-T
veterán
válasz
MATEO6600 #5876 üzenetére
1. Készíts külön osztályokat a metódusok paramétereire és visszatérési értékeire, akár úgy, hogy egy közös osztályból származtatod őket. Nagyban meg fogja könnyíteni a dolgodat a jövőben.
2. WSDL-es service proxy generálás helyett az interface-t tedd egy külön Class Library projektbe, és az abból létrejövő DLL-t referáld a kliensalkalmazásban. Ha így csinálod, akkor a ChannelFactory használatával egyszerűbben tudod majd hívni a szolgáltatást, és mivel ott lesz az interface DLL a kliensoldalon is, ezért biztos az a ToString() metódus fog lefutni, amit te írtál bele. Most azért nem az fut le, mert metódusokat nem szerializál a WCF, csak a [DataMember] attributummal ellátott property-ket.
-
rgeorge
addikt
A szabványos megoldás az, amit pont el akarsz kerülni: a szöveghatároló használata. Más mód nincs nagyon arra, hogy egy határolót ne határolónak tekintsen a beolvasó. Mi lenne egyébként a beolvasó? Saját beolvasóval megoldható bármi. Az sem mindegy, hogy a csv hogyan keletkezik, kik és mivel hozzák létre, mert szabványos létrehozáskor a szöveghatároló is megadható. Ha közvetlenül szövegként keletkezik, akkor pedig az elválasztó karakter lehet más, olyan, ami adatban nem fordulhat elő.
-
MATEO6600
őstag
WCF-ben kéne egy kis segítség, elég egyszerű, de nem tudtam rájönni. (stackoverflow-n találtam csomó ilyen postot, de nem értettem meg)
A szerződésben (IService interface) a ToString metódust akarnám felülírni, de nem az fut le, mikor kliens oldalon használnám.
A kód egyszerűsítve:public interface IRestaurantService
{
[OperationContract]
List<Etterem> GetRestaurantList();
}
[DataContract]
public class Etterem
{
[DataMember]
public string Nev
{ get; set; }
public override string ToString()
{
return "Név: "+ Nev;
}
} -
ubid
senior tag
Sziasztok.
Csv file feldolgozáshoz lenne egy kérdésem.
Ugye a CSV szeparátor általában a ; karakter.
Mi a helyzet azzal, hogyha egy oszlopban a szövegben szerepel ; karakter ?
Akkor ugyebár rosszul olvassa fel a fájlt...PL:
header : KEY VALUE
zebra; Console.Writeline("ZEBRA"); Console.ReadKey();
Ugy ebbe az esetben azt szeretném, hogyha a VALUE mezőbe az egész sor beletartozna , tehát ez így végig :
Console.Writeline("ZEBRA"); Console.ReadKey();
Amikor olvasom fel a fájlt meg nem ez fog történni, mert a pontosvessző miatt 3 oszlopot "érzékel"
Ezt hogyan lehetne kiküszöbölni ?(Fontos, hogy a CSV-fálban nem tehetem időzőjelekbe az értéket, mert az nem user friendly, ha megkérem őket, hogy minden új értéket idézőjelbe tegyenek... )
Remélem érthető volt
-
Karma
félisten
válasz
tomrRRR #5873 üzenetére
C-ben, vagy C#-ban? Ha az előbbi, akkor ebbe a topikba fáradj át kérlek.
-
tomrRRR
senior tag
Sziasztok!
segítségeteket szeretném kérni, hogy tudnám kiírni ezt a programot C-ben ?Írjunk egy játékot.
csinálunk egy random generátort, kérjünk be egy számot! 1-100 ig
in= 98;
számítógép kiírja találgass:
beírtam: 15A számítógép kiírja: annál nagyobb
110 beírok
A számítógép kiírja: annál kisebb
majd egy számnál kiírja hogy nyertél
win -
warchef
tag
Üdv!
Entity Framework 6 + egy winforms alkalmazáson dolgozom. A kérdésem az, hogy hogyan tudom azt megcsinálni, hogy egy textboxban egy adatbázis mező értéke jelenjen? Még csak most ismerkedem az EF6-tal.
-
martonx
veterán
válasz
Goose-T #5865 üzenetére
Illetve ehhez tenném még hozzá, hogy rengetegen képtelenek az EF-et optimálisan használni. Mondok pár példát, nem neked címezve, de a te hsz-edhez kiegészítve:
1. db.savechanges-t foreach-en belül rengetegszer látom, miközben a foreach végén egy kötegben kiadott db.savechanges pont ugyanúgy mind az X ezer insert-et elvégezné, csak éppen jóval hatékonyabban, mint tízezerszer szólni az SQL-nek, hogy insertálj egy sort. Ez pláne távoli felhős SQL-ek esetében pár nagyságrendet tud rajtunk gyorsítani.
2. pont a nagy tranzakciószámokhoz lett kitalálva a Configuration.ValidateOnSaveEnabled = false kapcsoló, amivel a csomó EF-es belső validációt ki lehet iktatni töredékére csökkentve ezzel az EF-es overhead-et.
3. Configuration.AutoDetectChangesEnabled = false is egy hasznos kapcsoló külső adatok db importja esetén. Minél több az importálandó adat, annál hasznosabb.Persze a legjobb a Bulk Insert, csak van amikor ez betegesen le van korlátozva, illetve egyszerűen a fenti pontok ismeretében az EF-es insertelgetést is lehet ésszel csinálni.
-
Goose-T
veterán
Ugyan már... Ha egy ember egy taligával két óra alatt visz az építkezéshez egy raklap téglát, akkor valóban haladásnak tűnik, ha két ember két taligával egy óra alatt végez. Ha viszont van egy targoncád, ami alányúl a raklapnak, és két perc alatt odaviszi, akkor a taligázás máris szerencsétlenkedésnek tűnik, nem? A hasonlatban az Entity Framework a taligás ember, az SQL bulk insert meg a targonca, ha nem lett volna egyértelmű. Persze a targoncát nem árt tudni kezelni.
-
ubid
senior tag
válasz
Peter Kiss #5859 üzenetére
azért baromság mert rosszul használják ?
ezt nem teljesen értem.
-
ubid
senior tag
válasz
Goose-T #5860 üzenetére
Jogos, hogy nem feltétlenül erre való...
De jelen esetben például egy CSV fájl felolvasása után kerülnek be a rekordok. 9ezerakárhányszáz user...
Ez szerintem egy átlagos feladat, hogy valami importálunk az adatbázisba. Ilyenkor pedig elkerülhetetlen a sok rekord beszúrása...
Például ennél a műveletnél (igaz távoli szerverre (germany)) de a rekordok beszúrása több percet is igénybe vett. Paralellesítve ez már 1 perc alá redukálódik...
Még szép hogy megéri használni... -
Goose-T
veterán
Tökmindegy, hogy hány szálon törölsz, úgyis az SQL szerver törli a rekordokat, nem az a gép, amin a programod fut. Az SQL automatikusan többszálúsít, ha kell, de arra nekem vajmi kevés befolyásod van. Az Entity Framework pedig nem arra való, hogy több tízezer rekordot manipulálj egyidejűleg. Ha mégis ilyen sok rekordot akarsz egyszerre törölni, akkor adj ki egy DELETE FROM Tábla WHERE Mező = Feltétel SQL utasítást, nagyságrendekkel gyorsabban fog végezni.
-
ubid
senior tag
válasz
Peter Kiss #5857 üzenetére
biztos okos vagy, tisztellek....
De WTF ?????
Repository pattern mitol lenne baromsag ? Csak egy "Szépítő" minta -
Peter Kiss
őstag
Facepalm
Új világ baromsága ez a mindent hajtsunk több szálon, mert úgy atom gyors lesz, csak a gügyéknek elfelejtik mondani, hogy igen kevés dolog thread safe... (IRepo, IUnitOfWork is gondolom valami neten lelt okosságot takar a józan ész nélkül.)
Írj tárolt eljárást, ami normálisan képes törölni.
-
ubid
senior tag
Hi, ezt a hibát mitől kaphatom ?
The object cannot be deleted because it was not found in the ObjectStateManager.
- EF 6
- Paralell.Foreach törlés. (IRepo, IUnitOfWork etc ... )Értem, hogy a paralell for rontja el... de miért ? :S
És hogyan tudnám kiküszöbölni ?
több10.0000 rekordot kell törölni, ezért kellene több szál.
-
Karma
félisten
válasz
MATEO6600 #5851 üzenetére
1) Ez nagyon helyzetfüggő, de az esetek többségében célszerű a propertyt használni tovább, akár osztályon belül is. Persze kérdés, milyen vudut kódoltál a setterbe, de például elég tipikus a PropertyChanged esemény gerjesztése, ami azért nem árt, ha mindig megtörténik.
2) Nem kötelező private-nak jelölni, mert a classok és structok adattagjai alapértelmezetten private-ek. Egy külső (azaz nem másik classon belüli beágyazott) class alapértelmezetten internal, de átírhatod publicra. A beágyazott dolgok private-ok alapból.
3) De egyébként a pattern nem attól lesz jól vagy rosszul implementálva, hogy propertyt vagy fieldet használsz. Ha egy osztály egy másik adattagjait sokszor, közvetlenül manipulálja, legyen szó az előbbi kettő bármelyikéről, ott valami bűzlik. -
MATEO6600
őstag
Köszönöm a segítséget!
Erre tippeltem.
Ezek után érdemes módosítani a kódot, és mindenhol a private _szam változót használni, vagy maradhat a property használata?
Egyébként jól tudom, hogy az adatmezőket kötelező private-ként megjelölni (ha a design pattern-nek eleget akarunk tenni), mert ha nem jelöljük a hozzáférhetőségét akkor alapból nem private? (internalra emlékszek) -
Karma
félisten
válasz
MATEO6600 #5849 üzenetére
Ilyenkor nem használhatsz autopropertyt. Csinálnod kell egy tagváltozót, és azt használod a getterben és a setterben, mint azelőtt, hogy kitalálták ezt a rövidítést. A fordító is ezt teszi, csak azt elrejti előled.
private int _szam;
public int Szam
{
get { return _szam; }
set { _szam = value; HardcoreVoodooBlackMagic(value); }
} -
MATEO6600
őstag
C# 3.0-ban bejött ez az automatikus property.
pl: public int Szam
{get;set;}
Kérdés:
Ha meg akarom változtatni a setter működését (tehát hogy ne csak a value-t írja át), akkor a gettert is köteles vagyok megváltoztatni, viszont oda mit kéne írnom? Azt nem írhatom, hogy get {return szam;}
mert nem létezik. -
Karma
félisten
Windows Formsban például használhatsz egy ilyen megoldást a UI és egyéb szálakon keletkező, nem lekezelt hibák lecsapására.
WPF-ben van DispatcherUnhandledException.
Windows Phone-on az Appnak van egy kapcsolódó eseménye.
De azért jobb, ha inkább helyesen kezeled a kivételeket.
-
ubid
senior tag
Sziasztok!
Meg tudom azt valahogy csinálni, hogy bárhol váltódik ki hiba ( nyilván anélkül, hogy try catch blokkot használnék) egy helyre csapjon be az összes hiba ?
elég furcsán hangzik.
remélem érthető!
-
ubid
senior tag
Sziasztok!
Local DB esetében mi okozhat EntityCommandExecutionException ( vagyis timeout-ol, inner ex.ből olvasható)
?
Nem értem local db-nél hogyan lehetséges ez...
(csak lekérdezés esetén jön elő... (189 érték... semmi )
Ötlet ?
-
rgeorge
addikt
Nem szorosan C#, inkább Visual Studio. A projekt Smart Device, ezért Windows.Forms alapú és Visual Studio 2008. Van egy User Control, aminek van egy publikus, Image property-je. Ez szépen látszik is a "Properties View"-ban:
be is lehet állítani:
De törölni nem tudom, csak lecserélni másikra. Egy PictureBox esetén kijelölve a "System.Drawing.Bitmap" bejegyzést az törölhető, és ezzel a kép is törlésre kerül.
Mi lehet a megoldás? Egyelőre a Designer.cs-ből és a .resx-ből manuálisan töröltem, de jobb lenne beépített megoldás a Control törlésén-újrafelrakásán kívül, persze.
Desktop Form-on és VS 2010-ben más a designer, ott megy, van Clear. -
ubid
senior tag
Úgy látszik ez egy ilyen hét...
Újabb kérdés :Local database file-t használok visual studioba. (NewItem/Data/ Service-Based-Databased )
A gondom az, hogy minden egyes buildeléskor kitörli az adatbázis tartalmát...
Ezt hol tudom állítani, hogy ne így legyen ? -
Karma
félisten
using Ionic.Zip;
namespace ZipTest
{
class Program
{
static void Main(string[] args)
{
using (var zip = new ZipFile())
{
zip.AddEntry("doge.txt", "much zip very programming wow");
zip.Save(@"D:\test.zip");
}
}
}
}Ez bizony a D: meghajtóm gyökerében hozta létre a fájlt. (DotNetZip)
-
Karma
félisten
Valamit nagyon elnézel, mert a ZipFile konstruktorának olyan útvonalat adsz meg, amit nem szégyellsz.
De én a Microsoft.Bcl.Compressiont jobban kedvelem, mert PCL-ben is remekül megy.
-
ubid
senior tag
Valaki tud olyan ZIP 3rd party-t aminek meg lehet mondani, hogy hova generálja ki a tömörített mappát ?
DotNetZip-et néztem, de abba nem lehet megadni a helyet. by default a bin-be vagy releasebe teszi
-
sztanozs
veterán
Ha timeoutol, akkor katasztrófa van...
-
ubid
senior tag
Következő érdekesség :
Rövidebb lett a Regexem jóval és mégis TimeOut-ol
OOO
Ilyenkor mi a teendő ?
-
sztanozs
veterán
-
ubid
senior tag
válasz
sztanozs #5821 üzenetére
Igen ez jó lenne. az a baj, hogy annyira megengedőnek kell lenni a karakterek tekintetében, hogy összecsúsznak a match-ek akár mit csinálok :S
gyakorlatilag BÁRMILYEN karakter lehet az array(''=>'')en belül.
csak az "array szöveg és a => kötött.Kibővítve a regexedet, máris összecsúszik :S
(array[\s,\w,\W,\n]*\(){1}(.*?\);)
Ez a megkötés pontosan mit jelent? :
(.*?\)
-
ubid
senior tag
Újabb regexes kérdés
Bonyolódik a dolog
Valahogy meg lehet mondani a regexnek, hogy mi jelentse egy "egyező" tartomány végét ?
teszem azt kétszer szerepel egymás utáni sorban valami szöveg :
$installdefs = array('id'=> 'de_de');
$installdefs = array('id'=> 'hu_hu');ezt kettő külön "match"nek vegye... Tehát valahogy megmondani azt, hogy a MATCH vége ott legyen ahol ' ); ' két karaktert egymás után találja.
-
ubid
senior tag
De ez nem lesz jó sajnos. Mert nem ÚGY folytatódik, hanem a // előtt van a HTTP || HTTPS \\ other protokol...
Pld:
var alma = 1; // ez az almaITT le kell vágni a // utáni részt.
var href = "<a href="https://google.hu" />
ezt is kommentnek veszi, viszont ezt nem célszerű levágni
Tilos -
Lacces
őstag
Koszi sracok!
-
kingabo
őstag
Alakítsd át stringé a documentet (szerintem a ToString() meg is oldja) aztán az így kapott stringen hívd meg a Replace("<br>"," ")-t és kész is vagy. Ha utána a XDocumentként akarnád tovább kezelni, akkor a XDocument.Parse-al vissza tudod alakítani.
Nem szép, de kezdő szinten lehet ez a legegyszerűbb...Esetleg írj egy egyede StreamReader-t, ami a kiolvasás után végrehajtja az átalakítást és csak utána adja vissza a kiolvasott sort.
De lehet, ha a Linq2Xml-es részben nem Remove-ot hívsz, hanem inkább végig rombolsz az eredményen egy foreach-csel, akkor is megoldható a csere.
-
ubid
senior tag
Sziasztok!
Ismét egy regex-es kérdésem lenne : )
Hogyan lehet olyat csinálni, hogy megmondom hogy töröld ki a regexre illeszkedő karaktereket, KIVÉVE ha egy megadott karakter sorozat van előtte.
Pontos az kellene, hogy egy fájlból ki kell szedni az egy soros kommenteket :
// komment vagyok
KIVÉVE! !! ! hogyha HTTPS: van közvetlen előtte
például ezt nem kellene törölni : HTTPS:// webcim.hu
-
Lacces
őstag
Hali.
Kezdo C#-os vagyok
Szoval van ez a kodom, ami az XML-bol kiveszi a <br> html tag-eket.
document = XDocument.Load(streamReader);
document.Root.Descendants().Where(e => e.Name == "br").Remove();Viszont, azt hogy lehetne megoldani, hogy space-re cserelje ki?
Lattam a replaceWith metodusat, de az xElement-et var.Text<br>Text1 ---> Text Text1 - ezt akarom.
De most ugye ez van sajnos: TexText1Probaltam keresni Google-ben, de nem a kivant talalatok jottek.
Ú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!
- Gyúrósok ide!
- Milyen légkondit a lakásba?
- Házimozi és Hifi kábelezés!
- 45 wattos vezeték nélküli töltés jön az új iPhone-ba
- Befutott a megígért HRV-mérés a Withings órájára
- Vicces képek
- HiFi műszaki szemmel - sztereó hangrendszerek
- Samsung Galaxy Watch7 - kötelező kör
- Milyen alaplapot vegyek?
- Milyen SSD-t vegyek?
- További aktív témák...
- HP Zbook 15 G3 laptop (15,6FHD/I7-G6/16GB/256SSD/AMD2GB/MagyarVilágítós/Win11)
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 13 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Új csak kipróbált Smartech 55 139cm Qled 4K UHD Quantum tv google assistant,Netflix, stb
- DJI Mini 4 pro - Fly More Combo - RC2 drón szett +128GB SanDisk SD
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9700X 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- Csapj le az új MSI MPG B550 GAMING PLUS-ra most! 0% THM-RE is!
- Telefon felvásárlás!! Samsung Galaxy S24/Samsung Galaxy S24+/Samsung Galaxy S24 Ultra
- Lenovo LEGION Pro 5 / Pro 7, Lenovo Yoga Pro gépek (RTX 4060 / 4070 / 4080 / 4090)
- Asus ROG G20AJ - Intel Core i7-4790, GTX 980
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged