- Poco M3 - felújított állomás
- Térerő gondok, tapasztalatok
- iPhone topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Egy szenzor, két zoomkamera: újraírta a Huawei a mobilfotózás történetét
- Google Pixel topik
- Milyen okostelefont vegyek?
- Honor Magic6 Pro - kör közepén számok
- One mobilszolgáltatások
- Olcsó Galaxyk telepíthetik a One UI 7-et
Új hozzászólás Aktív témák
-
amargo
addikt
pedig más helyen is csak azt ajánlottak, amit te is írtál:
[link] nem tudsz mit csinálni, ha csak paraméterless ctor-t keres a web.config esetén.. vagy írsz egy teljesen ujjat és akkor menni fog.Ui írtad, hogy neked csak elsőnek kéne ez, miért nem próbálod ki az OAuth-ot? bár utána is token-el kommunikálsz, de ilyen szempontból lehet megfelelőbb lenne neked.
-
amargo
addikt
igen tenyleg felre ertettelek bocsanat, bevallom csak kerulot tudok, de azt szerinten te is. a gond ott lehet hogy ezt a wcf akarja peldanyositani es neki kell a parameterless ctor. sajnos most csak azt tudom mondani, hogy csinalsz egy ilyet es ott szeded ki a containerbol. akar this el is atadhatod ennek, de az max csak emlekezteto lesz. szoval szerintem ahhoz, hogy mukodjon valahol kellene egy masik wcf- es modult is overrideni, hogy működjön. Megint leirom, hogy ez nem biztos, de tapasztalatom alapjan szukseges, ha gep ele kerulok atnezek regebbi projektjeim hatha valahol hasznaltam user- pass auth-ot.
-
ubid
senior tag
A regex tökéletes.
Abban az online tool-ban.
Viszont C#-ba beillesztve már nem úgy viselkedik
var regex = new Regex(@"^((?:[0-9][1-9]|[1-9][0-9])(?:\.(?:[0-9][1-9]|[1-9][0-9]))*)",RegexOptions.Singleline);
string s = "11.22.33"; //true
string s1 = "11.22.33."; //false
Console.WriteLine(regex.IsMatch(s)); //TRUE
Console.WriteLine(regex.IsMatch(s1)); //TRUE
Console.ReadLine();Mind a kettőre TRUE-t ad... Pedig ugye a második az False
-
amargo
addikt
-
martonx
veterán
Ugyan ezt az SQL topikban kellett volna kérdezned, de tessék itt az én módszerem, ami a belinkelt google-os módszernél biztosan jobb, és hatékonyabb (meg rövidebb is, de az ugye kit érdekel):
-- disable all constraints
EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
-- delete data in all tables
EXEC sp_MSForEachTable "DELETE FROM ?"
-- enable all constraints
exec sp_msforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"Mondjuk ezt eddig csak MSSQL 2012-vel próbáltam, de elvileg az Azure SQL már 2014-el is kompatibilis, szóval mennie kellene.
-
martonx
veterán
Most lusta vagyok a dokumentációját helyetted átnyálazni, de érzésre ez ugyanúgy működik mint az amazon-os megfelelője, azaz:
X időig tartja magában az eventeket, utána azok mennek a lecsóba
Az X idő alatt csak olvasni tudod őket, viszont azt meg tudod mondani, hogy honnantól akarod kezdeni az olvasást. Azaz csinálsz egy service-t, ami szépen olvasgatja az eventeket, és magadnak kell jegyezned, hogy a service hol is tartott az olvasásban. -
Karma
félisten
Akkor jó, hogy ha nem számít az üzenet, csak a periodikus gerjesztés.
Nekem például van egy projektem, amiben a munkavégzést egy worker végzi (amit a WebJobs SDK-val írtam; nagyon jó lib a storage-hez!), és van pár olyan feladata, amiknek X-Y percenként le kell futnia.
Most 12 queue van benne a különböző műveletekhez, néhány nézi az üzenet szövegét, a többségnek csak buta triggerként szolgál. Ezeket indítom schedulerrel, a többit belül pingpongozza.
-
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; -
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ő.
-
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.
-
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.
-
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.
-
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.
-
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.
-
sztanozs
veterán
Ha timeoutol, akkor katasztrófa van...
-
sztanozs
veterán
-
ubid
senior tag
Ennek tekintetében megpróbáltam átalakítani a regexemet, azonban valamiért így már nem működik.
A régi kifejezésem, amit átalakítottam:
(\$dashletStrings[ ,\n,\t]*\[[ ,\n,\t]*'){1}[A-Z,\-,_, ,a-z,0-9,aáeéiíoóöőuúüűAÁEÉIÍOÓÖŐUÚÜŰ,\n]*('[ ,\t,\n]*\]){1}[ ,\t,\n]*=[ ]*(array[ ]*\(){1}[ ,\n,\t,\(,\),',A-Z,a-z,0-9,?,!,+,-,_,=,>,aáeéiíoóöőuúüűAÁEÉIÍOÓÖŐUÚÜŰ,-?,\"",\/,:,*,<,>,%]*(\))EZ tökéletesen illekedik erre, csak túl bonyolult:
$dashletStrings['InvadersDashlet'] = array(
'LBL_TITLE' => 'Invaders!',
'LBL_DESCRIPTION' => 'A little way to pass the time',
'LBL_DBLCLICK_HELP' => 'Use A and D to move, S to fire.',
'LBL_START' => 'Click To Start',
'LBL_GAME_OVER' => 'Game Over<br>(Click to play again)',
);A lényeg az, hogy a kulcs érték párokat kell kihalászni a stringből. ami itt fix kell hogy legyen:
- $dashletStrings[
- ] = array(
- =>
- )Az előbb leírt regexre tehát ez illeszkedik, csupán át szeretném írni, mert ugye a belseélyeben az array-nak gyakorlatilag bármi lehet...
Átírtam a regex-et erre, de így már nem működik, és nem látom mi a hiba benne:
(\$dashletStrings[ ,\n,\t]*\[[ ,\n,\t]*'){1}(.*)('[ ,\t,\n]*\]){1}[ ,\,\t]*(=){1}[ ,\,\t]*(array[ ,\n,\t]*\()(.*?)
Remélem érthető volt
Ezen az oldalon szoktam tesztelni:
http://regex101.com/ -
Karma
félisten
A greedy kifejezés a lehető legtöbb karaktert próbálja illeszteni, azaz ha több lehetőség is van, a leghosszabbat fogja választani. A lazy ezzel szemben a rövidebbet.
Mutatok egy példát, mert magyarázni nem igazán tudok ezen a héten:
Bemenet Regex Eredmény
almabeka kecskebeka ==> (.*)beka ==> 1 match: "almabeka kecskebeka"
almabeka kecskebeka ==> (.*?)beka ==> 2 match: "almabeka" és " kecskebeka"Az első a greedy, a második a lazy kifejezés. Aláhúzással jelöltem, hogy a zárójel mit fogott be a zárójel groupba. Fontos, hogy a kecske előtti szóköz is benne van! Csak azt nem tudom megformázni valamiért.
Látszik, hogy mivel a bemeneten a "beka" szöveg kétszer is szerepel, a greedy a végét vette figyelembe, az összes többi köztes karaktert (benne az első békát) behajította a zárójelbe. A lazy meg szétvágta és különvette a két illeszkedő mintát.
Egyébként a RegexPal a barátod, ha regexekkel foglalkozol: egy kísérletezésre alkalmas terület és még egy mini összefoglaló is a szintaxisról.
-
martonx
veterán
Ez esetben sok lehetőséged van. Van egyszer a beagle bord - szerver közötti adatút. És van a szerver - kliens közötti adatút.
Ezeket akár külön is bonthatod, hogy mondjuk a beagle Web API-n keresztül küldi az infót (C++-ból ez tűnik a legkézenfekvőbbnek), majd a szerver duplex WCF-en keresztül továbblöki a kliens felé (ez a része ha jól sejtem kész is van). A szerveren meg a Web API fogja meghívni a WCF-et (itt már C#-on belül vagyunk, ez egy triviális művelet).
Vagy mindent egyben kezelsz, és a szerveren egy szál Web API - SignalR kombó intézi az egészet akár egy szál konzol alkalmazásból / windows service-ből futtatva.
Az utóbbi megoldás sokkal szebb, az előbbi megoldáshoz meg sok komponensed már készen van, neked kell dönteni. És persze még biztos van kismillió megoldási lehetőség, én ez a kettő között ingadoznék.
-
martonx
veterán
Kettő dolog.
1. megint csak arról írtál, hogy eljutnak az adatok a szerverig, és ennek értelmében nem kell duplex kommunikációs, se signalr. Ez így igaz? A szerveren megállnak az adatok, és mindenki happy, vagy a server elkezdi a bejött adatokat "szórni" valamerre?
2. "egy biztos SignalR kizárva, mert NEM böngészőbe kell, hogy fusson" - félre ne érts, nekem teljesen mindegy mivel oldjátok meg, csak nem szeretném, hogy butaság hangozzon el a topikban, és esetleg ez másokat félrevezessen. A SignalR abszolút nincs böngészőhöz kötve! Mondhatni semmi köze hozzá, maximum annyi, hogy mára a legjellemzőbb, hogy minden böngészőben fut, ergo ott használják leggyakrabban. Illetve http web socket-tel kommunikál, de ez ne tévesszen meg.
-
Goose-T
veterán
How to create a JSON WCF RESTful Service in 60 seconds
You can thank me later. -
-
amargo
addikt
-
ubid
senior tag
Lehet picit rosszul fogalmaztam:
szóval olyanra lenne szükségem mint egy LIVE stream szolgáltatás , ami mondjuk a videót streameli és a kliensekre "szórja".
Csak nekem nem videót kéne streamelni, hanem kis adat csomagokat, de ugyan úgy folyamtosan.
Tehát: Elindítom a kliens programot, ami felcsatlakozik a service,re és folyamatosan tartja a kapcsolatot, a service pedig magától küldi állandóan az adatokat, (amit egy külső eszközről kap) lényeg, hogy nem a kliens fogja kiváltani az eseményt, hanem a serveren fog becsapódni egy esemény, amiből tudja, hogy most küldenie kell adatot.
-
martonx
veterán
Én így 2014-ben akkor már inkább egy asp.net web api-t javasolnék. Ennek a meghívásához aztán biztos nem fog kelleni semmilyen extra class library.
"Nekem pedig az kéne, hogy a WCF küldje folyamatosan az adatokat." - ezt kicsit részletezhetnéd. Oké, hogy nincs gombnyomás, de valami azért csak indukálná az adat küldéseket nem? Egy esemény, egy adat megváltozása valahol... Ha már Web API, akkor mondjuk SignalR-rel elég szépen le lehet kezelni ezeket az értesítéseket.
-
Karma
félisten
Milyen alkalmazás? Ha WPF, akkor van hozzá szofisztikált eszköz, WP-n és Store-n pedig van beépített counter.
Ú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!
- ÁRGARANCIA!Épített KomPhone i5 13400F 32/64GB RAM RTX 4060 Ti 8GB GAMER PC termékbeszámítással
- Mini PC, tiny PC HP Fujitsu Esprimo i5-7500T
- Csere-Beszámítás! Prémium vizhűtéses számítógép! I9 11900K / RTX 3090 / 64GB DDR4 / 1TB SSD
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9700X 32/64GB RTX 5070 12GB GAMER PC termékbeszámítással
- Bomba ár! Fujitsu LifeBook U7310 - i5-10GEN I 16GB I 256SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest