#c1tab.sh # #c1tab.sh (Version 0.1.10) gibt C1-Scan-Ergebnisse, gelesen aus einer Textdatei, als #HTML-Quelltext aus. # #Besonders gute Ergebnisse (C1-Average<1) werden grün markiert, gelb steht für 510 bzw. für die Anwesenheit von C2-Fehlern. # #Die Quelldatei sollte wie folgt strukturiert sein. #"Label" "ATIP" "Hersteller" "Freigegeben für" Brenngeschwindigkeit C1 Min C1 Max C1 Average C2 Min C2 Max C2 Average "Graphname" "Firmware" version=0.1.10; #Variablen anpassen; autor="Fabian Keil"; email="fk@fabiankeil.de"; pfad="bilder/cddoctor/";#Pfad zu den Screenshots home="./";#Pfad zum Index #Irgendwann wird auch mal der Text komfortabler zu ändern sein. Momentan muss direkt im awk-Teil rumgefuscht werden. sort c1-ergebnisse.txt | awk -v version=$version -v bilderpfad=$pfad -v autor="$autor" -v email=$email -v home=$home ' BEGIN{ FS="\t"; printf("\n"); printf("\n"); printf(" \n"); printf(" C1-Scans mit CD Doctor - Kaffeesatz lesen mit Stil\n"); printf(" \n"); printf(" \n",autor); printf(" \n",version); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" www.fabiankeil.de/c1-scans-mit-cd-doctor.html\n"); printf("

C1-Scans mit CD Doctor

\n"); printf("

\n"); printf(" Jeder der hier gelisteten Rohlinge wurde kurz nach dem Brennen gescannt. Gebrannt und getestet wurde mit einem\n"); printf(" LiteOn LTR-40125W@48125W (Firmware siehe Tabelle).\n"); printf(" Getestet wurde mit CD Doctor bei 8X.\n"); printf("

\n") printf(" \n"); printf(" "); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf("
Legende
Rot:C1 Average > 10 || C2-Fehler!=0
Gelb:10 > C1 Average > 5
Grün:1 > C1 Average
Braun:SmartBurn griff ein
\n"); printf("

\n"); printf(" Wenn die Geschwindigkeit durch SmartBurn gedrosselt wurde,\n"); printf(" ist die Zelle mit der Geschwindigkeit markiert (siehe Legende). Der Wert in Klammern entspricht dann der gewünschten Geschwindigkeit, der Wert\n"); printf(" vor den Klammern gibt an, welche Geschwindigkeit der Brenner für passend hielt.\n"); printf("

\n"); printf("

\n") printf(" Bei den Rohlingen von FUJI sperrt SmartBurn Geschwindigkeiten\n") printf(" über 32X im Voraus. Um höhere Geschwindigkeiten zu erreichen wurde es deshalb deaktiviert. Die Ergebnisse zeigen,\n") printf(" dass es zur Sperrung keinen Grund gibt, die Werte werden daher bei der Statistik mit berücksichtigt, die Zellen nicht markiert.\n"); printf("

\n"); printf("

\n"); printf(" Bei den Rohlingen von Prodye griff SmartBurn\n"); printf(" erst im laufenden Brennvorgang ein, die Deaktivierung erbrachte einen Coaster, wurde daher unterlassen.\n"); printf("

\n"); printf("

\n"); printf(" Wenn als Rohlingname nur eine Firma angegeben ist, habe ich mit hoher Wahrscheinlichkeit\n"); printf(" die Ergänzung CD-R 80 unterschlagen. Diese Seite ist schon so viel zu groß.\n"); printf("

\n"); printf("

\n") printf(" Die Farbräume wurden willkürlich gewählt. Es ist natürlich davon auszugehen, dass Rohlinge\n"); printf(" bei denen keine C2-Fehler gemeldet werden, noch gut lesbar sind. Grüne Markierungen sind\n"); printf(" jedoch trotzdem ein Zeichen von Harmonie zwischen Rohling und Brenner, bzw. von Qualität, und damit erstrebenswert.\n"); printf("

\n"); printf("

\n"); printf(" Wie bei allen C1/C2-Tests sollte klar sein, dass die Ergebnisse nicht nur von den Rohlingen,\n"); printf(" sondern auch von dem Brenner und seiner Firmware abhängen.\n"); printf("

