Schrift
[thread]11947[/thread]

Felder zusammenfassen

Leser: 1


<< >> 3 Einträge, 1 Seite
Gast Gast
 2008-05-31 14:04
#110514 #110514
Hallo zusammen,

ein Planungsprogramm für Seminarveranstaltungen liefert mir eine ASCII-Textdatei mit folgendem Aufbau:
Name,Jahr,Monat,Tag,Stunde,Thema,Gruppe,Ort

MS Access mosert beim Import der Datei, dass das Feldtrennzeichen gleich dem Dezimaltrennzeichen oder Texttrennzeichen sei. Ich hab's geschafft, das Komma durch einen Tabulator zu ersetzen. Außerdem habe ich die Feldnamen zusätzlich als erste Zeile eingefügt.

Jetzt wäre es noch schön, wenn ich auch noch die Felder
- Jahr,Monat,Tag
in die Form TT.MM.JJ (oder auch TT.MM.JJJJ) bekommen könnte.

Nur reichen dazu leider meine Perl-Kenntnisse nicht (mehr) aus und ich bräuchte das dringend, damit ich weitermachen kann.

Mein bisheriger Code fürs Umwandeln:
while(my $line = <$in>){
chomp $line;
my @cols = split /,/,$line;
print $out join("\t",@cols[@wanted]),"\n";

# kommas durch tabs ersetzen
$line =~ tr/,/\t/;
}

Hier, denke ich, müsste auch dieses Umtauschen und Zusammenführen der drei Datumsspalten hin.

Vielen Dank für Hinweise.


Gruß,

Stefan
Taulmarill
 2008-05-31 16:56
#110521 #110521
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
ohne die Eingangsdaten gesehen zu haben würde ich mal folgendes vorschlagen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
use strict;
use warnings;

while(my $line = <DATA>){
chomp $line;
my( $name, $jahr, $mon, $tag, $std, $thema, $grp, $ort ) = split /,/,$line;
print "$name\t$tag.$mon.$jahr\t$std\t$thema\t$grp\t$ort\n";
}

__DATA__
Name,Jahr,Monat,Tag,Stunde,Thema,Gruppe,Ort
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Gast Gast
 2008-05-31 17:41
#110526 #110526
Hallo Taulmarill,

vielen Dank, klappt super.


Gruß,

Stefan
<< >> 3 Einträge, 1 Seite



View all threads created 2008-05-31 14:04.