Rolf Rost: Funktion gesucht...

Hallo,

ich suche die PERL Funktion, die in einem String die Anzahl eines Zeichens ermittelt, z.B., wie oft ein Semikolon in einem String vorkommt.

Viele Grüße
Rolf

  1. Hallo Rolf,

    ich suche die PERL Funktion, die in einem String die Anzahl eines Zeichens ermittelt, z.B., wie oft ein Semikolon in einem String vorkommt.

    Probier mal das folgende kleine Test-Script (die erste Zeile zum Perl-Interpreter musst Du natuerlich anpassen):

    #!/www/bin/perl/bin/perl.exe

    $Textzeile = "Vorname;Name;Anschrift;PLZ;Ort;Telefon;Telefax;EMail";
    $Trennzeichen = ";";
    $Anzahl = 0;
    for($i=0; $i<length($Textzeile); $i++) {
    if(substr($Textzeile,$i,1) eq $Trennzeichen) {
       $Anzahl++;
    }
    }
    print "Content-type: text/html\n\n";
    print "<html><head><title>User</title></head>\n";
    print "<body>\n";
    print "Anzahl Trennzeichen: ", $Anzahl, "\n";
    print "</body></html>\n";
    exit(0);

    viele Gruesse
      Stefan Muenz

    1. Hallo Stefan,
      vielen Dank für Deinen Lösungsvorschlag.
      Herzliche Grüße aus Erfurt
      Rolf Rost

    2. Hallo Stefan,
      vielen Dank für den Lösungsansatz, das Script läuft!!!
      Hier isses:

      #--------------------Schnipp------------------------------------
      #dieses Script liest eine CSV Datei und schreibt die
      #Daten in eine HTML Tabelle
      #Die Zeilen- und Spaltenanzahl ergibt sich automatisch

      print "Content-type: text/html\n\n";
      print "<HTML><HEAD><TITLE>Telefonnummern</TITLE></HEAD>
      <BODY bgcolor='silver' text='black'>";
      @Zeilen = ("");
      open(LISTE, "<adres.csv") || die "Datei mit Telefonnummern nicht gefunden\n";
      while(<LISTE>) { push(@Zeilen,$_); }
      close(LISTE);
      print '<H3>Wichtige Telefonnummern</H3>';
      $i=0;
      for(@Zeilen)
      {
      @list[$i]=$_;
      $i++;
      }
      #print $list[1],'<br>';    #ok, die erste Zeile hätten wir
      $lg = length ($list[1]);   #Die Länge der ersten Zeile steht      #also in $lg
      $zan = $i-1;           #Die Zeilenanzahl steht hier
      #Ermittelung der Spaltenanzahl
      $Trennzeichen = ";";
      $Anzahl = 0;
      for($i=0; $i<length($list[1]); $i++)
      {
      if(substr($list[1],$i,1) eq $Trennzeichen)
      {
        $Anzahl++;
      }
      }
      $span = $Anzahl+1;
      #print "Die Tabelle hat ",$span," Spalten!<br>";
      #print "Die Tabelle hat ",$zan," Zeilen";
      print "
      <TABLE border=1 cellspacing=1 align='center'>";

      $i=1;
      for(1..$zan)
      {
      @sp = split(/;/,$list[$i],$span);
      $i++;
      print "
      <TR>";
      $hilf=0;
      for (1..$span)
      {
        print "<TD>@sp[$hilf]</TD>";
        $hilf++;
      }
      </TR>
      }
      print "</TABLE>";
      print "<BR></BODY></HTML>";
      #--------------------------Schnapp-----------------------------------