• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    MORMEGIL
    MORMEGIL --- ---
    TENCOKACISTROMY: To je dost vtipná konstrukce… Je vůbec samotná ta WS „thread-safe“ (můžeš z jedné session volat současně několik metod)? Cookies se v principu posílají tak, že v requestu pošlu všechny, co mám, v response mi přijdou _změny_, které mám aplikovat. Takže už samotná ta situace, že současně pošlu dva dotazy, načež mi současně přijdou odpovědi 1. nastav cookie C na hodnotu X, 2. nastav cookie C na hodnotu Y, je dost zajímavá.

    Ale samozřejmě to ve tvé situaci může prostě nenastávat, v tom případě může být reálná cesta IMHO leda ta varianta 3; nejdřív mě teoreticky napadlo podědit si CookieContainer a přepsat si ho na thread-safe, ale to v praxi nejde, protože tam nemají nic virtual. (Plus samozřejmě thread-safovost jednotlivých metod neznamená, že to bude fungovat jako celek, ale to už i viz výše.)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    Potrebuju pouzivat webovou sluzbou, a ta po me chce aby jsem mel cookies. Webova sluzba neni moje a nemuzu na tom nic zmenit.

    Ty jednotlivy metody mi muzou upravovat dotycny cookies. A ty metody potrebuju volat z vice vlaken. Koukal jsem se do dokumentace a trida System.Net.CookieContainer neni thread-safe. Co s tim mam delat?

    1) Mam se spolehnout na to, ze se mi to nezesere? To se mi moc nechce.
    2) Mam se pokouset detekovat, ze to je zesrany a pak to nejak napravit? To se mi chce jeste min.
    3) Mam mit nejakou "centralni" cookies a tu synchronizovat s tim, co mi prichazi z volani tech metod? To je docela vopruz, ale mohlo by to byt spravne.
    4) Neco jinyho?
    OODOOW
    OODOOW --- ---
    NECROMAN: na to je tam spešl funkce, takže nejjednodušeji asi takhle:

    s.Substring(0, 3).PadRight('*', s.Length);

    ale možná to není nejrychlejší :)
    MORMEGIL
    MORMEGIL --- ---
    NECROMAN:
    public static string ReplaceWithStars(string s)
    {
    	if (ReferenceEquals(s, null)) throw new ArgumentNullException("s");
    	return s.Length > 3
    		? s.Substring(0, 3) + new string('*', s.Length - 3)
    		: s;
    }
    
    [TestFixture]
    public class UnitTests
    {
    	[Test]
    	public void TestReplaceWithStars()
    	{
    		Assert.AreEqual("abc*****", ReplaceWithStars("abcdefgh"));
    		Assert.AreEqual("ABC*****", ReplaceWithStars("ABCDEFgh"));
    		Assert.AreEqual("a", ReplaceWithStars("a"));
    		Assert.AreEqual("abc", ReplaceWithStars("abc"));
    		Assert.AreEqual("abc*", ReplaceWithStars("abcd"));
    		Assert.AreEqual("***", ReplaceWithStars("***"));
    		Assert.AreEqual("", ReplaceWithStars(""));
    		Assert.Throws<ArgumentNullException>(() => ReplaceWithStars(null));
    	}
    }
    


    A dobrá soutěž teď vymýšlet problémy a omezení takového řešení. :-)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN:
    string MyStrFunc(string template) {
        return new StringBuilder(template,0,3).Append('*',template.Length-3);
    }
    


    Muzes vyzkouset, jestli to nebude rychlejsi nejprve s vytvorenim stringbuilderu s danou kapacitou teprve pak appendovat.
    Ochranu proti null atd... si zaridis sam :).
    NECROMAN
    NECROMAN --- ---
    Dotaz, jak byste nejcisteji napsali metodu, ktera pro dany string vrati jiny string, ktery bude mit pvni tri znaky stejne a misto dalsich hvezdicky?
    SAJAGI
    SAJAGI --- ---
    CERMINEK: Místo IndexOf raději http://msdn.microsoft.com/en-us/library/dy85x1sa.aspx . .NET je deklarativnější, než C++.
    CERMINEK
    CERMINEK --- ---
    Asi jsem na .NET vážně lama, ale potřeboval bych píchnout s přístupem k souborům. Čumím do MSDN a nějak mi to hlava nebere. Marně hledám klasické fopen, fclose...

    Potřebuji přistupovat ke svě souborům, kdy oba na začátku otevřu pokud existují, pokud ne tak je vytvořím. Po té z jednoho načtu hodnotu a tu budu v průběhu programu aktualizovat. U toho druhého pak chci zapisovat nové hodnoty vždy na konec souboru, aby se zachovaly již ty co tam jsou...
    Poradí někdo prosím? stačí vodítko... snad to dohledám...
    CERMINEK
    CERMINEK --- ---
    NIXX: jj už jsem na to přišel :-)
    NIXX
    NIXX --- ---
    CERMINEK: Jak jsi přišel na tu nulu? Kdyby ses obtěžoval přečíst si základní dokumentaci, věděl bys, že tam má přijít -1.
    String.IndexOf Method (System)
    http://msdn.microsoft.com/en-us/library/system.string.indexof.aspx
    LOOCAS
    LOOCAS --- ---
    CERMINEK: Regular Expressions?
    CERMINEK
    CERMINEK --- ---
    Jsem asi lama, ale nevím... Potřebuji v C# porovnat dva řetězce kdy mám jeden dlouhy a druhý referenční, když se v tom dlouhém kdekoliv objeví ten referenční, tak chci vykonat podmínku pokud ne jede se dál...

    Nyní to mám takto:
    if (htmlContent.IndexOf("neexistuje") != 0){
    continue;}

    Kód mi ale pořád skáče na continue i tam, kde nemá...

    NECROMAN
    NECROMAN --- ---
    Prave jsem si koupil tuto knizku, tak dam vedet, jaka je
    Windows Phone 8 Development Internals (Preview 1) available now - Microsoft Press - Site Home - MSDN Blogs
    http://blogs.msdn.com/b/microsoft_press/archive/2012/10/30/windows-phone-8-development-internals-preview-1-available-now.aspx
    ESY
    ESY --- ---
    taky se primlouvam za inno. Kdykoliv jsem ho potreboval tak fungoval jak mel :]]
    OODOOW
    OODOOW --- ---
    TENCOKACISTROMY: neprahnu, bylo to jen první na řadě
    dík, vyzkouším to Inno
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    OODOOW: Pokud vylozene neprahnes po MSI instalatoru ve VS2010 - koukni se na InnoSetup. Pouzivam ho nekolik let a narozdil od vsech ostatnich instalatoru - u tohodle jsem nikdy nenarazil na problem, kterej by mi trval vyresit dyl nez max. par desitek minut a hlavne to je uplne super jednoduchy aniz by jsi prisel o nejaky moznosti.
    OODOOW
    OODOOW --- ---
    měl bych dotaz k vytvoření MSI instalátoru ve VS2010:
    Mám svou windows service a podle návodu na netu se mi povedlo vytvořit Deployment Project, který mi to nainstaluje a dokonce to i hodí do služeb, potud dobrý. Dál bych ale potřeboval, aby se mi do cílového adresáře, kam se to nainstaluje hodil i adresář s sql souborama, mám ho v solution, ale nevím jak to nastavit, aby se mi vložil i do té instalace.
    K0TEL
    K0TEL --- ---
    H_U_N_T_E_R: to prave neproleze, pac se to tvari jako ze ho to asp neumi overit ... membership ho proste neoveri a napise to ze to neumi zpracovat HTTP stranku
    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    K0TEL: cmdlet pro webservice proxy bere jako parametr credentials, takže něco takovýdleho by mělo projít:
    $cred = Get-Credential
    $ws = New-WebServiceProxy -Uri 'www.mojeservice.cz' -Credential $cred
    Kliknutím sem můžete změnit nastavení reklam