Ergebnis 1 bis 10 von 10

Thema: Dateiverarbeitung mit PERL

  1. #1
    HTML Newbie
    Registriert seit
    27.04.2010
    Ort
    Giessen-Lützellinden
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Dateiverarbeitung mit PERL

    Hallo Zusammen,
    ich bin recht neu in der PERL-Umgebung und habe erst ein paar wenige Programme geschrieben. Jetzt benötige ich dringend Hilfe.
    Hier mein Problem:
    Normalerweise bekomme ich aus unserem Vorsystem eine Datei, die nach jedem Datensatz einen CR hat, somit läßt sich die Datei sehr gut verarbeiten (einlesen, nach Vorgaben verändern, ausgeben). Jetzt haben wir ein neues Frontsystem, dass mir eine Datei liefert mit einem schier endlos langem Satz (ca. 27.000 Sätze à 2160 Bytes). Mein erstelltes Programm läuft genau einmal und gibt den Satz ohne Änderung raus. Das ist der Fehler.
    Wie muss ich jetzt das PERL-PGM gestalten, dass es aus einem endlos langen Satz immer wieder die Teilbereiche (Länge 2160) ausliest, und bei einem bestimmten Kriterium eine Änderung vornimmt? Ich bin völlig hilflos.
    Ich wäre sehr froh, wenn mir ein erfahrener Programmierer an dieser Stelle helfen kann.

    Sollten Rückfragen sein, so stehe ich gerne zur Verfügung.
    Ich wünsche allen beteiligten einen schönen Tag und
    vielen Dank im Voraus für diejenige oder denjenigen, die mir die Zeit opfert und hilft.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: Dateiverarbeitung mit PERL

    Mit Quellcode könnte man dir besser helfen. Aber dennoch ein Tipp: es gibt die Funktion zum Einlesen von einer Datei. Das Resultat ist ein Array. Dieses Array musst Du durchgehen und kannst somit zeilenweise die Inhalte verarbeiten, neu zusammensetzen und hinterher speichern.

  3. #3
    König(in) Avatar von crAzywuLf
    Registriert seit
    03.02.2009
    Beiträge
    1.175
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Dateiverarbeitung mit PERL

    So kannst du die Datei byteweise einlesen
    Code:
    $file = 'datei.txt';
    $text_neu = '';
    open IN, $file or die $!;
    while ($bytesread = read(*IN, $buffer, 2160))
    {
        $text_neu .= $buffer . "\n";
    }
    close IN;
    
    print $text_neu;
    Geändert von crAzywuLf (28.04.2010 um 10:30 Uhr)
    Gruß crAzywuLf

  4. #4
    HTML Newbie
    Themenstarter

    Registriert seit
    27.04.2010
    Ort
    Giessen-Lützellinden
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Dateiverarbeitung mit PERL

    Hallo Threadi,
    anbei der von mir erstellte QuellCode, der aber nicht so funktioniert wie er soll.

    #!/bin/perl
    open INFILE, "<y:\\samba\\user\\kto\\sambain.dat";
    open OUTFILE, ">y:\\samba\\user\\kto\\Einzelsatz_SAMBAIN.dat ";
    my @Datensatz = ();
    while (<INFILE>) {
    chomp;
    @Datensatz = $_ =~ /(.{2160})/;
    if (substr($Datensatz[0],0,5) eq "02160" ) {
    if (substr($Datensatz[0],113,5) eq "40002") {
    print "Datensatz gefunden\n";
    print OUTFILE "@Datensatz\n";
    last;
    }
    }
    }
    close (INFILE);
    close (OUTFILE);

    Nochmal zum Verständnis. Ich möchte, dass das Programm mir aufgrund eines Kriteriums (oder auch mehrere mit && verknüpft) den entsprechenden Datensatz separat ausgibt und danach aufhört. Der einzulesende Datensatz ist endlos lang, fängt aber alle 2160 Bytes mit dem Längenfeld (5-stellig = 02160) an.

    Ich würde mich freuen, wenn ich Hilfe bekommen würde.
    Danke im Voraus und eine schöne Zeit.
    Liebe Grüße
    Th. Schäfer

  5. #5
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: Dateiverarbeitung mit PERL

    Wenn Du es so formulierst wäre eine do-Schleife wohl das Richtige für dich:
    http://de.selfhtml.org/perl/sprache/schleifen.htm#do

  6. #6
    HTML Newbie
    Themenstarter

    Registriert seit
    27.04.2010
    Ort
    Giessen-Lützellinden
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Ausrufezeichen AW: Dateiverarbeitung mit PERL

    Hallo Threadi,
    wäre es zuviel verlangt, wenn Sie mir bezogen nauf mein Script die Lösung bauen würden? Ich komme mit dem Beispiel nicht klar und weiß auch nicht, wie ich es umsetzen soll. Da ich Anfänger bin und mich PERL noch nicht so auskenne, würde mir diese Hilfe weiterhelfen.

    Danke für die Unterstützung im Voraus und ein schönes, erholsames WE.

    Viele Grüße
    Th. Schäfer

  7. #7
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: Dateiverarbeitung mit PERL

    Kann ich schlecht machen, da ich nicht erkenne was bei Dir der Stopp-Wert wäre bis zu dem die Schleife läuft. Im übrigen siezt man sich hier nicht

  8. #8
    HTML Newbie
    Themenstarter

    Registriert seit
    27.04.2010
    Ort
    Giessen-Lützellinden
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Dateiverarbeitung mit PERL

    Guten morgen Threadi,
    danke für den Hinweis mit dem SIE. Ich wollte höflich sein, da ich mein Gegenüber ja nicht persönlich kenne. Nochmals Danke.

    Meine erste Bedingung ist, jeder Satz sollte mit dem Längenfeld-Inhalt "02160" beginnen. Sollte normalerweise für jeden Satz gelten.
    Der Ausstiegs-Stopp-wert ist dann die nächste Bedingung. Wenn der Satz an einer vorgegebenen Stelle die "40002" hat, habe ich den Satz gefunden, und der soll dann rausgeschrieben werden. Da es immer nur ein Satz mit dem Key geben kann, kann das PGM hier aufhören.

    Hilft Dir das weiter?
    Es wäre schön, wenn Du mir hier helfen könntest.
    Danke im Voraus für Deine Bemühungen und ich wünsche Dir ein schönes WE.
    Viele Grüße
    Th. Schäfer

  9. #9
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: Dateiverarbeitung mit PERL

    Also auf deinen obigen Quelltext bezogen würde ich es so probieren:

    Code:
    #!/bin/perl
    open INFILE, "<y:\\samba\\user\\kto\\sambain.dat";
    open OUTFILE, ">y:\\samba\\user\\kto\\Einzelsatz_SAMBAIN.dat  ";
    my @Datensatz = ();
    do {
     chomp;
     @Datensatz = $_ =~ /(.{2160})/;
      print "Datensatz gefunden\n";
      print OUTFILE "@Datensatz\n";
      }
     }
    } until { substr($Datensatz[0],0,5) eq "02160" && substr($Datensatz[0],113,5) eq "40002")
    close (INFILE);
    close (OUTFILE);
    Ungetestet, aber sollte vom Sinn her stimmen wenn ich es richtig verstanden habe.

  10. #10
    HTML Newbie
    Themenstarter

    Registriert seit
    27.04.2010
    Ort
    Giessen-Lützellinden
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Dateiverarbeitung mit PERL

    Hallo Threadi,
    vielen Dank für deinen Beitrag . Leider funktoniert er nicht. Das PGM läuft zwar fehlerfrei, schreibt mir aber bis zu 50.000 !!! mal raus "Datensatz gefunden" bis ich dann abbreche. In der einzulesenden Test-Datei sind insgesamt nur 3 (Drei) Datensätze, allerding ohne CR, sodass es sich als ein Satz darstellt. Im mittleren Teil (2. Satz) ist der gesuchte Begriff vorhanden, so dass das PGM eigentlich nach dem 2. Array aufhören müßte.
    Ich bin sehr frustriert , da ich nicht mehr weiß wo vorne und hinten ist.

    Habe schon mehrere Foren und Hinweise durchgeackert , kriege aber nichts geregelt.

    Es wäre schön , wenn Du Dich nochmal meiner erbarmen könntest.
    Im Voraus vielen, vielen Dank für die Unterstützung.

    Liebe Grüße aus FFM

Ähnliche Themen

  1. cgi (php, perl ...)
    Von MSaalfrank im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 3
    Letzter Beitrag: 21.05.2007, 11:25
  2. PERL - Uploadscript
    Von Ivanman im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 03.04.2007, 20:33
  3. von php zu perl
    Von ledzep im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 15.01.2007, 13:28
  4. PAR - Anleitung (Perl)
    Von Thomas Fuchs im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 05.06.2006, 14:29
  5. perl-php
    Von Lion im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 13.02.2005, 17:40

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •