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
Last revision Both sides next revision
lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:challenge4 [2021/02/24 11:49]
Ivo Blöchliger [Einführungsbeispiel]
lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:challenge4 [2021/03/04 13:31]
Ivo Blöchliger
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'' (d.h. wir fügen einen Zeilenumbruch vor jedem link ein). 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>
 +===== 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.txt
  • Last modified: 2021/03/04 13:33
  • by Ivo Blöchliger