Thread Auslesen aus .txt bis Trennzeichen, wie?: Auslesen aus .txt bis Trennzeichen, wie? (51 answers)
Opened by Gast at 2005-10-26 14:09

AndreasM
 2005-10-26 14:30
#59345 #59345
User since
2005-10-08
31 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,
Ich hatte mal sowas, um Tabulatorgetrennte Dateien in eine Excel-Datei zu schreiben.
Im Prinzip hast Du das gleiche Problem.
Das hier ist nur ein Beispiel, und bitte bedenke: Ich bin auch Neuling :)
Das Beispiel nimmt an, dass Deine Eingabedatei Semikolon getrennt ist, und Deine Ausgabedatei tabulatorgetrennt:
--schnipp
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
foreach my $TABDATEI (glob("*.txt")){
  open (EINGABEFILE, "<$TABDATEI") or warn "Kann $TABDATEI nicht lesen!\n";
  open (AUSGABEFILE, ">$TABDATEI.neu.txt");
   while (<EINGABEFILE>) {
       chomp;
       # Split on single tab
       my @Fld = split(';', $_);

       foreach my $token (@Fld) {
           print AUSGABEFILE "$token\t"
           }
       print AUSGABEFILE "\n";
       }
 }

--schnipp--

Das hier ist der Code von meinem, äh, TabToExcel-Skript. Vielleicht hilft es Dir was.

--schnipp--
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
#! D:\Perl\bin

use Spreadsheet::WriteExcel::Big; # ben÷tigt IO::Stringy and OLE::Storage_Lite

my $Dateiendung=$ARGV[0];
unless (defined($Dateiendung)){
   print "Bitte Dateiendung angeben: ";
   chop($Dateiendung = <STDIN>);}

unless (defined (my $filename = glob("*.$Dateiendung"))){
   warn "Keine Datei zu verarbeiten!\nScript wird beendet.\n";
   sleep 5;
   die;}
#Ende der &▄berpr³fung

$Dateiendung=~ m/([a-z_0-9]+$)/i;
foreach my $TABDATEI (glob("*.$1")){
   my $SHEETCOUNTER = 1;
   $TABDATEI=~ m/(^[^.]+)/i;
   print "verarbeite $TABDATEI\n";
   open (TABFILE, "<$TABDATEI") or warn "Kann $TABDATEI nicht lesen!\n";
   # Create a new Excel workbook
   my $workbook = Spreadsheet::WriteExcel::Big->new("$1.xls");
   my $worksheet = $workbook->add_worksheet();   # Sheet1

   # Row and column are zero indexed
   my $row = 0;

   while (<TABFILE>) {
       chomp;
       # Split on single tab
       my @Fld = split('\t', $_);

       my $col = 0;
       foreach my $token (@Fld) {
           $worksheet->write_string($row, $col, "$token");
           $col++;
           if ($col > 255) {
               warn ("Fehler! Maximale Spaltenzahl ³berschritten!\nScript wird beendet");
               <>;
               die;}
       }
       print STDOUT ("Arbeitsblatt $SHEETCOUNTER, Zeile $row\n");
       $row++;
       if ($row > 65535) {
           $row = 0;
           $SHEETCOUNTER++;
           $worksheet = $workbook->add_worksheet();
           }
   }
$workbook->close();
close TABFILE;}


exit;

--schnipp--

Grüße
AndreasM\n\n

<!--EDIT|renee|1130328238-->

View full thread Auslesen aus .txt bis Trennzeichen, wie?: Auslesen aus .txt bis Trennzeichen, wie?