lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:challenge4

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:challenge4 [2021/02/24 11:46]
Ivo Blöchliger
lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:challenge4 [2021/03/04 13:33] (current)
Ivo Blöchliger [Summe von Zahlen]
Line 3: Line 3:
 Aus einer HTML-Datei sollen die Links mit verlinktem Text extrahiert werden. Beispiel: Aus einer HTML-Datei sollen die Links mit verlinktem Text extrahiert werden. Beispiel:
 <code html> <code html>
-<a href="https://fginfo.ksbg.ch/">Fachgruppe Informatik</a>+<a href="https://fginfo.ksbg.ch/" class="bla">Fachgruppe Informatik</a>
 </code> </code>
 Der HTML-Tag ''<a>'' definiert einen Link. Im Attribut ''href'' steht die URL (Web-Adresse). Der verlinkte Text steht danach (beendet durch ein </a>). Der HTML-Tag ''<a>'' definiert einen Link. Im Attribut ''href'' steht die URL (Web-Adresse). Der verlinkte Text steht danach (beendet durch ein </a>).
Line 14: Line 14:
 Die Idee ist natürlich, die Umwandlung in einem Aufwasch für die ganze Datei zu erledigen. Die Idee ist natürlich, die Umwandlung in einem Aufwasch für die ganze Datei zu erledigen.
 <WRAP todo> <WRAP todo>
-  * Wir folgende HTML-Datei: {{lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:page.html}}, die Sie bitte herunterladen und in NotePad++ öffnen.+  * Wir verwenden folgende HTML-Datei: {{lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:page.html}}, die Sie bitte herunterladen und in NotePad++ öffnen.
   * Löschen Sie bitte alle Zeilen, die die Zeichenkette ''<a href='' **nicht** enthalten. Machen Sie eine Internetsuche (am besten auf Englisch), wie Sie vorgehen können.   * Löschen Sie bitte alle Zeilen, die die Zeichenkette ''<a href='' **nicht** enthalten. Machen Sie eine Internetsuche (am besten auf Englisch), wie Sie vorgehen können.
-  * Man stellt fest, dass es Zeilen gibt, die noch mehr als einen Link enthalten. Wir werden darum ''<a href'' durch ''\n<a href''. Dazu muss im "Search Mode" "Extended" oder "Regular Expression" aktiviert sein.+  * Man stellt fest, dass es Zeilen gibt, die noch mehr als einen Link enthalten. Wir werden darum ''<a href'' durch ''\n<a href'' (d.h. wir fügen einen Zeilenumbruch vor jedem link ein). Dazu muss im "Search Mode" "Extended" oder "Regular Expression" aktiviert sein.
   * Löschen Sie abermals die Zeilen, die ''<a href'' nicht enthalten.   * Löschen Sie abermals die Zeilen, die ''<a href'' nicht enthalten.
   * Führen Sie nun folgende Ersetzung durch, wobei der "Search Mode" auf **Regular Expression** gesetzt werden muss:   * Führen Sie nun folgende Ersetzung durch, wobei der "Search Mode" auf **Regular Expression** gesetzt werden muss:
-    * Ersetzen Sie ''<a href="(.*?)".*?>(.*?)</a.*'' durch ''$2;$1'' +    * Ersetzen Sie ''<a href=<nowiki>"</nowiki>(.*?)<nowiki>"</nowiki>.*?>(.*?)</a.*'' durch ''$2;$1''. //Das ist eine Regular Expression, mehr dazu später// 
-  * Man stellt fest, dass im Text noch Strichpunkte vorkommen. Diese stehen aber beim ''&quote;'', was für Anführungszeichen steht. Man hat jetzt zwei Möglichkeiten: +  * Man stellt fest, dass im Text noch Strichpunkte vorkommen. Diese stehen aber beim ''&quot;'', was für Anführungszeichen steht. 
-    Entweder Sie ersetzen ''&quote;'' durch ''"'' oder +  Ersetzen Sie ''&quot;'' durch ''<nowiki>"</nowiki>''
-    * Sie machen obige Ersetzung rückgängig und ersetzen statt dessen mit ''"$2";"$1"''.+
   * Als letztes vervollständigen sie die Links durch ''<nowiki>https://fginfo.ksbg.ch</nowiki>'' durch eine geeignete Ersetzung.   * Als letztes vervollständigen sie die Links durch ''<nowiki>https://fginfo.ksbg.ch</nowiki>'' durch eine geeignete Ersetzung.
   * Speichern Sie die Datei als ''links.csv'' und öffnen Sie diese mit Excel. Welches Problem gibt es noch?   * Speichern Sie die Datei als ''links.csv'' und öffnen Sie diese mit Excel. Welches Problem gibt es noch?
   * Schliessen Sie Excel wieder (sonst kann die Datei ''links.csv'' mit Notepad++ nicht wieder gespeichert werden).   * Schliessen Sie Excel wieder (sonst kann die Datei ''links.csv'' mit Notepad++ nicht wieder gespeichert werden).
