Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Hilfe Textdatei auslesen

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    So hier der Code:

    Code:
    my $Datei = "/tmp/data.txt";
    
    open (DATEI, $Datei); 
    my @lines=<DATEI>;      # Dateiinhalt in array speichern
    close DATEI;        	# Datei wieder schließen
    
    my $i=0;
    $i<@lines;				# $i zählt jetzt die Zeilen
    
    foreach my $line (@lines)	#Jetzt definierst Du $line jeweils als ein Element des Array @lines
    {
    $i++;					# $i immer um eins erhöhen
    #print ($i." Text: ".$lines[$i]."\n");							
    #plugin_log($plugname,"Entsorgungsdaten Line: ".$i." Text: ".$lines[$i]);	
    }
    Erklärung:
    Code:
    my $Datei = "/tmp/data.txt";
    
    open (DATEI, $Datei); 
    my @lines=<DATEI>;      # Dateiinhalt in array speichern
    close DATEI;        	# Datei wieder schließen
    Hier liest Du die Datei ein, die einzelnen Zeilen werden im Array @lines gespeichert.
    Ich hab mir angewöhnt die Arrays mit einem "s" zu versehen und die Elemente darin ohne "s"
    @lights -> $light
    @lines -> $line
    @arrays -> $array

    Code:
    my $i=0;
    $i<@lines;				# $i zählt jetzt die Zeilen
    Hier wird nochmal $i deklariert und auf das Array "gemappt" - anders kann ich es nicht ausdrücken


    Code:
    foreach my $line (@lines)	#Jetzt definierst Du $line jeweils als ein Element des Array @lines
    {
    $i++;					# $i immer um eins erhöhen
    #print ($i." Text: ".$lines[$i]."\n");							
    #plugin_log($plugname,"Entsorgungsdaten Line: ".$i." Text: ".$lines[$i]);	
    }
    Hier auch wieder ganz simpel:
    foreach my $line (@lines) {} -> "Für jedes Element ($line) im Array (@lines) mache {...}
    $i++; Jedesmal $i um eines erhöhen, deswegen muss $i vor der Schleife auf 0 gesetzt werden.

    print und plugin_log sind ja dann wieder klar ... ich habs halt auf der Konsole gemacht da gehts mit print schneller und dort kennt er plugin_log nicht.

    Viel Spaß und Gruß Mirko
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    Kommentar


      #17
      Zitat von JuMi2006 Beitrag anzeigen
      So hier der Code:

      Code:
      my $Datei = "/tmp/data.txt";
      
      open (DATEI, $Datei); 
      my @lines=<DATEI>;      # Dateiinhalt in array speichern
      close DATEI;        	# Datei wieder schließen
      
      my $i=0;
      $i<@lines;				# $i zählt jetzt die Zeilen
      
      foreach my $line (@lines)	#Jetzt definierst Du $line jeweils als ein Element des Array @lines
      {
      $i++;					# $i immer um eins erhöhen
      #print ($i." Text: ".$lines[$i]."\n");							
      #plugin_log($plugname,"Entsorgungsdaten Line: ".$i." Text: ".$lines[$i]);	
      }
      Danke Mirko, ich habe den Code 1:1 übernommen und er schreibt nichts ins log. Gar nichts!

      Code:
      my $Datei = 'myDATA/entsorgungsdaten_de_2012_markt_regenstauf.ica';
      open (DATEI, $Datei); 
      my @lines=<DATEI>;      # Dateiinhalt in array speichern
      close DATEI;        	# Datei wieder schließen
      my $i=0;
      $i<@lines;				# $i zählt jetzt die Zeilen
      foreach my $line (@lines)	{ #Jetzt definierst Du $line jeweils als ein Element des Array @lines
      	$i++;					# $i immer um eins erhöhen
      	plugin_log($plugname,"Entsorgungsdaten Line: ".$i." Text: ".$lines[$i]);	
      }
      Da kann doch etwas nicht stimmen...

      Kommentar


        #18
        Die Pfadangabe stimmt nicht, hier passt das auch als Plugin.

        Was ist Dein "myDATA" ? Wo liegt das?

        Gib den vollständigen Pfad mit anführendem Slash an "/"

        also /tmp/daten oder /mnt/usb-drive oder /home/root/xyz

        Edit:
        Füg mal eine Zeile vor dem plugin_log... ein mit:
        chomp $line;
        Das sollte die noch vorhanden Zeilenumbrüche in jeder $line entfernen.
        Umgezogen? Ja! ... Fertig? Nein!
        Baustelle 2.0 !

        Kommentar


          #19
          Jetzt stehen wir wieder auf Anfang:

          Code:
          my $Datei = '/myDATA/entsorgungsdaten_de_2012_markt_regenstauf.ics';
          open (DATEI, $Datei); 
          my @lines=<DATEI>;      # Dateiinhalt in array speichern
          close DATEI;        	# Datei wieder schließen
          my $i=0;
          $i<@lines;				# $i zählt jetzt die Zeilen
          foreach my $line (@lines)	{ #Jetzt definierst Du $line jeweils als ein Element des Array @lines
          	$i++;					# $i immer um eins erhöhen
          	chomp $line;
          	plugin_log($plugname,"Entsorgungsdaten Line: ".$i." Text: ".$line);	
          }
          Das kommt raus:
          Code:
          2012-08-17 14:12:12.805,Bewegungsmelder.pl,PM_Bad GA 0/3/140 - Wert: 00
          2012-08-17 14:12:17.663,Entsorgungsdaten.pl,Entsorgungsdaten Line: 1 Text: BEGIN:VCALENDAR
          PRODID:-//new media partners AG//Advanced Objects Web//DE
          VERSION:2.0
          CALSCALE:GREGORIAN
          METHOD:PUBLISH
          BEGIN:VEVENT
          DTSTART;VALUE=DATE:20120102
          DTEND;VALUE=DATE:20120103
          DTSTAMP:20120811T010000Z
          CLASS:PUBLIC
          DESCRIPTION:www.entsorgungsdaten.de
          ...
          Irgendwie verhält sich mein WG anders..

          Kommentar


            #20
            Ich verstehe es nicht. Habe es eben nochmal getestet und Deine hochgeladene *.ics nicht geööfnet und nur nach ics umbenannt (vermutete Codierungsprobleme) aber es sieht so aus wie in meinem Log.

            Bei mir das:
            HTML-Code:
            2012-08-17 14:19:00.806,haegar,Entsorgungsdaten Line: 1 Text: BEGIN:VCALENDAR
            2012-08-17 14:19:00.807,haegar,Entsorgungsdaten Line: 2 Text: PRODID:-//new media partners AG//Advanced Objects Web//DE
            2012-08-17 14:19:00.807,haegar,Entsorgungsdaten Line: 3 Text: VERSION:2.0
            2012-08-17 14:19:00.807,haegar,Entsorgungsdaten Line: 4 Text: CALSCALE:GREGORIAN
            2012-08-17 14:19:00.807,haegar,Entsorgungsdaten Line: 5 Text: METHOD:PUBLISH
            2012-08-17 14:19:00.807,haegar,Entsorgungsdaten Line: 6 Text: BEGIN:VEVENT
            2012-08-17 14:19:00.808,haegar,Entsorgungsdaten Line: 7 Text: DTSTART;VALUE=DATE:20120102
            2012-08-17 14:19:00.809,haegar,Entsorgungsdaten Line: 8 Text: DTEND;VALUE=DATE:20120103
            2012-08-17 14:19:00.809,haegar,Entsorgungsdaten Line: 9 Text: DTSTAMP:20120811T010000Z
            2012-08-17 14:19:00.809,haegar,Entsorgungsdaten Line: 10 Text: CLASS:PUBLIC
            2012-08-17 14:19:00.809,haegar,Entsorgungsdaten Line: 11 Text: DESCRIPTION:www.entsorgungsdaten.de
            2012-08-17 14:19:00.809,haegar,Entsorgungsdaten Line: 12 Text: SEQUENCE:0
            2012-08-17 14:19:00.809,haegar,Entsorgungsdaten Line: 13 Text: STATUS:CONFIRMED
            2012-08-17 14:19:00.810,haegar,Entsorgungsdaten Line: 14 Text: SUMMARY:Restmüll in Markt Regenstauf: Regenstauf (gesamt)
            2012-08-17 14:19:00.811,haegar,Entsorgungsdaten Line: 15 Text: TRANSP:TRANSPARENT
            2012-08-17 14:19:00.811,haegar,Entsorgungsdaten Line: 16 Text: END:VEVENT
            2012-08-17 14:19:00.811,haegar,Entsorgungsdaten Line: 17 Text: BEGIN:VEVENT
            2012-08-17 14:19:00.811,haegar,Entsorgungsdaten Line: 18 Text: DTSTART;VALUE=DATE:20120109
            2012-08-17 14:19:00.811,haegar,Entsorgungsdaten Line: 19 Text: DTEND;VALUE=DATE:20120110
            2012-08-17 14:19:00.811,haegar,Entsorgungsdaten Line: 20 Text: DTSTAMP:20120811T010000Z
            2012-08-17 14:19:00.812,haegar,Entsorgungsdaten Line: 21 Text: CLASS:PUBLIC
            2012-08-17 14:19:00.813,haegar,Entsorgungsdaten Line: 22 Text: DESCRIPTION:www.entsorgungsdaten.de
            2012-08-17 14:19:00.813,haegar,Entsorgungsdaten Line: 23 Text: SEQUENCE:0
            2012-08-17 14:19:00.813,haegar,Entsorgungsdaten Line: 24 Text: STATUS:CONFIRMED
            2012-08-17 14:19:00.813,haegar,Entsorgungsdaten Line: 25 Text: SUMMARY:Papiertonne in Markt Regenstauf: Regenstauf westlich vom Regen (mit: am Spangl\, Bahnweg\, Gutenbergstraße)\, Diesenbach\, Steinsberg\, Eitlbrunn\, Ramspau\, Hirschling\, Hagenau\, Kleinramspau\, Wöhrhof\, Heilinghausen\, Karlstein\, Schneitweg
            2012-08-17 14:19:00.813,haegar,Entsorgungsdaten Line: 26 Text: TRANSP:TRANSPARENT
            2012-08-17 14:19:00.813,haegar,Entsorgungsdaten Line: 27 Text: END:VEVENT
            2012-08-17 14:19:00.814,haegar,Entsorgungsdaten Line: 28 Text: BEGIN:VEVENT
            2012-08-17 14:19:00.815,haegar,Entsorgungsdaten Line: 29 Text: DTSTART;VALUE=DATE:20120116
            2012-08-17 14:19:00.815,haegar,Entsorgungsdaten Line: 30 Text: DTEND;VALUE=DATE:20120117
            2012-08-17 14:19:00.815,haegar,Entsorgungsdaten Line: 31 Text: DTSTAMP:20120811T010000Z
            2012-08-17 14:19:00.815,haegar,Entsorgungsdaten Line: 32 Text: CLASS:PUBLIC
            2012-08-17 14:19:00.815,haegar,Entsorgungsdaten Line: 33 Text: DESCRIPTION:www.entsorgungsdaten.de
            2012-08-17 14:19:00.815,haegar,Entsorgungsdaten Line: 34 Text: SEQUENCE:0
            2012-08-17 14:19:00.816,haegar,Entsorgungsdaten Line: 35 Text: STATUS:CONFIRMED
            2012-08-17 14:19:00.817,haegar,Entsorgungsdaten Line: 36 Text: SUMMARY:Restmüll in Markt Regenstauf: Regenstauf (gesamt)
            2012-08-17 14:19:00.817,haegar,Entsorgungsdaten Line: 37 Text: TRANSP:TRANSPARENT
            2012-08-17 14:19:00.817,haegar,Entsorgungsdaten Line: 38 Text: END:VEVENT
            2012-08-17 14:19:00.817,haegar,Entsorgungsdaten Line: 39 Text: BEGIN:VEVENT
            2012-08-17 14:19:00.817,haegar,Entsorgungsdaten Line: 40 Text: DTSTART;VALUE=DATE:20120130
            2012-08-17 14:19:00.817,haegar,Entsorgungsdaten Line: 41 Text: DTEND;VALUE=DATE:20120131
            2012-08-17 14:19:00.818,haegar,Entsorgungsdaten Line: 42 Text: DTSTAMP:20120811T010000Z
            2012-08-17 14:19:00.819,haegar,Entsorgungsdaten Line: 43 Text: CLASS:PUBLIC
            2012-08-17 14:19:00.819,haegar,Entsorgungsdaten Line: 44 Text: DESCRIPTION:www.entsorgungsdaten.de
            Umgezogen? Ja! ... Fertig? Nein!
            Baustelle 2.0 !

            Kommentar


              #21
              So hätte ich mir das auch erwartet. Ich kopiere die Datei mit WinSCP, also nix exotisches...

              P. S. Es ist ja nicht so, daß es gar nicht geht. Wenn ich das Plugin über den Aufrufzyklus aufrufe geht es ja einmal am Tag (Aufruf jede Stunde)

              Kommentar


                #22
                Nur um es auszuschließen, versuch das mal mit einer selbst angelegten *.txt und ein paar Zeilen sinnlosem Inhalt.
                Umgezogen? Ja! ... Fertig? Nein!
                Baustelle 2.0 !

                Kommentar


                  #23
                  Da passiert das Gleiche:
                  Code:
                  2012-08-17 15:01:58.967,Entsorgungsdaten.pl,Entsorgungsdaten Line: 1 Text: Testzeile 1
                  Testzeile 2
                  Testzeile 3
                  Testzeile 4
                  Mein WG hat folgenden Stand:
                  Datum/Uhrzeit letzte Updateinstallation: 2012-05-09 20:33:46
                  Patchlevel 32 (2012-05-09 19:57:22)

                  Kommentar


                    #24
                    Nur zur Info: Ich bin raus, keine Ahnung da kann ich nix mehr zu beitragen.
                    Da muss wohl mal das WG-Team ran. Hatte mich schon so auf das Müll-Plugin gefreut Das fehlt mir noch.
                    Umgezogen? Ja! ... Fertig? Nein!
                    Baustelle 2.0 !

                    Kommentar


                      #25
                      Zitat von JuMi2006 Beitrag anzeigen
                      Hatte mich schon so auf das Müll-Plugin gefreut Das fehlt mir noch.
                      Wenn ich es fertig habe, wird es auch hier veröffentlicht:
                      Mir schwebt da folgendes vor:
                      - Definition der Müllsorten mit Abholuhrzeiten (Stunde) in einem Array
                      - Definition wie viele Stunden vorher eine Meldung kommen soll
                      - Berücksichtigung mehrerer Sorten je Tag
                      - Meldung auf zwei GA (Text + Code)
                      - Rücksetzen der GA mit Code = 0

                      Mit dem Code kann man dann unterschiedliche Symbole in der CV anzeigen lassen, die mit einem Klick zurückgesetzt werden bzw. durch die Abholurzeit automatisch zurückgesetzt werden.

                      Mehr fällt mir dazu erstmal nicht ein ;-)

                      Ich hoffe jemand von elabnet wird hierauf aufmerksam

                      Kommentar


                        #26
                        Genau das wollte ich auch, bis 11:00 hab ich für Hausmüll Zeit, Papier muss aber um 6:30 draußen sein und wenn ich nach Hause komme sehe ich eh dass ich was vergessen habe da brauch ich keine Visu mehr. Hatte schon angefangen, aber war so schlecht und unfertig dass ich es vor ein paar Wochen gelöscht hatte bis mich die Muse neu küsst (oder haegar80 kommt).
                        Umgezogen? Ja! ... Fertig? Nein!
                        Baustelle 2.0 !

                        Kommentar


                          #27
                          Ohne mir jetzt alles durchgelesen zu haben: Zweistufenplan:
                          1. Man konvertiere das ical in etwas vernünftig lesbares (CSV) (wird sich ja nicht täglich ändern, ich hack das 1x im Halbjahr händisch ein..)

                          2. Man lese das und werte es aus, mal am Beispiel des HS, der nimmt sich die nächsten X events, GA dazu (0 oder 1), datum/uhrzeit, ..
                          Dazugekommen bin ich aber auch noch ned..

                          Makki
                          EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                          -> Bitte KEINE PNs!

                          Kommentar


                            #28
                            War das jetzt der Tipp sich doch nen Homeserver zu kaufen
                            Umgezogen? Ja! ... Fertig? Nein!
                            Baustelle 2.0 !

                            Kommentar


                              #29
                              Zitat von makki Beitrag anzeigen
                              Ohne mir jetzt alles durchgelesen zu haben: Zweistufenplan:
                              1. Man konvertiere das ical in etwas vernünftig lesbares (CSV) (wird sich ja nicht täglich ändern, ich hack das 1x im Halbjahr händisch ein..)

                              2. Man lese das und werte es aus, mal am Beispiel des HS, der nimmt sich die nächsten X events, GA dazu (0 oder 1), datum/uhrzeit, ..
                              Dazugekommen bin ich aber auch noch ned..

                              Makki
                              Hallo Makki,

                              danke, dass du dich dem annimmst, aber alle deine Vorschläge werden zum gleichen Ergebnis führen. Selbst eine händisch eingehackte Textdatei wird von meinem WG nicht in mehrere Arrrays zerlegt. Bei JuMi2006 funktioniert es...

                              Gibt es Hoffnung, daß es auch bei mir funktionieren kann oder soll ich das Thema vergessen?

                              Danke
                              Sascha

                              Kommentar


                                #30
                                Zitat von JuMi2006 Beitrag anzeigen
                                War das jetzt der Tipp sich doch nen Homeserver zu kaufen
                                Sicher nicht, aber man darf ja gucken wie andere das machen wenn gut ist

                                @Sascha: mir fehlt grad das konkrete Problem(?) so ein iCal ist eklig zu parsen aber ich möchte ohne zu googeln meinen Hintern verwetten das dieses Problem schonmal jemand anderes gelöst hat..
                                Und ein CSV, Zeile für Zeile, ist easy; mit konkretem Beispiel liefere ich auch eins..

                                Makki
                                EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                                -> Bitte KEINE PNs!

                                Kommentar

                                Lädt...
                                X