TestTool/Datenimport: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 126: Zeile 126:


Bsp:
Bsp:
ID;Frage;Fragetyp;Schwierigkeit;Fachgebiet;Lernwoche
ID;Frage;Fragetyp;Schwierigkeit;Fachgebiet;Lernwoche
1; Wie wird in der Bash eine Variable gesetzt?; ; ; ;  
1; Wie wird in der Bash eine Variable gesetzt?; ; ; ;  
2; Wandeln sie die binäre IP-Adresse 1000 0011.0110 1011.0000 0011.0001 1000 in dezimaler Form um:; ; ; ;  
2; Wandeln sie die binäre IP-Adresse 1000 0011.0110 1011.0000 0011.0001 1000 in dezimaler Form um:; ; ; ;  
3; Wie wird die IP-Adresse 165.18.218.66 binär dargestellt?; ; ; ;  
3; Wie wird die IP-Adresse 165.18.218.66 binär dargestellt?; ; ; ;  
4; Der Ethernet-Standard liegt in der Verantwortung eines IEEE‑Unterkomitees. Welche Bezeichnung trägt es?; ; ; ;  
4; Der Ethernet-Standard liegt in der Verantwortung eines IEEE‑Unterkomitees. Welche Bezeichnung trägt es?; ; ; ;  
5; In welcher Schicht des OSI-Modells arbeitet ein Gerät, das zur Signalverstärkung dient?; ; ; ;  
5; In welcher Schicht des OSI-Modells arbeitet ein Gerät, das zur Signalverstärkung dient?; ; ; ;  
6; Welche Geräte leiten Broadcasts weiter?; ; ; ;  
6; Welche Geräte leiten Broadcasts weiter?; ; ; ;  
7; Mit welcher/n aktiven Netzwerkkomponente(n) können Sie zwei Subnetze verbinden?; ; ; ;  
7; Mit welcher/n aktiven Netzwerkkomponente(n) können Sie zwei Subnetze verbinden?; ; ; ;  
8; Was sind Monomode-LWL?; ; ; ;  
8; Was sind Monomode-LWL?; ; ; ;  


[[Category:Projekt]]
[[Category:Projekt]]
[[Category:Programmierung]]
[[Category:Programmierung]]

Version vom 24. Juni 2020, 14:15 Uhr

Eine Textdatei soll so umgewandelt werden, dass sie später als CSV-Datei weitergenutzt werden kann.

Textdatei

  • Textdatei besteht aus Fragen und Antworten
  • Vor jeder Frage ist eine Nummer
  • Vor jeder Antwort steht ein Buchstabe(A-F)
  • Jede Frage hat eine unterschiedliche Anzahl an Antworten

Beispielsweise:

1. Wie lautet der Text zu dieser Frage?
A Keine Ahnung
B Frag mal Google
C Ähm...
D Ich nehm den Publikumsjoker
2. Was halten Sie zum Thema IT-Sicherheit?
A Was ist IT-Sicherheit?
B Finger weg
C Ich kenn mich nicht aus
D Das ist doch dieser Alien
E Fragen wir mal Google
F Windows ist total toll
3. Was ist besser: Windows oder Linux?
A Windows
B Linux
C Beides
D Keins
E Kenn ich nicht
...
...

Ziel

  • Datei soll in zwei Dateien geteilt werden
  • Fragen auf eine Datei, Antworten auf eine andere Datei
  • Vor den Fragen und Antworten soll sich eine Nummer befinden, um ihre Zugehörigkeit später zu bestimmen
  • Die Datei sollen so formatiert werden, dass sie sich leicht als CSV-Dateien in die Datenbank übertragen können
fragen.txt antworten.txt
1 Wie lautet der Text zu dieser Frage?
2 Was halten Sie von IT-SIcherheit?
3 Was ist besser: Windows und Linux?
...
1 Keine Ahnung
1 Frag mal Google
1 Ähm...
1 Ich nehm den Publikumsjoker
2 Was ist IT-Sicherheit?
2 Finger weg
2 Ich kenn mich nicht aus
2 Das ist doch dieser Alien
2 Fragen wir mal Google
2 Windows ist total toll
3 Windows
3 Linux
3 Beides
3 Keins
3 Kenn ich nicht
...

Vorgehen

  • Einfaches Rausnehmen und Ersetzen durch Reguläre Ausdrücke reicht nicht aus
  • Es muss eine Prozedur erstellt werden
  • Empfehlung: AWK, eine Programmiersprache zur Umwandlung von Textdateien

AWK-Script

  • Erster Entwurf:
{
  if($1 ~ /[0-9]./)
  {
    row++;
  }
  print row, $0;
}

Führt eine Nummer vorne ein, die Frage und deren Antworten nummeriert:

1 1. Wie lautet der Text zu dieser Frage?
1 A Keine Ahnung
1 B Frag mal Google
1 C Ähm...
1 D Ich nimm den Publikumsjoker
2 2. Was halten Sie zum Thema IT-Sicherheit?
2 A Was ist IT-Sicherheit?
2 B Finger weg
2 C Ich kenn mich nicht aus
2 D Das ist doch dieser Alien
2 E Fragen wir mal Google
2 F Windows ist total toll
3 3. Was ist besser: Windows oder Linux?
3 A Windows
3 B Linux
3 C Beides
3 D Keins
3 E Kenn ich nicht
...
...
  • Zweiter Entwurf:
{
  if($1 ~ /[0-9]./)
  {
    row++;
    $1 = "";
    print row $0 >> "fragen.txt";
  }
  else
  {
    $1 = "";
    print row, $0 >> "antworten.txt";
  }
}

Führt eine Nummer vorne ein, die Frage und deren Antworten nummeriert; trennt Fragen und Antworten und packt sie in ihre jeweiligen Dateien ab. Das Ergebnis sind die beiden Dateien von oben


Konventionen zum Aufbau einer CSV-Datei

  • Trennzeichen von Datensätzen wird ein Zeichen verwendet. (Häufig ist es der Zeilenumbruch)
  • Trennzeichen von Datenfeldern(Spalten) wird ebenfalls ein Zeichen verwendet. (Meistens das Komma, aber auch das Semikolon)
  • Feldbegrenzerzeichen benutzt man um Sonderzeichen benutzen zu können. (Genommen wird das Anführungszeichen")
  • Erster Datensatz kann ein Kopfdatensatz sein, der die Spaltennamen definiert.
  • Jeder Datensatz soll die gleiche Anzahl Spalten enthalten.

Bsp:

ID;Frage;Fragetyp;Schwierigkeit;Fachgebiet;Lernwoche
1; Wie wird in der Bash eine Variable gesetzt?; ; ; ; 
2; Wandeln sie die binäre IP-Adresse 1000 0011.0110 1011.0000 0011.0001 1000 in dezimaler Form um:; ; ; ; 
3; Wie wird die IP-Adresse 165.18.218.66 binär dargestellt?; ; ; ; 
4; Der Ethernet-Standard liegt in der Verantwortung eines IEEE‑Unterkomitees. Welche Bezeichnung trägt es?; ; ; ; 
5; In welcher Schicht des OSI-Modells arbeitet ein Gerät, das zur Signalverstärkung dient?; ; ; ; 
6; Welche Geräte leiten Broadcasts weiter?; ; ; ; 
7; Mit welcher/n aktiven Netzwerkkomponente(n) können Sie zwei Subnetze verbinden?; ; ; ; 
8; Was sind Monomode-LWL?; ; ; ;