convert.pl

来自「memcard is a multiplaform flashcard word」· PL 代码 · 共 53 行

PL
53
字号
use strict;binmode STDOUT, ":utf8";open FILE, "<:utf8", '/tmp/fr_ru_dic/french_audio.utf8';#open FILE, "<:utf8", '/tmp/fr_popova_utf8.txt';my @lines=<FILE>;my %d = ();foreach my $i (@lines) {	chomp($i);	$i =~ s/"/'/g;	if ($i =~ m/^([^\t]+)\t+([^\t]+)\t+([^\t]+)$/) {		my ($word, $def, $k) = ($1, $2, $3);		if (defined($d{$k})) {			my $listref = $d{$k};			push @{$listref}, [$word, $def];		} else {			my $listref = [];			push @{$listref}, [$word, $def];			$d{$k} = $listref;		}	} else {		if ($i =~ m/^([^\t]+)\t+([^\t]+)\t*$/) {			my $k = 'All';			my ($word, $def) = ($1, $2);			if (defined($d{$k})) {				my $listref = $d{$k};				push @{$listref}, [$word, $def];			} else {				my $listref = [];				push @{$listref}, [$word, $def];				$d{$k} = $listref;			}		}	}}#print keys %d;#exit 0;print '<?xml version="1.0" encoding="UTF-8" standalone="no"?>', "\n";foreach my $k (keys %d) {	printf "<Category name=\"%s\">\n<Deck>\n", $k;	map {		my @l = @$_;		map { 			printf "<Card AmountLearnedBack=\"0\" AmountLearnedFront=\"0\" Backside=\"%s\" DateCreated=\"27-May-2008 16:14:30\" DateExpired=\"28-May-2008 17:00:46\" DateModified=\"27-May-2008 16:14:30\" DateTested=\"27-May-2008 17:00:46\" DateTouched=\"27-May-2008 17:00:55\" Frontside=\"%s\" TestsHit=\"1\" TestsTotal=\"1\">\n<Side/>\n<Side/>\n</Card>\n", $_->[1], $_->[0];		} @l;	} $d{$k};	printf "</Deck>\n</Category>\n";}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?