Gustl: suche von undefinierter zeichenkette zwischen 2 konstanten

ich sehe mal wieder den wald vor lauter bäumen nicht. also eine textdatei, in dieser kommt x-mal vor: VALUE="xxxx". ich muss je vorkommen die zeichenkette zwischen den " " isolieren.

also ich bitte um hilfe, nicht um eine belehrung wenn ich manche fachausdrücke falsch hier reinschreibe ! danke

--
Theorie: Alles ist möglich - Praxis: Nix funzt - Ich bin eben ein Mann der Praxis

--
G. DAVID
  1. Tag Gustl.

    also eine textdatei, in dieser kommt x-mal vor: VALUE="xxxx". ich muss je vorkommen die zeichenkette zwischen den " " isolieren.

    Lies die Datei zeilenweise ein, teste die Zeilen auf das von dir gesuchte Muster (z.B. mit einem Regulären Ausdruck) und hänge das Ergebnis an ein Array an.

    also ich bitte um hilfe, nicht um eine belehrung wenn ich manche fachausdrücke falsch hier reinschreibe ! danke

    Bitte, aber mehr Hilfestellung gibt deine Problembeschreibung leider nicht her.

    Siechfred

    1. Lies die Datei zeilenweise ein, teste die Zeilen auf das von dir gesuchte Muster (z.B. mit einem Regulären Ausdruck) und hänge das Ergebnis an ein Array an.

      Naja, mit (mich) auszudrücken komme ich wohl auch nicht klar. Mein Problem IST der Reguläre Ausdruck ! Wie drücke ich also mit einem Regulären Ausdruck folgendes aus:

      suche mir in der textdatei das vorkommen >VALUE="< .

      Soweit kein Thema.

      aber jetzt kommt mein problem

      dann gib mir alle zeichen aus bis du das nächste >"< findest, dann suche mir das nächste VALUE=" usw.

      ich weiss auch nicht wie ich es besser breschreiben kann.

  2. ich sehe mal wieder den wald vor lauter bäumen nicht. also eine textdatei, in dieser kommt x-mal vor: VALUE="xxxx". ich muss je vorkommen die zeichenkette zwischen den " " isolieren.

    sowas

      
    #!/usr/bin/perl -w  
    use strict;  
    my $text = join '', (<DATA>);  
    my @vorkommen = ( $text =~ /="([^"]*)"/g);  
      
    print "@vorkommen";  
    __DATA__  
    bla blabla bla value="val 1" bla blabla bla  
    bla blabla bla  
     value="val 2"  
    bla blabla bla  value="val 3"  
    bla blabla bla
    

    Struppi.

  3. #!/usr/bin/perl -w

    use CGI qw/:standard/;

    print header();

    my $text = join '', (<db/profil0001.txt>);
    my @vorkommen = ( $text =~ /=VALUE"([^"]*)"/g);

    print "@vorkommen";
    __DATA__

    was ist falsch, er gibt gar nix aus ! ich kapier es nicht (heul)

    1. my $text = join '', (<db/profil0001.txt>);
      my @vorkommen = ( $text =~ /=VALUE"([^"]*)"/g);

      du schriebst vorher noch, du suchst value=" und nicht =value"

      Struppi.

      1. du schriebst vorher noch, du suchst value=" und nicht =value"

        Struppi.

        Danke ! Stimmt. Aber egal wie ichs hindrehe /VALUE="   /="  oder ähnlich , gibt nix aus.

        <dateipfad/datei.txt> ist auch richtig. habe die<> schon gegen "" ersetzt, weggelassen es hilft alles nix.

        der fehler muss noch irgendwo anders liegen.

        ist >use strict< notwendig ?

        1. Danke ! Stimmt. Aber egal wie ichs hindrehe /VALUE="   /="  oder ähnlich , gibt nix aus.

          Bist du sicher das du nach dem  richtigen Pattern suchst?
          Mein Beispiel läuft ja tadellos. Kann es sein das du nicht VALUE= im Suchstring stehen hast sondern value? dann musst du hinter dem g noch ein i machen.
          Mehr über Reguläre Ausdrücke findest du auch in selfhtml http://de.selfhtml.org/perl/sprache/regexpr.htm

          <dateipfad/datei.txt> ist auch richtig. habe die<> schon gegen "" ersetzt, weggelassen es hilft alles nix.

          Du weisst wie man eine Datei einliest?
          Mein Beispiel hat (damit es auch läuft) einen spezielle Dateihandler verwendet und zwar alles was nach __DATA__ steht. Um eine richtige Datei einzulesen  musst du dies erst öffnen http://de.selfhtml.org/perl/funktionen/dateiverwaltung.htm

          ist >use strict< notwendig ?

          Nein, aber ohne kann es erheblich schwerer werden Fehler zu finden.

          Struppi.