Perl in .csv schreiben.

Dieses Thema im Forum "Webmaster Hilfe / Programmierer Forum" wurde erstellt von Freki, 26.03.2013.

  1. Freki

    Freki Benutzer

    Dabei seit:
    22.03.2013
    Beiträge:
    89
    Zustimmungen:
    0
    Hallo Leute, ich habe mal ne Frage.
    Und zwar hab ich ein skript gebaut, das Die Mailexchanges von Websites überprüfen soll.
    Die Websites werden in eine .csv-Datei geschrieben und wenn man das Skript ausführt, soll es sich die Daten mithilfe der .csv-Datei suchen. Soweit so gut.

    Nun soll er aber das ganze wieder zurück (oder in eine andere .csv-Datei) schreiben und da ist mein Problem.

    Hier erstmal der Code, wie er bisher ausschaut:
    Code:
    #!/usr/bin/perl -w
    
    # Einlesen der Datei
    
    open(DAT, "test.csv") or die "$!";
    while ($line=<DAT>) {
    push (@record,$line);
    }
    close(DAT);
    
    #Beginn der Schleife:
    
    for(my $i = 0;$i <= $#record;$i++) {
    
    @array= split(/;+/,$record[$i]);
    
    # Ausführung des Dig-Befehls(mit Anzeige):
    
    print "$array[0]\n";
    system ("dig $array[0] mx +short");
    $prog = `dig $array[0] mx +short`;
    
    # Überprüfung, ob ein MX vorhanden ist:
    
    if ( "$prog" eq "") {
    $prog = "kein Mailexchange\n"; }
    
    $a = $array[0];
    $b = $array[1];
    $c = $prog;
    
    # Der Chomp entfernt den zeilenumbruch der zweiten Zeile
    
    chomp ($b);
    
    # Ab hier beginnt das schreiben in die neue oder alte Datei
    
    open (WRITE, ">testwrite2.csv") or die $!;
    print WRITE "$a;$b;$c;";
    close (WRITE);
    
    print "$a;$b;$c;";
    }
    ~ 
    Hier auch mal, wie die ursprüngliche .csv aussieht:

    website.com | "unwichtig" | "Hier sollen dann die exchanges rein |
    beispiel.com | "unwichtig" | "Hier auch wieder die exchanges hin |


    u.s.w....

    Jetzt ist das Problem, dass mein skript folgendes macht, oder nicht macht:

    Er trennt Sachen, die eigentlich zusammen in eine Spalte sollten, weil dort ein Leerzeichen vorkommt. :confused:

    Der Dig-Befehl gibt mehrere Werte aus, also z.B.:

    10 wat.weiß.ich.de
    30 irgendwas.com

    Diese Werte trennt die .csv Datei dann, dass es mit Endeffekt so aussieht:

    website.com | "unwichtig" | 10 | wat.weiß.ich.de
    10 | irgendwas.com | | |

    anstatt so:

    website.com | "unwichtig" | 10 wat.weiß.ich.de 30 irgendwas.com


    Und dann noch ein weiteres Problem: ich weiß nciht, wie ich ihm sagen sol, dass er nach einem Schleifendurchlauf eine Zeile tiefer weiter machen soll, somit verschwindet jeder Eintrag, bis auf der letzte.

    Ich hoffe ich konnte das Problem schon gut genug schildern und bedanke mich schonmal rechtherzlich für eure Hilfe :D
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. Lotus

    Lotus Erfahrener Benutzer

    Dabei seit:
    17.02.2007
    Beiträge:
    2.428
    Zustimmungen:
    0
    Ich kann selbst kein Perl, aber deine Probleme scheinen nicht unbedingt Perl spezifisch zu sein. Wenn du eine Datei beschreibst (mit Write), dann wird die Datei genommen und "überschrieben", fall sie bereits existiert. Du willst allerdings etwas zur Datei hinzufügen, dafür verwendet man normalerweise "Append". Schau mal ob Perl sowas kann ;) <-- Das sollte dein Problem mit der Schleife beheben.

    Dein anderes Problem habe ich nicht richtig verstanden. Was genau steht denn in a,b und c drin? Sicher das er Probleme wegen den Leerzeichen hat und nicht das dort "\n" drin stehen?
     
  4. #3 Blaxxun, 26.03.2013
    Blaxxun

    Blaxxun aka Noisy

    Dabei seit:
    06.11.2005
    Beiträge:
    6.171
    Zustimmungen:
    0
    Code:
    open (WRITE, ">testwrite2.csv") or die $!;
    Mit ">>testwrite2.csv"

    öffnest du eine Datei und fügst den Inhalt hinten dran. mit > überschreibst du.
     
Thema: Perl in .csv schreiben.
Besucher kamen mit folgenden Suchen
  1. perl trennen csv if

    ,
  2. liste in einer csv datei schreiben perl

    ,
  3. array variablen in gruppen trennen perl

    ,
  4. perl csv datei einlesen
Die Seite wird geladen...

Perl in .csv schreiben. - Ähnliche Themen

  1. Datenverlust beim schreiben, Ereignis ID 50

    Datenverlust beim schreiben, Ereignis ID 50: Folgender Fehler: Datenverlust beim Schreiben. Nicht alle Daten für Datei "\server\Ordner\Ordner wurden gespeichert. Die Daten gingen verloren....
  2. Python CSV Writer

    Python CSV Writer: HI leute, kann mir jemand sagen wie ich dem csv writer sagen kann dass er mir nicht in die Datei schreiben soll sondern dass ich die Ausgabe...
  3. Laggs beim Schreiben

    Laggs beim Schreiben: Verzögerungen beim Schreiben Guten Tag Community. Ich habe seit 2 Wochen einen neuen Rechner. Heute ist es zum zweiten Mal (seitdem ich den...
  4. Computer hängt sich auf im Internet (Videos, Mails schreiben) - HILFE

    Computer hängt sich auf im Internet (Videos, Mails schreiben) - HILFE: Hi, habe ein Problem, das sehr nervt! Mein PC friert ab und zu ein, wann er will. ZB beim Mails-schreiben im Internet, zB bei Facebook,aber auch...
  5. Funktion schreiben, welche zählt wie viel Stellen eine Zeichenkette hat

    Funktion schreiben, welche zählt wie viel Stellen eine Zeichenkette hat: Wie schreibe ich eine Funktion in C, die zählt wieviele Stellen eine Zeichenkette hat ohne die string.h Bibliothek einzubinden? Finde leider...