Új hozzászólás Aktív témák
-
Keem1
addikt
Estét emberek! Tudom, nem teljesen témába vág, de hátha valakinek gyakorlati tapasztalata van. Most szedtem le a Visual Studio 2013-at MSDNAA-ról, de éveken keresztül VS 2008-at használtam. Van 2-3 hobbiprojektem, ha most a 2013-ra átváltok, esélyes, hogy lesznek kompatibilitási problémák a régivel készült projekteknél? Anno Delphi-nél bizony voltak. VS-ben most külső cuccokból leginkább SQLite meg MySQL kiegészítőket használok.
Előre is kösziSzerk: a VS-nek csak a C# része érdekes, más nyelven nem használom a 2008-at se.
[ Szerkesztve ]
-
Keem1
addikt
Emberek, nem vagyok sem kezdő, sem profi C#-ban, de nem jövök rá az alábbi probléma kulcsára.
Adott a következő kód:
DateTime remdate = DateTime.ParseExact(String.Format("{0}:{1}", udHours.Value, udMinutes.Value), "HH:mm", CultureInfo.InvariantCulture);
//remdate = remdate.AddDays(1);
TimeSpan time_span = remdate - DateTime.Now;
MessageBox.Show(String.Format("{0} nap {1} óra {2} perc {3} másodperc van hátra", time_span.Days, time_span.Hours, time_span.Minutes, time_span.Seconds));Az udHours és az udMinutes numericupdown kontrolként van jelen az ablakban, user által beállított órát és percet reprezentál.
- A cél: kijelezni, hogy a beállított órához és perchez képest mennyi idő van hátra az aktuális időpillanattól számítva. Ez tökéletesen működik, ha az óra és perc nagyobb, mint az aktuális.
- Ahol elbukik a dolog: ha az adott idő már eltelt, hibával elszáll a program (ez érthető is), de a cél az lenne, hogy akkor a következő (holnapi) időpontot számolja.Ötletek esetleg?
-
Keem1
addikt
"melyik sor, és ami még fontosabb, milyen exceptiont dob?"
Bocs, jogos
A kódomban az első sor a ludas, és a hibaüzenet: "A karakterlánc nem értelmezhető érvényes DateTime értékként"Szerk:
"Helyette formázd két számjegyre az értékeket"
Na így viszont már nincs exception, hanem negatív előjelű óra
Azt hiszem, így viszont már meg tudom oldani, de ha mégse, még úgyis sikítokKöszönöm a tippet!
[ Szerkesztve ]
-
Keem1
addikt
Lejárt a szerkesztési idő, de ez lett a végeredmény
Még egyszer köszönöm! -
Keem1
addikt
válasz Peter Kiss #5679 üzenetére
Igen, végülis ez is működik, kicseréltem rá, csak kellett egy Convert.Double(), mert nem fogadta el a vezérlő értékét anélkül.
[ Szerkesztve ]
-
Keem1
addikt
válasz #32839680 #6267 üzenetére
Én így használom a gyári DLL-lel. Ha érdekel, van egy kész sample-m, ebből származik az alábbi:
string DbFilePath = "e:\\Home\\teszt.s3db";
SQLiteDatabase db = new SQLiteDatabase(DbFilePath);
DataTable recipe;
string QueryStr = "SELECT username, fullname, email FROM im__users";
recipe = db.GetDataTable(QueryStr);
dataGridView1.DataSource = recipe;Bocs, ha már olvastad a hsz-t, kérlek, frissíts, mert egy csomó mindent kihagytam belőle
[ Szerkesztve ]
-
Keem1
addikt
Emberek, elsősorban PHP-ban és C#-ban is járatos kollégák tanácsára, segítségére lenne szükségem.
Adott egy PHP-ban tökéletesen működő reguláris kifejezés, ami valahogy egyáltalán nem akar működni C# alatt, pedig szükségem lenne rá.A PHP-ban perfektül működő kód:
preg_match('/og:image"\s*content="([^"]+)"/', $content, $matches);Ez akarna lenni a C#-os verzió:
Match talalat = Regex.Match(Content, 'og:image"\s*content="([^"]+)"', RegexOptions.IgnoreCase);Fordításnál kapott hiba:
"Unrecognized escape sequence", és a \s részhez mutat az üzenet.Sajnos a regex kifejezést muszáj lenne megtartanom, mert a PHP-s és a C#-os programok részben ugyanazt a feladatot végeznék és ehhez szükségem lenne arra, hogy az a művelet, ahová szánom mindkettőt, az megegyező eredmény sztringet generáljon.
Minden ötletet, javaslatot előre is köszönök! -
Keem1
addikt
Huhh, harmadik olvasásra fogtam fel, amit mondasz. Hiába, mostanság túl sok volt a PHP és túl régen a C#, már látom hogy hülyeséget csináltam
Viszont úgy tűnik, hogy az eredmény nem azonos.
Míg a PHP eredményül csak az og:image kép URL-jét adja eredményül, addig a C# ugyanarra a kifejezésre az og:image résztől kezdve a meta tag végéig az egész sztringet visszaadja.
Esetleg ötlet, hogy mitől lehet? Ettől függetlenül természetesen nagyon köszönöm az útmutatást.Hopp, máshol is ezt mondták, tehát egyértelműen alapvetően a saját hülyeségem a hiba oka, mindenkinek feltűnt, csak nekem nem.
Viszont akkor tényleg új probléma van, hogy sajnos nem a tiszta kép url-t kapom, hanem némi felesleggel megspékelve: [link]
#6611 Karma: meglesed ezt a fenti linket? Itt szerintem látni fogod, ha futtatod. PHP csak a kép url-t adja vissza.
[ Szerkesztve ]
-
Keem1
addikt
válasz Neil Watts #6845 üzenetére
Látom, kaptál tippeket, de azért bemásolom az én verziómat.
function convertString(phrase)
{
var returnString = phrase.toLowerCase(); // Ez nem biztos, hogy kell neked
returnString = returnString.replace(/á/g, 'a');
returnString = returnString.replace(/é/g, 'e');
returnString = returnString.replace(/í/g, 'i');
returnString = returnString.replace(/ö/g, 'o');
returnString = returnString.replace(/ő/g, 'o');
returnString = returnString.replace(/ü/g, 'u');
returnString = returnString.replace(/ű/g, 'u');
returnString = returnString.replace(/ú/g, 'u');
returnString = returnString.replace(/ó/g, 'o');
return returnString;
}PHP-ban csináltam, ott egy lépésben, tömb segítségével regex megoldotta. Persze a listát lehet bővíteni tetszés szerint.
[ Szerkesztve ]
-
Keem1
addikt
Srácok, ötletre lenne szükségem.
Adott egy desktop win app, ahol futásidőben x db képet kéne megjelenítenem, a képek száma nem limitált, 0 és végtelen között bármi lehet.A háttere a dolognak:
A program egy webes json adatot kap (System.Net.WebClient), amiben van egy tömb pár url címmel (thumbnail, normál) és caption-nel.
A cél, hogy a kapott thumbnaileket megjelenítsem, ráírva a caption-t és kattintásra böngészőben megnyíljon (normál kép).A json letöltése, feldolgozása pipa, lesz egy struct tömb végeredményben (caption és az url-ek). A kattintásra böngészőnyitás szintén megoldott.
A thumbnaileket kéne valahogy megjeleníteni, de úgy, hogy tudjam, hogy melyik melyik.Én így gondoltam: felteszek egy panelt, és valahogy foreach-csel rádobálom a pictureboxokat. Ez így működhet? Jelenleg tervezési fázis van, még egy karakternyi forráskódot se gépeltem be. Ha valakinek van jobb ötlete, ne tartsa vissza. Ha maradna a fenti, hogy tudom megkülönböztetni, hogy melyik picturebox melyik elem a struct tömbben? Fontos lenne, mert az adatokat (kattintást is) SQLite adatbázisban tárolnám.
[ Szerkesztve ]
-
Keem1
addikt
válasz bandi0000 #7785 üzenetére
Ezt nem értem igazán
"if, hogy ha escepe akkor csinálja, különben csináljon mást, csak ez a más a semmi kéne hogy legyen"
Mondjuk elhagyod az else ágat?Pl (nem ellenőrizve):
if (Console.ReadKey(true).Key == ConsoleKey.Escape)
Ha félreértettem a célt, akkor elnézést, nem kotnyeleskedni akartam, csak így elsőre nem áll össze a kérdésed.
[ Szerkesztve ]
-
Keem1
addikt
Srácok, iránymutatást kérnék. Előrebocsátom, hogy PHP-ban jobban otthon vagyok, mint C#-ban, de ez sem teljesen idegen számomra.
Megörököltem a cégnél egy "Terike néni feladatát megkönnyítendő" windows forms alkalmazást. Csak desktop, csak Windows 7/10, eddig egyszerű. A program a cégnél más, különböző alkalmazások, ill. a webes rendszer által generált egységes XML-ből szedi ki a szükséges adatokat és teszi be az adott gépen futó adatbázisba (kvázi innen-onnan gyűjtött XML-ből helyi adatot konvertál).
A program kezelője a formon csak simán bekkattintotta a fájlokat, mehet gomb, kilép gomb. Ez már működik.
Felmerült, hogy task schedulerből kéne időzítetten is működtetni, tehát parancssorral indíthatóvá kéne tennem.Valahogy így:
programom.exe bemeneti_file.xml mit_csinaljon_veleAmi eddig megvan:
Form1_Load(object sender, EventArgs e)
{
..
string[] args = Environment.GetCommandLineArgs();
if (args.Length > 1) FromConsole(args);
...
}Az
args
tömb első (0.) eleme az exe útvonala, ezért ha a mérete nagyobb 1-nél, akkor parancssorból kaptuk az adatokat, meghívjuk aFromConsole()
metódust. A második paraméter a fájl lesz, eddig pipa, az eddigi tallózás helyett (létezési ellenőrzéssel) már meg is van a fájlunk. A második az a művelet, amit szeretnénk tenni vele. Itt kéne optimális esetben az adott gomb eseményét meghívni, ennek végén pedig egyClose()
lesz.- tudok-e úgy hívni egy gomb eseményt, hogy a nevét ismerem sztringként (parancssori paraméter)?
- tudom-e ellenőrizni, hogy a metódus létezik-e?
- mennyire jó ötlet rögtön így hívni egy eseményt? és ha nem stimmelnek a metódus paraméterei?
- ha valami beüt (nem valószínű, de esetleg hibaüzenet, felhasználói interakcióra várás), kilép-e a program simán egy Close() esetén? -
Keem1
addikt
válasz Alexios #7869 üzenetére
Ettől féltem én is. Fog majd utálni az, aki utánam kapja meg ennek a továbbvitelét
Hogy lehetne ezt becsületesen, szépen áthidalni?
Csináljam meg szépen a parancssoros metódusokat, ugye?Közben úgy tűnik, a legutolsóra találtam megoldást. Amúgy is van naplózás SQLite db-be, ami
MessageBox.Show()
stílusú üzenet, azokat kiszedem, és csak a naplóba megy (eddig egymás mellett volt mindkettő), így ha jól tippelek, aFromConsole()
végén lévőClose()
már nem lehet akadály, ha a hibák jól le vannak kezelve...[ Szerkesztve ]
-
Keem1
addikt
Már elkezdtem, csak eleinte ódzkodtam tőle, mert rengeteg esemény van (ahogy írtam, én is örököltem), de hosszútávon ez tűnik a logikus lépésnek. Ha minden igaz, exception kezelés rendben van, még a loggolást kell jobban átszerveznem. Ráadásul úgy tűnik, csak a legfontosabb funkciókat kell tudnia parancssorból indítva tudnia, így könnyebb lesz kicsit.
Bár nagyobb meló, de úgy tervezem, hogy a metódusokat kiteszem egy osztályba, ahogy javasoltad, a Form-éban csak a gombok kezelői, meg a parancssor lekezelése lesz.
Remélem, a kitartásom a közepén is megmaradAzt hogy tudnám megoldani, hogy egy nagyobb XML foreach-es végigjárása alatt is frissüljön a GUI és ne fagyjon be, míg végig nem szalad az állományon?
Durva példa (nem copy, itthonról, fejből):
foreach (XmlNode node in Blabla)
{
foreach (XmlNode child in node.ChildNodes)
{
}
}Addig, míg esetleg egy 100-150 MB-os fájlon a foreach végig nem megy, addig semmi visszajelzés nincs, hogy hol tart, mit csinál éppen.
[ Szerkesztve ]
-
Keem1
addikt
Srácok, egész jól kiszerveztem a metódusokat egy class-be, sőt, egy helper osztályt is készítettem. Viszont eléggé bőbeszédű lett a kódom.
Így néz ki a kiszervezésem:
namespace XmlProcess
{
class Base
{
}
class Helper
{
public static void EzEgyMetodus()
{
}
}
}Viszont a Winformsból így tudom használni:
XmlProcess.Helper.EzEgyMetodus();
Lehet rajta egyszerűsíteni, hogy ne kelljen a namespace.class.metódus() szentháromságon mindig végigmenni, vagy fogadjam el, hogy a strukturálásnak, átláthatóságnak és a kiszervezésnek ennyi hátránya van?
[ Szerkesztve ]
-
Keem1
addikt
Na ez magamtól nem jutott volna az eszembe.
A using deklarációval próbálkoztam, de nem fogadta el, most már tudom, hogy mert a class nem volt static.
Azzá tettem, így már működik.Szerk:
Elkiabáltam (nem fordítottam le), mégse működik.using static XmlProcess.Helper;
"Identifier expected; 'static' is a keyword"using XmlProcess.Helper;
"A using namespace directive can only be applied to namespaces; 'XmlProcess.Helper' is a type not a namespace"Jó ez a C#, de rengeteget kell még tanulnom. A programozás, mint olyan nem idegen nekem, pláne 7 év (nem folyamatos) PHP után.
[ Szerkesztve ]
-
Keem1
addikt
Php-ban Codeigniter framework-öt használok, abban jók a helperek, készült saját is melléjük. De a C#-ot még nem vágom jól
Kerestem ide is FW-t, de csak SQLite-hoz találtam, az is kezdetleges helpert tartalmaz.
A bind-olás jól hangzik, utánanézek a mikéntjének.[ Szerkesztve ]
-
Keem1
addikt
Megint én.
Metódusnak paraméterként hogy tudnék átadni egy nem példányosított, adatokkal feltöltött dictionaryt?Valami ilyesmi kéne:
CsinaljValamit(Dictionary<string,string>() { {"kulcs","ertek}, {"kulcs","ertek"} })
A metódus egyetlen paramétere egy kulcs-érték párokat tartalmazó <string,string> Dictionary.
Köszönöm!
#7883 adam014:
Hűha, ez nagyon gyors volt, köszönöm!
Akkor jó felé kapisgáltam, "csak" a new maradt le. Tekintve az eddigi C# előéletemet, lehetek egy picikét büszke magamra? Rád pedig, persze nagyon[ Szerkesztve ]
-
Keem1
addikt
Srácok, mit rontok el?
KódA
Dictionary<string, List<string>> travel_data = new Dictionary<string, List<string>>();
id-ját (string) ki tudom íratni, de aList<string>
elemeit már nem.Egyébként létezik olyan univerzális dump, ami a paraméter változó, objektum, stb. adatait strukturáltan kiírja, mint pl. php-ban a
print_r()
? Ilyen esetben nagy segítség lenne, hogy ténylegesen mi van az adott változóban.Ez a kimenet (az adat résznél (belső foreach) üres sorok):
Nyomjunk egy billentyűt a kezdéshez!
Beolvasandó fájl: TOROKORSZAG39.xml
=== Kész! 00:00:01.11 ===
YS4257=====
TMLMB4259=====
ADWP4282=====
SLR4284=====
TBRH4293=====
[ Szerkesztve ]
-
Keem1
addikt
válasz harylmu #7906 üzenetére
Valóban érzékeny adat, így csináltam egy lecsupaszított verziót
Az alapötlet onnan származik, hogy az eddigi DOM parsert akarom átírni, mivel adott esetben több száz, vagy akár GB-on felüli XML is létezik, így a ram telítődés (és a swappolás) hátrányai rögtön jelentkeznek. Ez az előbb 26 másodperc alatt szaladt végig egy kicsit több, mint 1 GB-os példányon, csak épp működésre bírni nem tudom.Köszönöm a segítséged!
Basszus!
Szerintem rájöttem a hibára!travel_data[id].Add(xmlReader.Value);
HELYETT:travel_data[id].Add((XNode.ReadFrom(xmlReader) as XElement).Value);
Lassan kiderül, hogy én bizony csak egy kontár vagyok...
[ Szerkesztve ]
-
Keem1
addikt
-
Keem1
addikt
Szerintetek mitől van az, hogy egy SQLite lekérés ugyanazzal a queryvel C# appban sokkal lassabb, mint egy adatbáziskezelőben (DB Browser for SQLite 3.10.1)?
Az SQL valami ilyesmi:
SELECT T1.field1, T2.field2, T3.field3 FROM table1 T1 LEFT JOIN table2 T2... WHERE ... LIMIT 10
DB Browser: 4 rows returned in 237ms
C# console app: Kész! 00:00:01.29
MySQL (phpMyAdmin, böngészőben): Sorok megjelenítése 0 - 3 (4 Összesen, A lekérés lefutott 0.1508 másodperc alatt)Azért az is durva, hogy a MySQL böngészőben, másik gépről kevesebb mint fele idő alatt lefutott (150 ms), mint az aprócska, és helyben lévő SQLite (237 ms). Kezdek kiábrándulni a helyben tárolt adatokhoz használandó SQLite-ból.
[ Szerkesztve ]
-
Keem1
addikt
Lehet, én voltam a hülye
A második táblára rátettem egy PK-t, így 30 ms ugyanaz a lekérdezés.
Hiába, nem sikerült tökéletesen importálni MySQL-ből néhány táblát. Ezen még dolgoznom kell.Ettől függetlenül azért érdekes, hogy a DB Browsernek simán ötöde volt így is. Most 40-50 ms, az én appomban pedig 30-40 ms a lekérdezés.
A MySQL megmaradt 100 körül, de ott alapból megvolt a PK, az csak a MySQL->SQLite importkor mászott le.[ Szerkesztve ]
-
Keem1
addikt
válasz harylmu #7950 üzenetére
Stopwatch-csal mértem, igen, belevettem a Console.WriteLine() kiíratást is. Amúgy gyanúsan lassú volt előtte, SQL-ben ugyan nem vagyok istenkirály, de tán pár év PHP+MySQL után amatőrnek se számítok, így nagyon elgondolkodtam. Már jó, 40 millisec alatt van 10 és 350 elemű kiírással együtt is.
-
Keem1
addikt
Srácok, hová érdemes inicializáló dolgokat tenni? Olyan metódus kéne, aminél már a form betöltődött, de felhasználói interakció még nem kivitelezhető.
Ha letörlöm az adatbázis fájlt, akkor van, hogy 300-600 ms ideig is elszöszöl, míg létrehozza az adatbázist, az alap táblákat, meg az amúgy is szokásos alapbeállítások alkalmazódnak. A beállítások betöltése majd érint(het)i a form elemeit is (pl. listbox feltöltése).Egyébként egész megbarátkoztam az SQLite-tal
Alapvető különbségek vannak MySQL-hez, meg úgy általában a non-local adatbázisokhoz képest. Pl. a tranzakciókezelés jó barátom lett sok adat egyidejű módosításakor. Pl. amikor teszteltem, volt hogy 1000 db random string beírása külön-külön 7 másodpercet vett igénybe, tranzakcióval meg 2-300ms.Ha jól sikerülnek most a dolgok, akkor a saját későbbi munkámat könnyíthetem meg azzal, hogy kevesebb feladathoz hívnak személyesen oda.
-
Keem1
addikt
Maga az alkalmazás. Most a Load-ban vannak ezek a cuccok, de míg nem ért véget, a form meg se jelenik. Tudom, nem sok idő, nem másodpercekről van szó, de akkor is szeretném, ha előbb bejönne a form (userünk tudja, hogy él a program), majd a db dolgok, és végül hozzá lehet látni a munkához.
Sima WinForms applikáció. -
Keem1
addikt
A stack egy olyan tárolási elv, amikor az először bekerülő adat a tároló aljára kerül, a többi rá. Mindig a legfelső adatot éred el, míg az alján lévőt csak akkor, ha kikerült a többi a tárolóból.
First in, last out.Huh mennyi memória számítási feladat volt a fősulin
De ezt progmat szakon nem tanítják? Én mondjuk mérnök informatikus szakot végeztem, ahol a hardver legalább olyan súlyos volt (ha nem súlyosabb), mint a szoftver.
[ Szerkesztve ]
-
Keem1
addikt
válasz joysefke #8022 üzenetére
Csak halkan kérdezem: egy zenestream szolgáltatás nem lenne egyszerűbb? Spotify, Google Play Music, Deezer, Apple Music, stb.
Ezres körüli előfizetési díj, több tízmillió zene, és sohat többet nem kell zenét nagy macerával előtúrni, letölteni, esetleg konvertálni.
Csak meg kell keresni, bekattintani (esetleg listához adni) és már hallgatható. Előfizus konstrukcióban van offline mód is. Ja, és vannak edzéshez, futáshoz való listák (is).Én két és fél éve vagyok előfizető, az elején még nem gondoltam így, de mostanra már az a véleményem, hogy youtube-bal, to..enttel bohóckodjon az, akinek két anyja van
[ Szerkesztve ]
-
Keem1
addikt
válasz zsolti_20 #8078 üzenetére
Nem tudom, mennyire kell igényesnek lennie, de talán van egy tippem, ha annyira nem.
Pár éve mókoltam teszt jelleggel hasonlót én is, de nálam nem volt külön szerver program, hanem a kliensek egy DBMS adatbázissal kommunikáltak, oda ment a duma, a kliensek pedig időnként rácsekkoltak, van-e nekik új beszéd.
Nyilván nem a legelegánsabb, legigényesebb megoldás, sőt! De ha a feladat elvégzéséhez és nem díszdobozos prémium apphoz kell, ez egy működőképes, viszonylag gyorsan összehozható cucc lehet. Én amúgy MySQL-t használtam hozzá.Persze, ha nem ez a cél, nyugodtan tekintsd a javaslatomat tárgytalannak, úgyis jön nálam rutinosabb topiktárs hogy javasoljon neked jobbat
-
-
Keem1
addikt
Srácok, bizonyára lesz olyan, aki emlékszik rá, hogy nagy xml-ekkel dolgozom.
A korábbi megoldásom az volt, hogy
XmlDocument
+XmlNode
, amíg az XML befért a memóriába. Mostanra sok lett az, ami nem fér be.
Új megoldást találtam ki: alapvetőenXmlReader
(ez a nagy XML), és amelyik node épp kell, azt beolvasom DOM-ba.using (XmlReader xmlReader = XmlReader.Create(docUrl))
{
while (xmlReader.ReadToFollowing("product"))
{
if (xmlReader.Name.Equals("product") && (xmlReader.NodeType == XmlNodeType.Element))
{
XmlDocument xmldoc = new XmlDocument();
XmlElement root = xmldoc.CreateElement("product-export");
xmldoc.AppendChild(root);
XmlNode node = xmldoc.ReadNode(xmlReader);
}
}
}Így elvileg egy node-ot tartok a ramban, mindig amivel épp dolgozom. Működne is a korábbi megoldásom az által, hogy a node nevű aktuális csomópont ugyanúgy megvan, csak eddig DOM-ból foreach-csel körbejárva, így meg mindig csak egy van beolvasva.
Igen ám, viszont előállt egy olyan gond, hogy midegyik node mellé társul egy#whitespace
elnevezésű üres cucc, amit az eddigi kód megpróbál feldolgozni.
Tehát most anode.ChildNodes.Count
= (régi)node.ChildNodes.Count *2
, mivel van egy#whitespace
nevű érvénytelen node-om is.
Ezt hogy tudnám kiszedni? És mitől keletkezett? Így kell elképzelni: [kép][ Szerkesztve ]
-
Keem1
addikt
Srácok, window 10-féle menüvel próbálokozom, nyitás-csukás animálva.
KódAmíg nem volt async a menü mozgatása, bármilyen animációs idővel működött, ám pl. egy életszerűtlen 1 másodperces időnél, amíg az animáció le nem futott, addig kb. kattintani se lehetett. Ilyennel még nem foglalkoztam, de gugli ugye a barátunk, rájöttem, tegyem az ilyen metódusokat async-é. Működik mondjuk 150 miliseccel, de pl. 300-zal vagy 500-zal már lefagy az egész.
Miért? -
Keem1
addikt
válasz harylmu #8141 üzenetére
Sajnos nem.
An unhandled exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll
F5-tel ezt kapom. 150 ms-ig nincs probléma egyik megoldással sem.
Viszont ennél a hibaüzenetnél nem jelzi a VS, hogy melyik programsor okozza a hibát.Megvan a hiba oka! Túl magas delay-nél a MouseLeave() esemény okozza, elmozdítom az egeret, amire össze kéne csuknia a menüt, ám mivel a panel még nem érte el a nyitott végértékét, hibát dob.
[ Szerkesztve ]
-
Keem1
addikt
válasz #40351744 #8146 üzenetére
502-es hiba, azaz szerver oldali.
Esetleg gond lehet, ha useragent string nélkül akarsz hozzáférni. (Mi szűrtük szerver oldalon bizonyos lapoknál a "noname" kliensek hozzáférését).Én azért megpróbálnám egy IE-re felparaméterezett webclient elérést is, teszt jelleggel - mintha böngésző lenne.
[ Szerkesztve ]
-
Keem1
addikt
Skacok, ketten dolgozunk egymástól távol azon a bizonyos XML-es projekten.
Az van, hogy különböző XML-hez különböző osztályt használunk (pl. MarikaNéni.xml -> class ParserMarika).
Mindegyik specifikus osztály egy "csontváz" osztálytól öröklődik. A csontváz osztály csak XML fájloktól független metódusokat tartalmaz (SQLite adatbázis kapcsolat felépítése, online állapot ellenőrzése, alap üres változók, stb.), ezért valójában majdnem üres. Meg tudom tiltani, hogy "véletlenül" a kolléga egy eseménynél a csontváz osztályt példányosítsa? Tehát példányosítani ne, csak örököltetni lehessen.Nem életbevágóan fontos dolog, ha nincs ilyen, túléljük, de minden hibalehetőséget szeretnék kizárni.
-
Keem1
addikt
válasz Peter Kiss #8165 üzenetére
Nem...
Egészen pontosan micsoda? -
Keem1
addikt
válasz Peter Kiss #8169 üzenetére
Helyi cache
Nagy mennyiségű adat érkezik innen onnan, de azok xml-ben. A vélhetően ritkábban változó anyagot letároljuk SQL-ben. Mindenhez van crc32, így nyomon követhető a változás
Elég bonyolult a szitu, én is csak örököltem a feladatot. Programoztam azelőtt c#-ban, de az elmúlt kb 4 év szinte csak PHP volt[ Szerkesztve ]
-
Keem1
addikt
válasz Peter Kiss #8172 üzenetére
Nem memóriában, diszken
És több feldolgozásét is, amikor az XML-ek már rég a levesben vannak. Nem mondom, hogy ez így tökéletes, de évek óta működik. Én csak javítani próbálok rajta, meg újításokat bevinni. -
Keem1
addikt
válasz Peter Kiss #8176 üzenetére
Nem-nem. Nem kell ezt túlmisztifikálni, ez egy relatíve egyszerűbb rendszer. Időpazarlás lenne az egészet újraírni oly módon, ahogy azt egy jó programozó hozná ki.
Biztos nem tökéletes, ehhez kétség nem férhet, még csak jó programozónak se tartom magam, de egyvalami biztos: ez a program jelenleg tökéletesen elvégzi a feladatát, és az adminisztrátor csajoknak rengeteg melót levesz a válláról, amiket excelben kellene utólag kivitelezni.
Amúgy naponta félmilliós nagyságrendű import van (ill. inkább csak az adatok ellenőrzése, mert végül nem kerül a rendszerbe az, aminél nem történt változás).Ez a partnerektől (kb. 150 db) származó nem egységes (=kb. 150-féle eltérő) adathalmazt, XML-t dolgozza fel és alakítja át a rendszerünk által emészthető formátumba. Minden ügyintézőnek meghatározott partnerei vannak, akiknek az adatait betallózza, majd ha a rendszerben megjenentek a friss árak, akkor napközben azzal dolgoznak.
Dióhéjban ennyiJa, egy szösszenet tavalyról. Szólt az egyik ügyintéző az egyik olasz partnernek, hogy kéne egy XML export. Vakarta a fejét, megkérdezte a webmestertől. Ő is vakarta. Majd kaptunk egy XML-t. A honlapjuk HTML kódjának valami XML-be erőltetett verziója volt És nem akarták először elhinni, hogy mi nem erre gondoltunk.
[ Szerkesztve ]
-
Keem1
addikt
Szeretnék egy kis segítséget kérni, hogy miért tér el a PHP és a C# által generált CRC32 hash.
Fontos lenne, hogy megegyezzen.Forráskódok:
hash.php
Program.cs
System.Security.Cryptography.Crc32.csHa valakinek van ötlete, kérem, ne tartsa magában
-
Keem1
addikt
válasz sztanozs #8253 üzenetére
Úgy valóban kérdőjeles a szöveg, de csak ASCII karakterek esetén se egyezik a hash.
Azt hittem, hogy a crc32 univerzális, nem lehet máshogy generálni MD5 esetén nincs ilyen probléma, de ahová ez kell, ott fontos, hogy rövid ujjlenyomatot képezzek, a 32 karakter már sok.Ezt módosítottam, de ekkor se egyezik a PHP-s eredménnyel:
string probaszoveg = "english alphabet only";
string hash = String.Empty;
Crc32 crc32 = new Crc32();
foreach (byte b in crc32.ComputeHash(Encoding.ASCII.GetBytes(probaszoveg))) hash += b.ToString("x2").ToLower();
Console.WriteLine("Szöveg: " + probaszoveg);
Console.WriteLine("Szöveg (byte): " + Encoding.ASCII.GetString(Encoding.UTF8.GetBytes(probaszoveg)));
Console.WriteLine("CRC32 hash: " + hash);Kimenet:
Szöveg: english alphabet only
Szöveg (byte): english alphabet only
CRC32 hash: b5c4fd8d
A folytatáshoz nyomjon meg egy billentyűt . . .PHP:
Szöveg: english alphabet only
CRC32 hash: e9032c43[ Szerkesztve ]
Ú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!