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 10:41]
Ivo Blöchliger [Einführungsbeispiel]
lehrkraefte:blc:informatik:glf4-20:umgang-mit-dateien:challenge4 [2021/03/04 13:33]
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: 
 +    * 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 ''&quot;'', was für Anführungszeichen steht. 
 +  * Ersetzen Sie ''&quot;'' durch ''<nowiki>"</nowiki>'' 
 +  * 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? 
 +  * Schliessen Sie Excel wieder (sonst kann die Datei ''links.csv'' mit Notepad++ nicht wieder gespeichert werden). 
 +  * 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 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> 
 + 
 + 
 +<WRAP info> 
 +  * 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 Encoding UTF-8, ausser natürlich Microsoft Windows :-/ 
 +</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> </hidden>
  
  • lehrkraefte/blc/informatik/glf4-20/umgang-mit-dateien/challenge4.txt
  • Last modified: 2021/03/04 13:33
  • by Ivo Blöchliger