Hallo,
habe noch eine Frage:
Habe eine Datei mit folgendem Inhalt:
IAV1/2
Maier Josef
Neubert Thomas
Graf Alexander
Boehm Christian
Graf Philip
Mueller Jan
EAV1/2
Hans Müller
Max Mustermann
Felix Baumgartner
und möchte über ein PerlScript mit diesem Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!usr/bin/perl
use strict;
use warnings;
use DBI;
my $i;
#-----------------DATENBANK-VERBINDUNG-----------------#
my $database = DBI::->connect("dbi:SQLite:dbname=datenbank.db","","")
or die "Fehler bei Datenbankverbindung!";
# Erzeuge Tabelle falls noch keine mit dem namen schueler existiert
my $sql = 'CREATE TABLE IF NOT EXISTS schueler (namen_id INTEGER,klasse CHAR(255), name CHAR(255))';
$database->do($sql)
or die $database->errstr;
#------------------DATEI-----------------------#
my $file;
open($file,'<', "./Namen") or die "Datei $file kann nicht geoeffnet werden! $!"; #Datei Öffnen
my @datei_inhalt;
@datei_inhalt=<$file>; #Inhalt von Datei in Array datei_inhalt speichern
close($file) or die "Datei $file kann nicht geschlossen werden!: $!";
# Insert vorbereiten
$sql = 'INSERT OR REPLACE INTO schueler (namen_id,klasse, name) VALUES (?, ?, ?)';
my $statement_handler = $database->prepare($sql)
or die $database->errstr;
foreach $i(0..$#datei_inhalt)
{
print "DEBUG: $i $datei_inhalt[$i]";
# Insert mit den Daten ausführen
$statement_handler->execute($i, $datei_inhalt[$i], $datei_inhalt[$i])
or die $database->errstr;
}
print "\n";
#------------------DATEI-ENDE--------------------#
$database->disconnect
or $database->errstr;
Ich möchte nun das aus der Datei die Klasse (IAV1/2) für die Namen Maier - Müller in die Datenbank geschrieben wird, zugleich sollten die Namen unter namen in die Datenbank eingetragen werden.
Dann kommt die nächste Klasse (EAV1/2) und da das gleiche.
Ich denke mir ist klar das ich es hier ändern muss.
$statement_handler->execute($i, $datei_inhalt[$i]\n, $datei_inhalt[$i])
Nur was ?
Hab die Dateien mal im Anhang angefügt.
danke ;)
Anhänge