Perl: Datei zeilenweise einlesen und Parameter zuweisen.

Gast #1298955
Hallo

Guugel mal nach split.

@feld = split(/,/, $datei);

$x = $feld[0];
$y = $feld[1];
$z = $feld[2];

Ich hoffe, die Syntax ist einigermaßen richtig.

Gruß
Joachim
Gast #1299166
Danke - scheint bei mir allerdings nicht laufen zu wollen..

hier nochmals mein code:



#!/usr/bin/perl



$file1 = "dataout.txt";

open(fout, ">$file1");

$file2 = "datain.txt";

unless( open(fin, "<$file2") ) {
die "error: could not open file '$file2':$!\n";
} # if

while($line = <fin>){

@var = split(/,/, $line);


$X =  $var[0];
$C =  $var[1];
$Zs = $var[2];
Gast #1299251
Hallo

Irgendwelche Fehlermeldungen?
Zumindest sollte irgendwas kommen, daß die abschließende Klammer }
von while fehlt.

Und als erstes ind die while-Schleife noch
chop ($line);
einfügen, dann werden die Zeilenabschließenden <\n> abgeschnitten.

Gruß
Joachim
Gast #1554986
Der Thread ist zwar schon alt, aber vielleicht interessiert es ja noch 
jemanden. Perl lebt von regulären Ausdrücken, daher sollte man sie auch 
nutzen. Mein Vorschlag:
1
# Messwertlisten
2
@x = ();
3
@y = ();
4
@z = ();
5

6
while(defined($Zeile = <>))
7
{
8
    if ($Zeile =~ m/(\d*) ?, ?(\d*) ?, ?(\d*)\s*/)
9
    {
10
        push(@x,$1);
11
        push(@y,$2);
12
        push(@z,$3);
13
    }
14
}
15

16
# Ausgabe aller Werte
17
print "Alle Werte:\n@x\n@y\n@z";
Gast #1554991
Ach ja, eines habe ich noch vergessen. Der Name der Datei kann jetzt 
beim Starten des Skriptes als Parameter übergeben werden:

perl -w Skript.pl datain.csv

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.