-  * In Notepad++ und Encoding -> Convert to ANSI und speichern Sie wieder. +  * In Notepad++ kann die Codierung angepasst werden. Im Menu Encoding -> Convert to ANSI. Speichern Sie wieder mit **Ctrl-S**
-  * Öffnen Sie die Datei noch einmal mit Excel und überprüfen Sie, ob das Problem weiter besteht.+  * Öffnen Sie die Datei noch einmal mit Excel und überprüfen Sie, ob das Problem jetzt behoben ist.
 </WRAP> </WRAP>
  
 <hidden Lösungsvorschläge> <hidden Lösungsvorschläge>
-  * Eine Suche nach ''notepad++ delete all lines not containing a pattern'' hat als ersten Treffer fogende Seite ergeben: https://superuser.com/questions/290247/delete-all-lines-in-notepad-except-lines-containing-a-word-i-need/292677 wobei wieder der erste Lösungsvorschlag zum Erfolg führt.+  * Eine Suche nach ''notepad++ delete all lines not containing a pattern'' hat als ersten Treffer folgende Seite ergeben: https://superuser.com/questions/290247/delete-all-lines-in-notepad-except-lines-containing-a-word-i-need/292677 wobei wieder der erste Lösungsvorschlag zum Erfolg führt.
 </hidden> </hidden>
  
Line 37: Line 36:
 <WRAP info> <WRAP info>
   * Das **Encoding** gibt an, wie Buchstaben (insbesondere Sonderzeichen wie ä, é etc.) codiert, d.h. binär dargestellt werden.   * Das **Encoding** gibt an, wie Buchstaben (insbesondere Sonderzeichen wie ä, é etc.) codiert, d.h. binär dargestellt werden.
-  * Praktisch alle Webseiten und Computersysteme verwenden heute (und schon seit langem) das universelle UTF-8, ausser natürlich Microsoft Windows :-/+  * Praktisch alle Webseiten und Computersysteme verwenden heute (und schon seit langem) das universelle Encoding UTF-8, ausser natürlich Microsoft Windows :-/
 </WRAP> </WRAP>
 +
 +===== Regular Expressions =====
 +  * {{lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:regexp.pdf|Slides zu Regular Expressions}}
 +
 +
 +===== Summe von Zahlen =====
 +<WRAP todo>
 +Bestimmen Sie die Summe der Zahlen in folgender Datei: {{lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:zahlen.txt}}.
 +
 +Beachten Sie, dass
 +alle Zahlen Ganzzahlen sind, d.h. das Komma steht als Trennzeichen für
 +Tausender (amerikanisches Format). Beachten Sie ebenfalls, dass die 
 +Anzahl Leerschläge zwischen den Zahlen variabel sind.
 +
 +Die Summe ist 55'061'026.
 +</WRAP>
 +
 +<hidden Lösungshilfen>
 +  * Die Kommas können einfach durch nichts ersetzt werden.
 +  * Alle aufeinanderfolgenden Leerschläge müssen durch einen einzigen Strickpunkt '';'' ersetzt werden. Formulieren Sie dazu eine Regular Expression.
 +</hidden>
 +===== Oh no, pdf =====
 +<WRAP todo>
 +  * Übertragen Sie folgende Tabelle in Excel und überprüfen Sie die Summe: {{lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:ohnopdf.pdf}}
 +  * Für diejenigen, die es so richtig mühsam wollen, gleiche Aufgabe aber mit einem "Scan" der PDF-Seite: {{lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:ohnopdf.png?50}}
 +</WRAP>
 +
 +===== HTML-Tabelle nach CSV konvertieren =====
 +<WRAP todo>
 +  * Erstellen Sie eine von Excel lesbare CSV-Datei aus folgender HTML-Tabelle: {{lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:table1.html}}
 +  * Berechnen Sie die Summe aller Einträge.
 +Hinweis: Es gibt viele Möglichkeiten, diese Aufgabe zu lösen.
 +</WRAP>
 +
 +<hidden Lösungshilfen>
 +  * Oft ist ein Copy-Paste aus dem Browser einfacher, als die Analyse des HTML-Codes.
 +  * Es gibt online-Tools, die diese Konversionen machen, googeln Sie danach (auch auf English!)
 +  * Das "Problem" sind hier die Tausendertrennzeichen (Apostroph), die müssen wohl oder übel in einem Text-Editor (für Sie Notepad++) ersetzt werden.
 +</hidden>
 +
  • lehrkraefte/blc/informatik/glf4-20/umgang-mit-dateien/challenge4.1614163615.txt.gz
  • Last modified: 2021/02/24 11:46
  • by Ivo Blöchliger