\n"); printf("

\n"); printf(" Die Ergebnisse sind also nicht allgemein gültig,\n"); printf(" starke Schwankungen in den Ergebnissen sind jedoch wohl weniger dem Brenner zuzuschreiben,\n"); printf(" was die Ergebnisse wieder für Besitzer anderer Brenner interessant macht.\n"); printf("

\n"); printf("

\n"); printf(" Bei CDs größer 90 Minuten bricht CD Doctor den Scan ab, bevor das Ende erreicht ist. Ich habe trotzdem die\n"); printf(" CD-Doctor-Ergebnisse behalten, da sich der Fehler-Durchschnitt laut kprobe kaum verändert.\n"); printf("

\n"); printf("

\n"); printf(" Rohlinge bei denen die Fehlerzahl im überbrannten Bereich stark ansteigt, werden bei der Statistik nicht berücksichtigt.\n"); printf("

\n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" "); printf(" \n"); printf(" \n"); } (NF!=13 && NF!=14){ printf "Zeile %i entspricht nicht den Bedingungen und wurde übersprungen. Sie enthält %i Felder.",FNR,NF | "cat 1>&2"; } (NF==13 || NF==14){ #Entities bei Bedarf anpassen gsub(/&/,"\\&"); gsub(/é/,"\\é"); gsub(/Ä/,"\\Ä"); gsub(/ä/,"\\ä"); gsub(/Ö/,"\\Ö"); gsub(/ö/,"\\ö"); gsub(/Ü/,"\\Ü"); gsub(/ü/,"\\ü"); gsub(/ß/,"\\ß"); gsub(/,/,"."); split($1,label,"\""); split($2,atip,"\""); split($3,hersteller,"\""); split($4,freigabe,"\""); split($5,brenngeschwindigkeit,"r") gsub(/ /,"\\ ",freigabe[2]); split($12,bildername,"\""); split($13,firmware,"\""); farbe[0]=""; #farbe[1]=" bgcolor=\"#F0F0F0\""; farbe[1]=" class=\"g\""; bgcolor=""; if($8<1) bgcolor=" bgcolor=\"#10FF10\""; if($8>5 && $8<10) bgcolor=" bgcolor=\"yellow\""; if($8>10) bgcolor=" bgcolor=\"red\""; if($14!=1){#Die 1 kennzeichnet einen Rohling, der in der Statistik nicht auftauchen soll anzahl[label[2]]++; anzahl_h[hersteller[2]]++; c1_average[label[2]]+=$8; c1_average_h[hersteller[2]]+=$8; c2_average[label[2]]+=$11; c2_average_h[hersteller[2]]+=$11; c1_average_gesammt+=$8; c2_average_gesammt+=$11; anzahl_gesammt++; } printf(" \n",farbe[++anzahl_in_tabelle%2]); #printf(" \n") printf(" \n",label[2]); printf(" \n", atip[2]); printf(" \n", hersteller[2]); printf(" \n"); if(brenngeschwindigkeit[2]=="") printf(" \n", brenngeschwindigkeit[1]); else printf(" \n", brenngeschwindigkeit[2],brenngeschwindigkeit[1]); printf(" ", $6); printf( "", $7); printf( "%.3f\n",bgcolor, $8); printf(" ", $9); printf( "", $10); printf( "%s\n", $11); printf(" ", firmware[2]); printf( "\n", bilderpfad, bildername[2]); printf(" \n"); } END{ printf("
RohlingnameATIPHerstellerFreigabeGewähltC1 MinC1 MaxC1 AverageC2 MinC2 MaxC2 AverageFirmwareScan
%s%s%s%s", freigabe[2]); if(freigabe[2]!="?" && freigabe[2]!="MultiSpeed") printf("X"); printf("%iX%iX (%sX)%s%s%s%s%sScan

\n"); printf("

Statistik

"); printf("

Rohlingname-Durchschnittswerte

"); printf(" \n"); printf(" \n"); for (labeler in c1_average){ labeler_sortiert[labeler_index++]=labeler; } asort(labeler_sortiert); ende=labeler_index+1; labeler_index=1; while (labeler_index!=ende){ printf(" ",farbe[++farbwechsel%2]); printf("\n", labeler_sortiert[labeler_index], anzahl[labeler_sortiert[labeler_index]], c1_average[labeler_sortiert[labeler_index]]/anzahl[labeler_sortiert[labeler_index]], c2_average[labeler_sortiert[labeler_index]]/anzahl[labeler_sortiert[labeler_index]]); labeler_index++; } printf("
RohlingnameAnzahlC1 AverageC2 Average
%s%s%.3f%.3f

\n"); farbwechsel=0; printf("

Hersteller-Durchschnittswerte

\n"); printf(" \n"); printf(" \n"); for (manufacturer in c1_average_h){ manufacturer_sortiert[manufacturer_index++]=manufacturer; } asort(manufacturer_sortiert); ende=manufacturer_index+1; manufacturer_index=1; while (manufacturer_index!=ende){ printf(" ",farbe[++farbwechsel%2]); printf("\n", manufacturer_sortiert[manufacturer_index], anzahl_h[manufacturer_sortiert[manufacturer_index]], c1_average_h[manufacturer_sortiert[manufacturer_index]]/anzahl_h[manufacturer_sortiert[manufacturer_index]], c2_average_h[manufacturer_sortiert[manufacturer_index]]/anzahl_h[manufacturer_sortiert[manufacturer_index]]); manufacturer_index++; } printf("
HerstellerAnzahlC1 AverageC2 Average
%s%s%.3f%.3f

\n"); printf("

Absoluter Durchschnitt

\n"); printf(" \n"); printf(" \n", anzahl_gesammt, c1_average_gesammt/anzahl_gesammt, c2_average_gesammt/anzahl_gesammt); printf("
Rohlinge getestet:%s
C1 Average:%.3f
C2 Average:%.3f

\n"); printf("

Vergleich mit gepressten CDs

\n"); printf("

\n"); printf(" Zum Vergleichen hier noch ein paar Ergebnisse von gepressten CDs:\n"); printf("

\n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); farbwechsel=0; printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf(" \n",farbe[++farbwechsel%2]); printf("
CD-NamePreisC1 MinC1 MaxC1 AverageC2 MinC2 MaxC2 AverageScan
Boney M. – Gold6,49 €07424.726000Scan
Don McLean – American Pie3,49 €012121.90602930.196Scan
Don McLean – American Pie3,49 €0313.377000Scan
Fleetwood Mac – Say You Will16,99 €0130.491000Scan
GTA Vice City – CD144,99 €0334.756000Scan
GTA Vice City – CD20221.564000Scan
Max Payne 2 The Fall Of Max Payne – CD144,00 €0221.384000Scan
Max Payne 2 The Fall Of Max Payne – CD20200.975000Scan
Max Payne 2 The Fall Of Max Payne – CD30222.260000Scan
Midnight Oil – Capricornia DTS-ES19,99 €0201.628000Scan
Soldier Of Fortune – Special Edition12,00 €0355,610000Scan
Soldier Of Fortune II – Gold Edition – CD120,50 €0301,539000Scan
Soldier Of Fortune II – Gold Edition – CD20434,510000Scan
Soldier Of Fortune II – FSK18 für katholische Sozialpädagogen – CD122,50 €0201,1720912,062Scan
Soldier Of Fortune II – FSK18 für katholische Sozialpädagogen – CD20222,341000Scan
Sting – Ten Summoner’s Tales DTS25,99 €06829.778000Scan
Uriah Heep – The Collection3,99 €015942.6320230.011Scan
\n"); printf("

\n"); printf(" Die Preise sind weniger angegeben, um zu zeigen was ich doch für ein finanzstarkes Kerlchen bin,\n"); printf(" sondern um auf einen Zusammenhang zwischen Preis und Qualität zu schließen."); printf("

\n"); printf("
\n"); printf(" \n"); printf(" Fabian Keil
\n"); printf(" %s
\n",email,email); printf(" Zuletzt erstellt am %s \n",strftime("%d.%m.%Y",systime()),version); printf("
\n"); printf("

\n"); printf(" www.fabiankeil.de/\n"); printf("

\n"); printf("
\n"); printf(" \n"); printf("\n"); } '