Thread CSV-Dateien in .txt (6 answers)
Opened by datenreisender at 2006-03-19 12:18

datenreisender
 2006-03-19 12:18
#63882 #63882
User since
2006-03-19
6 Artikel
BenutzerIn
[default_avatar]
hallo leute,
ich habe eine datei mit mehreren nummern, namen, adressen usw.
zb:
1; Andreas Huber;   Liststrasse 8;
1; Klaus Huber;       Liststrasse 8;
2; Harald Gaertner;  Oskarstrasse 11;
2; Sarah Gaertner;   Oskarstrasse 11;
2; Michael Gaertner; Oskartstrasse 11;
Diese schreibe ich in getrennte csv-dateien in tmp.
also entsteht dann eine 1.csv und eine 2.csv ... 1. csv enthaelt dann eben 2 datensaetze, 2.csv 3 datensaetze.
nun will ich alle abarbeiten und daraus txt erezugen (mit den formatierten inhalten der csv-dateien).

ich habe folgenden code dazu geschrieben:

Code: (dl )
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#/usr/bin/perl 

chdir "tmp";
my @csv_dateien = glob "*.csv";
$text="irgendein text";

$zaehl = 0;
$i=0;
$pruef = 0;
$x = -1;
$a = 2;
$kontrolle = 0;
for(@csv_dateien)
{
 
 $zaehler = -1;
 
if(!-e @csv_dateien[$zaehl] . ".txt")
   {

   if($pruef == 0)
    {
   
    &ausgabe();
}
 
   }
$zaehl++;
#$pruef++;
}
############################################################################
sub ausgabe {


     open DATEN, @csv_dateien[$zaehl] or die "Fehler beim Oeffnen der Datei";
     open(FILE, ">>" . @csv_dateien[$zaehl] . ".txt");
      while(<DATEN>)
       {
 push(@zeilen,$_);
}

for(@zeilen)
 {
 $i++;
 $zaehler++;
 
 if($zaehler == 0)
   {
   
    print FILE substr(@zeilen[$i],10, 30);
    print FILE "\n";
print FILE substr(@zeilen[$i],41, 7);
print FILE " ";
print FILE substr(@zeilen[$i],49, 25);
print FILE "\n";
print FILE substr(@zeilen[$i],75, 25);
print FILE "\n\n\n\n\n";
print FILE $text;
printf FILE "%-8s", "Traeger-Nr.";
printf FILE "%-16s", "      Name";
printf FILE "%-36s", "        Fehlteil";
printf FILE "%-13s", "        Ident-Nr.";
print FILE "\n";
  }
  if(substr(@zeilen[$i],101, 6) != 0)
   {
 printf FILE "%04d",substr(@zeilen[$i],101, 6) . "  ";
  }
printf FILE "%4s", "    ";
print FILE " ";
printf FILE "%21s", substr(@zeilen[$i],108, 15);
    print FILE " ";
printf FILE "%32s", substr(@zeilen[$i],131, 30);
print FILE " ";
printf FILE "%13s", substr(@zeilen[$i],199, 11);
 
 }

}

die erste und zweite csv werden noch korrekt in txt umgewandelt .. dann allerdings wird nur mehr der text angezeigt. ich weiß leider nicht was ich falsch mache ;-(
Bitte um hilfe.

lg datenreisender

View full thread CSV-Dateien in .txt