abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 03:33 | Nová verze

    Open-source hra Shattered Pixel Dungeon (Wikipedie) byla vydána ve verzi 4.0.0. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | IT novinky Ladislav Hagara | Komentářů: 2
    včera 17:44 | IT novinky

    Společnost System76 představila pracovní stanici Thelio Mira AI s předinstalovaným Pop!_OS s prostředím COSMIC nebo Ubuntu. Nakonfigurovat lze až s 16jádrovým CPU AMD Ryzen 9 9950X, 192 GB DDR5 RAM, dvěma GPU NVIDIA RTX Pro 6000 a 192 GB GPU pamětí.

    Ladislav Hagara | Komentářů: 3
    včera 17:00 | Komunita

    DigitalOcean je sponzorem nadace Omacom Foundation stojící za linuxovou distribucí Omarchy. Přislíbená částka je 3 miliony dolarů, tj. 1 milion dolarů ročně po dobu tří let.

    Ladislav Hagara | Komentářů: 2
    8.9. 21:11 | Zajímavý software

    Na stránkách PostgreSQL bylo představeno LibreDB Studio. Jedná se o open-source self-hostované SQL IDE pro (nejenom) PostgreSQL v prohlížeči. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 3
    8.9. 16:00 | Nová verze

    Byla vydána nová verze 12.0 media serveru Jellyfin (Wikipedie). Přehled novinek v poznámkách k vydání. Pro vyzkoušení je k dispozici Demo Server. Jellyfin je fork media serveru Emby, původně Media Browser.

    Ladislav Hagara | Komentářů: 0
    8.9. 04:44 | Bezpečnostní upozornění

    V MikroTik RouterOS bylo nalezeno šest zranitelností společně pojmenovaných MikroTrick umožňujících útočníkovi, pokud má přístup k SSH, získat plnou kontrolu nad zařízením bez nutnosti autentizace. Ve verzích RouterOS 7.25beta3, 7.24.2, 7.23.4 a 6.49.21 je již opraveno.

    Ladislav Hagara | Komentářů: 8
    8.9. 04:00 | Nová verze

    Byla vydána verze 9.5 open source unixového operačního systému NetBSD (Wikipedie). Přehled novinek v poznámkách k vydání. Jedná se poslední vydání řady NetBSD 9. Doporučen je přechod na NetBSD 11 nebo NetBSD 10.

    Ladislav Hagara | Komentářů: 0
    7.9. 21:44 | IT novinky

    Akční adventura State of Mind je na portále GOG.com zdarma, akce trvá do 10. září.

    ʚĭɞ 🍉 | Komentářů: 2
    7.9. 13:22 | IT novinky

    Na Kickstarteru běží kampaň na podporu malého robotický psa Petoi Quaddle. Postaven je na ESP32-S3. V několika variantách. S řadou senzorů. Programovat lze pomocí Pythonu, C++ nebo i vizuálních bloků. Zkoušet a trénovat lze v simulátoru.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (4%)
     (21%)
     (29%)
     (7%)
     (6%)
     (2%)
     (14%)
     (21%)
    Celkem 2631 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Nacteni a parsovani souboru (PHP nebo PERL)

    11.8.2005 18:55 tom84 | skóre: 6
    Nacteni a parsovani souboru (PHP nebo PERL)
    Přečteno: 1383×
    Dobry den, mam takovy malinky problemek. Potrebuju nacist soubor a ten pak naparsovat na casti a ty nakonec je ulozit do DB. Zatim to mam pro testovani udelane v PHP ale problem je ze soubory pak budou treba az 10MB velike nechce se mi menit max velikost pameti pro PHP. Mohl bych to vyresit pomoci perlu, ale to taky neni zas tak elegantni protoze budu mit pak 10MB pole.

    Kdyby nekoho napadlo jak to nacitat tak, aby se nevytvarelo tak velke pole a jamohl ty prizpevky rozparsovat budu rad :)

    Vsem diky za napady. S pozdravem Tomas Werschall

    Zatim posilam kod ktery mam.
    $posts= preg_split('/From (.+) na (.+) (Mon|Tue|Wed|Thu|Fri|Sat|Sun) (.{3}) (.{2}) (\d{2}):(\d{2}):(\d{2}) (\d{4})/', implode(file('test.txt')), -1, PREG_SPLIT_NO_EMPTY);
    
    while(list($key,$value)= each($posts)){
     $post_split= preg_split('/Message-ID: (.+)/',$value);
     $head= $post_split[0];
     $message_text= $post_split[1];
     preg_match('/From: (.+) na (.+) \((.+)\)/',$head,$from);
     preg_match('/Subject: (.+)/',$head,$message_subject);
    
     $post= $from[0]."\n".$message_subject[0]."\n\n".trim($message_text)."\n";
     echo "$key\n<br>".nl2br(htmlspecialchars($post))."<br>\n<hr>\n";
    }
    
    "One World, One web, One program" - Microsoft Promo "Ein Volk, Ein Reich, Ein Fuhrer" - Adolf Hitler

    Odpovědi

    11.8.2005 19:11 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Nacteni a parsovani souboru (PHP nebo PERL)
    Mohl bych se pokusit pochopit co ten kód dělá, ale jaksi ... Co takhle říct co má být výsledkem místo kódu a třeba vám i někdo odpoví. Doporučuji začít třeba návodem E. S. Raymonda.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    11.8.2005 20:32 tom84 | skóre: 6
    Rozbalit Rozbalit vše Re: Nacteni a parsovani souboru (PHP nebo PERL)
    Ale v prispevku je napsano co kod dela. viz:
    Potrebuju nacist soubor a ten pak naparsovat na casti
    Nic vic, nic min to nedela. Ja jsem jen potreboval ten kod vylepsit aby byl efektivnejsi
    "One World, One web, One program" - Microsoft Promo "Ein Volk, Ein Reich, Ein Fuhrer" - Adolf Hitler
    12.8.2005 08:30 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Nacteni a parsovani souboru (PHP nebo PERL)
    Mezi parsováním a parsováním může být dost podstatný rozdíl. Ten hlavní rozdíl je v tom, jestli to jde udělat on stream, nebo ne. Takže kus kódu který něco dělá on block mi bez hodně důkladného studia neřekne, jestli se to dá dělat on stream. Takže vstup by jsme konečně měli odkázaný v jiném příspěvku a teď jak má vypadat výstup?
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    12.8.2005 11:10 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Nacteni a parsovani souboru (PHP nebo PERL)
    Tkový hrubý nástin jak to udělat v Perlu
    #!/usr/bin/env perl
    
    use strict;
    use warnings;
    
    my $msg={};
    my $header='';
    my $firstFrom = qr(^From (.+) na (.+) (Mon|Tue|Wed|Thu|Fri|Sat|Sun) (.{3}) (.{2}) (\d{2}):(\d{2}):(\d{2}) (\d{4})$);
    my $headerLine = qr(^\S+:);
    sub ParseHeader {
    	my @headerLines = split m($/), $_[0];
    	my $ret = {};
    	@$ret{qw(usr site dayOfWeek month day hour min sec year)} =
    		shift(@headerLines) =~ /$firstFrom/;
    	foreach my $line (@headerLines) {
    		# tady si udelej co chces se zbytkem hlavicky a nacpi do $ret 
    	}
    	return $ret;
    }
    
    sub PrintMsg {
    	my $msg = shift;
    	return unless ref $msg eq 'HASH' and %$msg;
    	use Data::Dumper;
    	print Data::Dumper->Dump([$msg],['msg']);
    }
    
    while (<>) {
    	chomp;
    	?$firstFrom?o and $header = $_ and next;
    	if ($header) {
    		/$headerLine/o and $header .= "$/$_" and next;
    		if (/^\s*$/) {
    			PrintMsg ($msg);	# end of header - print msg
    			$msg = ParseHeader($header);
    			$header = '';
    			reset;
    			next;
    		}
    		# falesna hlavicka
    		$msg->{content} .= "$/" . $header;
    		$header = '';
    		next;
    	}
    	%$msg and $msg->{content} .= "$_$/" and next;
    	/\S/ and die 'Header not found';
    }
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    12.8.2005 11:55 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Nacteni a parsovani souboru (PHP nebo PERL)
    Protože jsem zapoměl na tisk poslední zprávy a taky nemám moc rád výceřádkové řetězce, tak trochu vylepšená podoba
    #!/usr/bin/env perl
    
    use strict;
    use warnings;
    
    my $msg={};
    my @header;
    my $firstFrom = qr(^From (.+) na (.+) (Mon|Tue|Wed|Thu|Fri|Sat|Sun) (.{3}) (.{2}) (\d{2}):(\d{2}):(\d{2}) (\d{4})$);
    my $headerLine = qr(^\S+:);
    sub ParseHeader {
    	my $ret = {};
    	@$ret{qw(usr site dayOfWeek month day hour min sec year)} =
    		shift() =~ /$firstFrom/;
    	foreach my $line (@_) {
    		# tady si udelej co chces se zbytkem hlavicky a nacpi do $ret 
    	}
    	return $ret;
    }
    
    sub PrintMsg {
    	my $msg = shift;
    	return unless ref $msg eq 'HASH' and %$msg;
    	use Data::Dumper;
    	shift @{$msg->{content}} while $msg->{content}[0] =~ /^\s*$/;
    	pop @{$msg->{content}} while $msg->{content}[$#{$msg->{content}}] =~ /^\s*$/;
    	print Data::Dumper->Dump([$msg],['msg']);
    }
    
    while (<>) {
    	chomp;
    	?$firstFrom?o and push @header, $_ and next;
    	if (@header) {
    		/$headerLine/o and push @header, $_ and next;
    		if (/^\s*$/) {
    			PrintMsg ($msg);	# end of header - print msg
    			$msg = ParseHeader(@header);
    			@header = ();
    			reset;
    			next;
    		}
    		# falesna hlavicka
    		push @{$msg->{content}}, @header;
    		@header = ();
    		next;
    	}
    	%$msg and push @{$msg->{content}}, $_ and next;
    	/\S/ and die 'Header not found';
    }
    PrintMsg($msg);
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    11.8.2005 19:26 Jarek Šeděnka
    Rozbalit Rozbalit vše Re: Nacteni a parsovani souboru (PHP nebo PERL)
    Spise nez prepis do Perlu by tomu pomohlo postupne nacitani souboru, misto file('soubor') dat fopen('soubor','r') a cist to postupne.

    Btw. 10MB vubec nic neni, pokud velikost nepujde do stovek tak bych to nechal tak jak to je :-)
    11.8.2005 19:46 tomas84 | skóre: 30
    Rozbalit Rozbalit vše Re: Nacteni a parsovani souboru (PHP nebo PERL)
    Tak tak, já bych načítal soubor řádek po řádku.
    11.8.2005 20:29 tom84 | skóre: 6
    Rozbalit Rozbalit vše Re: Nacteni a parsovani souboru (PHP nebo PERL)
    Ano to me take napadlo, ale kdyz budu soubor nacitat cely tak se to bude dobre rozdelovat pomoci regularnich vyrazu na jednotlive bloky. Jedna se totiz o archiv jedne mailove konference a ja si k ni chci udelat webove rohrani. Jak jsou zpravy ulozeny si muzete prohlednout zde. http://bobrshub.no-ip.org/test.txt

    Ja tedy potrebuji soubor rozdelit na jednotlive prispevky a ty pak vlozit do DB aby se s tim dalo lepe pracovat. Ale asi nakonec to stejne budu muset nacitat po radku. Pac nikdy nevim jak bude soubor veliky a zda bych pak mel tolik pameti na pole. Ale jen jsem chtel zda by nekoho nenapadlo lepsi napad jak to resit.

    Dekuji vsem za namety. S pozdravem Tomas Werschall.
    "One World, One web, One program" - Microsoft Promo "Ein Volk, Ein Reich, Ein Fuhrer" - Adolf Hitler

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.