Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- #system $^O eq 'MSWin32' ? 'cls' : 'clear';
- system $^O eq 'MSWin32' ? 'del out.txt' : 'rm out.txt';
- #my $Einheiten="bag|bags|bar|Barlöff.|bars|barspoon|barspoons|Becher|Bemerkung|Beutel|Blatt|Blätter|bottle|bottles|box|boxes|Briefchen|bunch|bunches|Bund|can|cans|capsule|capsules|carton|cartons|cg|cl|clove|cloves|cm|cm-piece|cm-pieces|cm-Stück|corm|corms|cube|cubes|cup|cups|dag|dash|dashes|dg|dl|Döschen|Dose|Dosen|dozen|dozens|drop|drops|Dutzend|ein paar|Einige|Essl.|Etwas|few|fl_oz.|Flasche|Flaschen|gallon|gallons|g-can|g-cans|g-Dose|geh. EL|geh. TL|gestr. EL|gestr. TL|g-Glas|g-glass|g-glasses|Glas|Gläschen|Gläser|glass|glasses|gram|Gramm|grams|groß.|handfull|handsfull|Handvoll|Hauch|head|heads|Kapsel|Kapseln|Karton|Kartons|Kästchen|kg|klein.|Knolle|Knollen|Kopf|Köpfe|Kugel|Kugeln|large|leaf|leaves|liter|liters|Ltr.|medium|Mehrere|Messersp.|Messl.|meter|meters|mg|mittl.|ml|ml-can|ml-Dose|ml-Glas|ml-glass|ounce|ounces|Paar|pack|Pack.|packs|pair|pairs|part|parts|Pfund|piece|pieces|pinch|pinches|pint|pints|plate|plates|Platte|Platten|plentiful|pot|pots|pound|pounds|Prise|Prisen|quart|quarts|Reichlich|Schale|Schalen|Scheibe|Scheiben|Schoppen|Schuss|scone|scones|several|shrub|shrubs|slice|slices|small|some|some|somewhat|sprig|sprigs|Spritzer|Spur|stalk|stalks|Stange|Stängel|Stangen|Staude|Stauden|stem|stems|Stich|stick|sticks|Stiel|Stiele|Streifen|strip|strips|Stück|Stücke|tablesp.|Tafel|Tafeln|Tasse|Tassen|teasp.|Teel.|Teil|Teile|Topf|Töpfe|Tranche|Tranchen|tranches|tray|trays|Tropfen|tube|Tuben|tubes|Tütchen|Tüte|Tüten|Wenig|Wenige|Würfel|x|Zehe|Zehen|Zentner|Zweig|Zweige";
- ##Outputfile öffnen und t2t Header schreiben.
- my $OutFile = "out.txt";
- open DATEI, ">>$OutFile" || die "Can't open $OutFile: $!";{
- print DATEI "Kochbuch\n\n\n";
- print DATEI "%!target: html\n";
- print DATEI "%!options: --css-sugar --toc --toc-level 3\n";
- print DATEI "%!style(html): eBookStyleV1_2.css\n";
- print DATEI "%!encoding: ANSI\n\n";
- print DATEI "%!postproc(html): '#Br#' '<br>'\n";
- # print DATEI "%!postproc(html): '<P>' '<P class=\"indent\">'";
- print DATEI "\n----------------------------------------\n%%toc\n\n";
- }close (DATEI);
- ##Datei oder Dateinamen
- #my @dateien = glob("*.rk");
- #foreach my $Dateiname (@dateien)
- #my $Dateiname="testdatei_big.txt";
- my $Dateiname="testdatei.txt";
- #Variable für die komplette Datei
- my $daten;
- {#Datei öffnen und einlesen
- die $! unless my $rw = open(DATEI, $Dateiname);
- while (defined($_ = <DATEI>)) {
- $daten = $daten . $_;
- }
- close DATEI;
- unless (defined $rw) {
- print "Fehler beim \366ffnen der Datei '${Dateiname}':\n$!\n";
- next;
- }
- }
- #$daten=~s%^(?:={5}.*?|-={4}.*?)REZKONV.*?$(.+?)^={5}$(.*)%$2%smi;
- ##Rezepte nacheinander bearbeiten
- $daten=~m%^(?:={5}.*?|-={4}.*?)REZKONV.*?$(.+?)^={5}$%gsmic;
- ##Suchposition
- #print "Position: ", pos $daten,"\n";
- my $rezept = $1; ##Rezept in Variable
- while ($rezept) ##Solange Rezepte in "Datei"...
- {
- $rezept=~s%\s*(.*?)\s*%$1%s;
- $rezept=~m!(?:Titel|Title): *(.*)!; my $Titel =$1;
- print "$Titel\n\n";
- $rezept=~m!(?:Kategorien|Categories): *(.*)!;my $Kategorien=$1;
- $rezept=~m!(?:Menge|Yield|Servings): *(.*)!; my $Menge =$1;
- $rezept=~m%(?:Menge|Yield|Servings).*?$ #Nach der Menge beginnen die Zutaten
- (?:Zutaten|Ingredients)?(?::)? #kann vorkommen
- ^(.*?) #Capturegroup für Zutaten
- (?-s:^.*?(?i:QUELLE|SOURCE|REF):?\s*=*) #Quelle wird eingeleitet
- \s*(.*?)\s*? #Capturegroup für Quelle
- ^$ #Quelle endet mit Leerzeile
- (?i:Zubereitung|Directions)?(?::)? #kann vorkommen
- (.*?)\s*? #Capturegroup für Zubereitung
- (:\s*O-Titel.*)? #Capturegroup für langen Titel
- \Z
- %msx;
- my $Zutaten = $1;
- my $Quelle = $2;
- my $Zubereitung = $3;
- my $Titel_lang = $4;
- $Zutaten =~ s% *\n *-{1,2} ?% %g;
- if ($Titel_lang){
- $Titel_lang =~ s%(: O-Titel\s*:\s|: >\s*)(.*?)%$2%gm;
- $Titel_lang =~ s%(\n|\s{2,})% %gs;
- $Titel_lang =~ s%^\s*(.*?)\s*$%$1%s;
- $Titel = $Titel_lang;
- #print "langer Titel gefunden\n";
- }else{
- #print "kein langer Titel\n";
- }
- print "$Titel\n";
- #$Zutaten =~ s%(?:\n)*^([^=]{8})(.{11})(.*)%\n| $1 | $2 | $3%gm;
- $Zutaten =~ s%(?:\n)*^\s*([^=].*?)%\n- $1%gm;
- $Quelle =~ s%(?:\n)*^\s*([^=].*)%\n| $1%gm;
- #print "~~~ Output to '$OutFile'\n";
- #print "$Dateiname\n";
- if ($Titel)
- {
- open DATEI, ">>$OutFile" || die "Can't open $OutFile: $!";
- print DATEI "$rezept\n~~~~\n";
- print DATEI "$OutFile\n~~~~~~~~~~~~~~~~~~\n";
- print DATEI "\n*********************************************************\n";
- print DATEI "\n~~~~ Titel ~~~~\n$Titel";
- print DATEI "\n~~~~ Zutaten ~~~~\n$Zutaten";
- print DATEI "\n~~~~ Quelle ~~~~\n$Quelle";
- print DATEI "\n~~~~ Zubereitung ~~~~\n$Zubereitung";
- if ($Titel_lang) {print DATEI "\n~~~~ Titel lang ~~~~\n$Titel_lang"};
- print DATEI "\n== $Titel ==\n";
- print DATEI "$Zutaten\n\n";
- print DATEI "$Zubereitung\n\n";
- print DATEI "$Quelle\n\n";
- }
- close (DATEI);
- #$daten=~s%^={5}.*?REZKONV.*?$(.+?)^={5}$(.*)%$2%smi;
- $daten=~m%^(?:={5}.*?|-={4}.*?)REZKONV.*?$(.+?)^={5}$%gsmic;
- #print "Position: ", pos $daten,"\n";
- $rezept=$1;
- }
- #perl -MO=Deparse,-sT,-I,-sC convert.pl
Advertisement
Add Comment
Please, Sign In to add comment