Ankündigung

Einklappen
Keine Ankündigung bisher.

User helfen User - Programmieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Zum einen verstehe ich nicht, warum Du hier überhaupt mit Vererbeitung arbeitest ... die Verteilerklasse hat ja nix mit den Unterklassen gemein. Außerdem scheint mir der Sinn dieses Verteilers auch recht obskur zu sein. An sich sollte von außen eine Anfrage an den Verteiler gehen, der gibt's weiter an ein Objekt, das wiederrum einen Funktionswert zurückliefert. Anhand der Rückgabe kann der Verteiler dann entscheiden, ob er jetzt z.B. noch eine Lampe blinken lässt..

    Kommentar


      sehe das wie nichtgehetzt, in dem beispiel ist vererbung nicht richtig.. interfaces ja.

      das ist übrigens objektorientierte hierarchie. machst halte nicht hardcoded, sondern eben mit interfaces

      Kommentar


        ihr habt beide recht, wenn es tatsächlich keinerlei gemeinsame funktionalität gibt. dann macht vererbung keinen sinn. davon bin ich in meinem beispiel allerdings nicht ausgegangen.

        Kommentar


          Moin,
          ich hab eine txt-Datei, die mehrere Arrays enthält. Jedes Array hat Dateinamen, z.B:
          a = [ "1.jpg", "2.jpg", ... ];
          b= [ "3.jpg", "4.jpg", ... ];

          wie kann ich in PHP auf z.B. Array b zugreifen? Geht darum, dass ich die Dateinamen aus dem Array brauche und damit weiterarbeiten muss

          Also es geht nicht darum, eine ganze txt-Datei auszulesen, sondern ich brauche eins dieser Arrays

          Kommentar


            Ließ die Textdatei bis der Name der Variable dort steht, dann speichere die Zeile und lösche die Zeichen bis (inklusive) "[" und allen Zeichen nach (inklusive) "]". Den entstandenen String trimst du und splittest ihn an den ",", worauf hin du die Einzelnen Strings nochmal trimmst und die '"' durch '' ersetzt. Jetzt hast du ein Array, welches die Dateinamen enthält.

            Kommentar


              wenn die dateien gültigen und syntaktisch richtigen php code enthalten, kannst den inhalt auch einfach einlesen und dann mit eval ausführen. aber vorsicht, das ist extrem gefährlich. lieber vorher per regex nochmal parsen und nur das gewünschte aus der datei per eval ausführen.

              würde daher für das dateiformat auch was anderes vorschlagen wie json oder xml, was sich besser ein/auslesen lässt ;)

              Kommentar


                Also irgendwie komm ich nicht weiter, daher mal genauere Erklärung.
                Die txt-Datei sieht so aus (die Struktur muss so bleiben):

                var var_bildernamen_vor_16_uhr = [

                "05_Do.jpg",
                "07_Do.jpg",
                "09_Sa.jpg",
                "10_Sa.jpg",
                "11_Sorti.jpg"

                ];

                var var_bildernamen_nach_16_uhr = [

                "05_Do.jpg",
                "07_Do.jpg",
                "09_Sa.jpg",

                ];

                Ich habe eine Tabelle, in der ersten Spalte befinden sich die Bildernamen, in der zweiten und dritten Spalte befindet sich jeweils eine Checkbox (vor 16 Uhr, nach 16 Uhr).
                Ich muss beide Arrays auslesen und z.B. die Datei "05_Do.jpg" ist ja in beiden Arrays drin, daher müssen in der Tabelle beide Checkboxen gechecked werden, bei "11_Sorti" nur die erste Checkbox usw.
                Später soll es dann auch möglich sein, dass ich durch abhaken der Checkboxen den Inhalt der txt verändern kann, also dass ein Bild zu dem jeweiligen Array hinzugefügt wird.
                Diese txt-Datei ist quasi ne Config, aus der später mit Javascript eine Bildershow erstellt wird

                Kommentar


                  Hattest du nicht vor ein paar Seiten auch etwas mit Bilder vor/nach 16 Uhr? Unter einem anderen Nick?

                  Mit deiner gegebenen Syntax: http://pastebin.com/TccBN20q

                  Ist der Ansatz von panda. Wenn du jedoch weißt wie du es sicher bekommst, würde ich die eval Version von michi bevorzugen, da du das array dann 1:1 übernehmen kannst.

                  Kommentar


                    sind diese dateinamen denn statisch?
                    Wenn nein, kannst du nicht im backend ein array managen mit den bildern? (z.B ein ordner mit vor16 einer nach16 und einfach alle dateien aus den jeweiligen ordnern einlesen?).

                    Kommentar


                      ist mittlerweile durch nen Kollegen durch reguläre Ausdrücke gelöst worden:
                      foreach (["var_bildernamen_vor_16", "var_bildernamen_nach_16", ...] as $var){
                      preg_match_all("/(.*)?".$var."[ ]*=[ ]*\[([\"a-zA-z0-9\,\ \_\.]*)\](.*)/", $config, $matches);
                      $bilder = explode(",", str_replace(['"', ' '], "", $matches[2][0]));
                      $vars[$var] = $bilder;
                      }

                      Leider raff ich das mit den Ausdrücken nicht und Kollege ist im Urlaub.
                      Ich hab jetzt noch eine Datei, die ähnlich aussieht, aber nicht identisch:

                      var var_systemID = "se";
                      var pv_aktiv = false;
                      var pv_ip = "127.0.0.1";
                      var pv_port = "8090";

                      Jetzt muss der Ausdruck so umgebaut werden, dass es hier passt und ich jeweils die Werte bekomme. Sitze da seit 3 Stunden dran und es klappt einfach nicht

                      Kommentar


                        tu dir selbst nen gefallen und schau dir einfach ein regex tutorial an. dann verstehst du es auch. das regex von deinem kollegen ist zwar schon etwas komplizierter aufgrund mehrerer capture groups, aber wenn du das verstanden hast, wirst du mit regex nie wieder probleme haben.

                        https://regex101.com/ ist z.b. ne super seite dafür (auch wenn sie mit dem regex subset von javascript arbeitet und daher nicht alle flags und lookahead/lookbehind/recursive searches unterstützt, die du in php zur verfügung hast. aber das ist sehr advanced zeug und sollte dich anfangs nicht interessieren.

                        Kommentar


                          Moin,

                          ich hab in JS ein zweidimensionales array (6 elemente). einen parameter will ich zufällig generieren lassen (0-5). es muss aber jeder wert (0-5) genau einmal vorkommen. (hintergrund: anzeige-Reihenfolge rndm)
                          Habe i.wie einen mega komplizierten ansatz. hat jemand ne einfach idee?

                          Kommentar


                            Einfach durch den Array laufen und Überprüfen ob die Zahl schon vorkommt? Bei 6 Elementen haste da ja kein Problem mit der Laufzeit


                            Hier die 1. Antwort
                            behandelt genau dein Problem in ner anderen Sprache. Wenn du was effizientes brauchst, es gibt (komplizierte) Möglichkeiten

                            Kommentar


                              danke. habs jetzt einfach mal runtergetippt. finds trotzdem i.wie viel aufwand dafür. aber funkioniert ;)

                              [spoiler] var reihenfolge = [Math.round(Math.random() * 5),"","","","",""];
                              var tmp = "";
                              var already_in_array = 0;
                              var i = 1;
                              while(i

                              Kommentar


                                Bei so nem Einsatz reicht das aus, würde aber aufpassen wenn du das ganze vergrößern willst. Das ganze ist extrem ineffizient

                                Kommentar

                                Lädt...
                                X