• ú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
    RUTHAN
    RUTHAN --- ---
    TOOMIX: Ja jsem na to koukal a ani to jsem to ted nepotreboval, takze spis ze by se mi to nekdy mohlo hodit..

    Ja tam, ale tu moznost vratit fakt jen 1 radek nikde nevidim/ nerozumim.. Aspon te tu, ktera by mi chodila, bez toho abych si to celou tu celou data table predtim nevysipat do dalsiho pole nebo neprochazel for each cyclem jako pole..

    A ty dalsi priklady, jmeno sloupce prece neni cislo radku. Nebo co mi unika?

    Mimochodem, kdyz zkusim tohle, coz taky jestli tomu spravne rozumim nejdriv vsechno nacte foreach cyclem..
    foreach (DataRow row in Sheet2.Select())
    {
    Console.WriteLine(row[0].ToString());
    Console.WriteLine(row[1].ToString());
    }
    Tak taky nedostanu cely radek, ale zda se vypis vsech hodnot z prvniho sloupce. Mozna je potreba jen tomuto selectu specifikovat spravny odelovat sloupcu? Se kterym si to ale jinak poradi, pouzivam stredik, ty aliasy z hlavicky fungujou skvele, takze tam autodetece odelovane funguje.

    Jeste jsem se na to dival..
    Kdyz se neco jmenuje row, tak bych cekal, ze to cislo v indexu je cislo radku, ktery chci.. // Ale on ve skutecnosti ten parametr znamena aspon nejakych prikladu sloupec.. ne cislo radku.. - nebo radek, kterymu dam index sloupce a vrati mi tu hodnotu v jedne jeho bunce.

    Datatable.rows - dle popisu rika, ze to vrati colleci radek - coz je mozna ten problem, collece znamena, ze je to urceny pro vic jak jeden 1 radek (slozitejsi object nez 1 string) a tim padem z toho hodnotu jednoho radku, coz je na co se ptam dostanu, az dalsich rozparsovanim.. nikoliv primo, coz je to co jsem hledal, nebo jsem si myslel, ze to puvodne dela.. oproti tomu, kdyz si ty csv data nactu jinak, do blbyho 2D textovyho pole, s radky muzu pracovat naprimo tak jsem to delal predtim, nez jsem pouzil tu datatable.
    TOOMIX
    TOOMIX --- ---
    RUTHAN:

    Ano, var x = datatable.Rows[0] vrátí první řádek. Pak už s tím děláš jen jako s x["Sloupec"].ToString() nebo x[2].ToString()

    Jestli to chceš globálně, dej si to jako statickou metodu a statickou proměnnou do statické třídy.


    Ale tohleto všechno se dá najít za pár vteřin googlení

    Get value of datarow in c# - Stack Overflow
    https://stackoverflow.com/questions/6497867/get-value-of-datarow-in-c-sharp
    RUTHAN
    RUTHAN --- ---
    Nebojte, me uz to az na 1 sloupec bez kteryho preziju funguje, takze tady uz pak zase nebudu otravovat :) Pomohli Toomix mi pomoh s tim hlavnim, ted bych to mohl jen udelat o trochu min prasacky..
    SADSOUL
    SADSOUL --- ---
    Unbook
    RUTHAN
    RUTHAN --- ---
    RUTHAN: Samozrejme muzu si to vymenovat, pres novy nacitani a zapisovani toho souboru, pokud by to jinak neslo.
    RUTHAN
    RUTHAN --- ---
    TOOMIX: To csv si muzu upravit, takze tam ty nazvy sloupcu uz mam.

    Ale porad se mi nedari dostat se k tem datum na radku, porad mi to vraci jen - System.Data.DataRow :
    Console.WriteLine("Data table: " + Sheet2.Rows[2].ToString());
    nebo
    string vyhnis = Sheet2.Rows[2].ToString();
    Console.WriteLine("Data table: " + vyhnis);
    K bunce se pres Console.WriteLine("Data table: " + Sheet2.Rows[2]["name"]); // Dostanu v pohode, cili na tom radku data jsou

    --------
    2) Pak jeste objektovy dotaz, ted mam v projektu tu metodu, pro vytvareni data table.. pak si v jiny metode vytvorim jeji objekt pres:
    DataTable Sheet2 = ConvertCSVtoDataTable(OutPutFilename);

    Ale hodilo by se mi udelat nejaky globalni DataTable object jestli to jde, tam bych mohl pres vic metod, pokud to nejde, tak si nejak mezi tema metodama jako vstupni parameter prehazovat, abych nemel dlouhej spahetgi kod.
    Mam prazdny projekt consolovou aplikaci s Mainem, zkousel jsem to dat hned po class, ale jako nejaky string.. ale tam dostavam hlasku, ze to neni staticky object.. Zkousel jsem v mainu definovat instanci:
    DlGenerator Instance = new DGenerator();
    Instance.ConvertCSVtoDataTable(OutPutFilename); // Ale to taky neni to prave.
    TOOMIX
    TOOMIX --- ---
    RUTHAN: pokud melo to csv na prvnim radku nazvy sloupcu, tak jsou i v datatable. Pokud chces radek, tak normalne

    System.Data.DataRow x = datatable.Rows[0]

    pokud chces hodnotu ze sloupce, tak bud index nebo nazev

    string val = datatable.Rows[0][3].ToString();

    nebo

    steing val = datatable.Rows[0]["Sloupec"].ToString();
    RUTHAN
    RUTHAN --- ---
    TOOMIX: Dik, akorat jsem jeste toho svyho staryho maslostroje musel pridat Referenci jinak to System.Data ani nenaslo.

    Nicmene tohle je ta cast, jak to nacist, ted jak s tim pracovat? Jestli to je elegatnejsi, zatim jsem nasel ten alias.. umim se dostat k dany bunce a vypsat si ji, ale nevim, jak se elegantne dostat k celymu radku..
    Console.WriteLine("Data table: " + Sheet2.Rows[2]["Region"]); // Bunka fajn..
    Console.WriteLine("Data table: " + Sheet2.Rows[2]); // Nefunguje dostavam jen jakou referenci na object nebo tak neco
    zkousel sem Sheet2.Rows[2][*].. ale to neni to pravy..
    TOOMIX
    TOOMIX --- ---
    RUTHAN: nacpi to do datatable a pak přes linq. Ta 3. odpověď s 59 hlasy

    c# - How to read a CSV file into a .NET Datatable - Stack Overflow
    https://stackoverflow.com/questions/1050112/how-to-read-a-csv-file-into-a-net-datatable
    SMOKY
    SMOKY --- ---
    RUTHAN: chatgpt is your friend :)
    RUTHAN
    RUTHAN --- ---
    Snad jednoduchy dotaz z domaciho praseni ve starym C# 2010 expressu, nacitam si csv do textovyho 2d pole.. potreboval bych pak pristupovat k jeho prvkum, pres nejaky pekne jmena sloupcu, ale nevim, jak do ty syntaxe nacitani dat ty jmena vrazit..

    Nacitam to tahle:
    1) var rows = File.ReadAllLines(OutPutFilename).Select(l => l.Split(';').ToArray()).ToArray();
    Pouzivam tahle:
    Console.WriteLine("\n Print data,16 row, 21 collumn:" + rows[15][20]); // Its from 0, 0 is header

    Nasel jsem nejaky hinty, ale tam se ty data nacitaj uplne jinym zpusobem, tak nevim jak to priohnout pro tenhle pripad.

    Potreboval bych to pouzivat nejaky aliasy pro jmena sloupcu ala, cili si je nejak pojmenovat:
    Console.WriteLine("\n Another solution, 16 row first 21 th column:" + rows[15][Region]);
    To csv uz ma hlavicku na prvnim radku se jmenama, ktery by mi stacila prepouzit nemusim nutne vymyslet novy.

    A rovnou pridam, pak bych s tim, takze replacovat nejaky idcka hodnotama z stejny tabulky/pole nejak elegatne:
    2) rekneme, ze ve sloupci 20 mam nejaky lidsky nesrozumitelny id
    v tom samy csv poli mam na radku XYZ , ktery potrebuji najit ve sloupci 5 (ten znam) to samy id a potreboval bych pro tohle id, dotahnout hodnotu ze stejnyho radku ze sloupce 7.. replacnout tu puvodni hodnotu v jiny radku v tom sloupci 20.
    Nepotrebuju nic joinovat atd, jen udelat csv citelnejsi z data, ktera uz tam jsou.. Misto VendorID 412 si tam dotahnout HorstaFuche..
    FREELA
    FREELA --- ---
    Zdravim. Hledam po sedmi letech novy projekt (.NET Core/C#) a vubec nevim "jak to ted chodi" :) Poradite nejaky server nebo spolehlivou agenturu?
    RENDALF
    RENDALF --- ---
    kdysi sem nekde narazil na plugin/addin/tool do VS, kterej rozsiroval callstact pri debuggingu. Delalo to jakousi takovou mapu, bylo mozne videt na jedne obrazovce vzdy cast kodu kolem jednotlivych breakpointu v ramci callstacku. Nevedel by prosim nahodou nekdo? Diky.
    TOOMIX
    TOOMIX --- ---
    The Awesome New LINQ Methods Coming in .NET 9!
    https://www.youtube.com/watch?v=l5RA_x-WbC8
    CERMI_FOX
    CERMI_FOX --- ---
    MORIARTY: jedu / jedeme azure a je to bezproblémové. Jen je třeba správně škálovat nebo seskupovat do app plánů, aby člověk neplatil zbytečně moc. Jak to má miliony featur, tak je něco nastavit je výrazně nepřehlednější než u nějakého obyč reského webhostingu.
    MORIARTY
    MORIARTY --- ---
    Ahoj, máte nějaký zkušenosti s nějakým hostingem? Doteď všechny naše webový aplikace hostujeme buď u zákazníka a nebo na našich win nebo linux serverech, ale přemýšlíme, jestli by nebylo jednodušší, bezpečnější a nebo levnější hostovat to někde jinde, třeba v azure. Asi se bude jednat jen o nové aplikace, které plánujeme dělat v Asp.Net Core 8.0 / MSSQL
    TOOMIX
    TOOMIX --- ---
    Novinky v C# 12 a .NET 8: Collection initializers, vylepšení lambda výrazů a atribut [Experimental]
    https://www.youtube.com/watch?v=wilBp8Ix9k0
    BRAP242
    BRAP242 --- ---
    TOOMIX: ja myslim ze winforms budou v day 3
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    jn, winforms by byly fajn. WPF jsem nikdy neprisel na chut... obecne mi prislo, ze funkcni pouzitelny GUI framework pro NET snad neexistuje, nastesti jsem to uz hrozne dlouho nepotreboval ;)
    TOOMIX
    TOOMIX --- ---
    URZA: na MAUI prechazime, protoze konci Xamarin a potrebujeme vyvijet pro Android/iOS, ale nas WinForms framework fakt prepisovat nebudeme, o to vic me mrzi, ze na to M$ kasle
    Kliknutím sem můžete změnit nastavení reklam