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 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
dnes 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 9
včera 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
včera 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 4
20.1. 15:51 | Komunita

Mozilla.cz informuje, že nástroje pro webové vývojáře se možná oddělí od Firefoxu a stanou doplňkem. Nástroje pro webové vývojáře prošly velkým přepisem a tým, který se stará o jejich vývoj, by uvítal možnost jejich častějších aktualizacích nezávisle na vydávání nových verzí Firefoxu.

Ladislav Hagara | Komentářů: 8
20.1. 07:00 | Humor

Čtenářům AbcLinuxu vše nejlepší k dnešnímu Dni zvýšení povědomí o tučňácích (Penguin Awareness Day).

Ladislav Hagara | Komentářů: 0
20.1. 06:00 | Komunita

Bylo spuštěno hlasování o přednáškách a workshopech pro letošní InstallFest, jenž proběhne o víkendu 4. a 5. března v Praze. Současně byla oznámena změna místa. InstallFest se letos vrací zpět na Karlovo náměstí do budovy E.

Ladislav Hagara | Komentářů: 0
20.1. 02:48 | Komunita

Greg Kroah-Hartman potvrdil, že Linux 4.9 je jádrem s prodlouženou upstream podporou (LTS, Long Term Support). Podpora je plánována do ledna 2019. Aktuální jádra s prodlouženou podporou jsou tedy 3.2, 3.4, 3.10, 3.12, 3.16, 3.18, 4.1, 4.4 a 4.9.

Ladislav Hagara | Komentářů: 0
20.1. 00:11 | Zajímavý článek

Výrobce síťových prvků, společnost Netgear, spustila nový program, který slibuje vývojářům, expertům, ale i běžným uživatelům vyplacení finanční odměny za nalezení bezpečnostních chyby v jejich produktech. Za nalezení zranitelnosti v hardware, API nebo mobilní aplikaci nabízí odměnu od 150 do 15 tisíc dolarů (dle závažnosti).

Michal Makovec | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (10%)
 (2%)
 (74%)
 (3%)
 (10%)
Celkem 359 hlasů
 Komentářů: 25, poslední včera 13:34
Rozcestník
Reklama

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: 801×
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.