Avatar
Tayson
Člen
Avatar
Tayson:

Zdravim

Je mozne mat textovy subor a potom si ho otvorit a citat od posledneho riadku cize od konca smerom nahor cize na zaciatok? Ako to docielim ?

 
Odpovědět 19.11.2013 10:17
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tayson
David Čápka:

IMHO to není možné. K čemu to potřebuješ?

Nahoru Odpovědět 19.11.2013 10:21
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Tayson
Petr Nymsa:

K čemu to potřebuješ ? Načti si do pole všechny řádky a pak je čti obráceně ;)

Nahoru Odpovědět 19.11.2013 10:21
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Tayson
Člen
Avatar
Odpovídá na Petr Nymsa
Tayson:

Potrebujem to pretoze mam nejaky textovy subor do ktoreho zapisujem nejake logy a tento subor textovy ma niekedy aj 200 MB a nechcem cely nacitat ale len od konca mozno nejakych 30 riadkov sa vratit a najst si retazec textovy co potrebujem

 
Nahoru Odpovědět 19.11.2013 10:27
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tayson
David Čápka:

Můžeš to číst řádek po řádku a přeskočit tak určitou část souboru a až zbytek si ukládat do nějakého pole, které potom otočíš. Pokud víš, že třeba potřebuješ 10% souboru od konce nebo přesně víš od jakého řádku to chceš, neměl by to být problém.

Editováno 19.11.2013 10:37
Nahoru Odpovědět 19.11.2013 10:37
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Tayson
Člen
Avatar
Tayson:

A neviem si zistit nejakym sposobom ake cislo ma posledny riadok a potom stale zmensovat o jedno co ja viem nejakych 30 riadkov a hladat posledny retazec ?

 
Nahoru Odpovědět 19.11.2013 10:41
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tayson
David Čápka:

Jelikož nevíš kolik bajtů má jeden záznam, tak v souboru nemůžeš skákat. Každý řádek je zakončen speciální sekvencí znaků, což označuje jeho ukončení. Jelikož nevíš kde ty sekvence jsou, můžeš číst jen shora dolů.

Nahoru Odpovědět 19.11.2013 10:49
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Tayson
Kit:

Použij program tail.

Nahoru Odpovědět 19.11.2013 10:55
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Tayson
Člen
Avatar
Odpovídá na David Čápka
Tayson:

Ale tak neverim ze si nemozem dat vypisat dajme tomu iba piaty riadok z textoveho suboru.

 
Nahoru Odpovědět 19.11.2013 10:59
Avatar
Tayson
Člen
Avatar
Odpovídá na Kit
Tayson:

Ten program tail mi len bude vypisovat to co je v textovom subore iba nijako inak z neho neviem dostat data

 
Nahoru Odpovědět 19.11.2013 11:00
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tayson
David Čápka:

Již jsem ti vysvětloval proč to nejde. Pokud mi nevěříš, asi nemá smysl, abych ti tu pomáhal.

Nahoru Odpovědět 19.11.2013 11:11
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Jakub Lásko[Saarix]:

Chytrému napověz, se zatvrzelím nepohneš :-)

Nahoru Odpovědět 19.11.2013 11:17
Časem je vše možné.
Avatar
Odpovídá na Tayson
Jakub Lásko[Saarix]:

btw. to je až takový problém si ten soubor načíst do pole a pak číst od spodu? Nebo neukládej stále do toho samého souboru, aby nebyl tak velký a pak bude počet dat potřebných ke čtení menší a už to půjde ;)

Nahoru Odpovědět 19.11.2013 11:18
Časem je vše možné.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Jakub Lásko[Saarix]
David Čápka:

Prý je to 200 MB log, to určitě celé ukládat nemůže. Vyřeší to tak, že bude číst od začátku a ukládat až tehdy, kdy bude řádky potřebovat.

Nahoru Odpovědět 19.11.2013 11:22
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Tayson
Kit:

Však výstup toho programu tail si přesměruješ do svého programu a zpracuješ dle potřeby. Běžně to tak dělám. Záleží na tom, co s tím dál chceš dělat, nekdy stačí za to dát sed či awk. Na jednom řádku vyřešeno.

Nahoru Odpovědět 19.11.2013 11:30
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Tayson
Člen
Avatar
Odpovídá na David Čápka
Tayson:

No asi mas pravdu len som fakt skusal co najjednoduchsie riesenie a asi to tak nepojde mam pocit. No asi budem musiet si cely subor prehladat a vytiahnut len tie data ktore potrebujem ale problem je v tom ze sa niekedy tie operacie (logy) opakuju .... viem si po urcitom case tam dat casovu peciatku ale problem je v tom ze nemusi byt stale dobre nastaveny systemovy cas pretoze tie logy ktore mi prichadzaju niesu zo systemu.

 
Nahoru Odpovědět 19.11.2013 12:05
Avatar
Tayson
Člen
Avatar
Odpovídá na David Čápka
Tayson:

var lineCount = File.ReadLines(pat­hDesktop + @"\CLI_Log_co­py.txt").Count();

nieco take som nasiel na nete a ulozi to vlastne pocet riadkov do premennej. No keby som potom dekrementoval tu premennú asi by to nešlo či ?

 
Nahoru Odpovědět 19.11.2013 12:07
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tayson
David Čápka:

ReadAllLines ti načte všechny řádky do pole, to je u 200 mb trochu nepraktické.

Nahoru Odpovědět 19.11.2013 12:32
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
coells
Redaktor
Avatar
coells:

Pokud je posledním znakem \n, bude to pocet radku o jeden mensi, ale to je chybou ve StreamReaderu, ktery se snazi byt moc chytry.

static StreamReader SouborOdzadu(string soubor, int pocetRadku)
{
    var stream = new FileStream(soubor, FileMode.Open);

    stream.Position = Math.Max(stream.Length - 1, 0);
    while (stream.Position > 0 && pocetRadku > 0)
    {
        int current = stream.ReadByte();
        if (current == '\n')
            pocetRadku--;

        stream.Position = Math.Max(stream.Position - 2, 0);
    }

    if (pocetRadku == 0)
        stream.Position = Math.Min(stream.Position + 2, stream.Length);
    return new StreamReader(stream);
}
 
Nahoru Odpovědět 19.11.2013 12:55
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.