Beiträge von Teddie_Neubert

    Zitat

    Original geschrieben von wgot Wenn Du alle Einträöge in einer einzigen Variablen hast - Ja, so ist es - , als lange Zeile mit CR/LF zwischendrin, erstmal in ein Array wandeln:


    Hallo Wolfgang, ja, das ist es wohl, darauf kam ich leider nicht, danke !


    Zitat

    ...
    if (preg_match('/aktuelle_/i',$a)) { $ergebnis.=$d."\r\n"; }
    else if (preg_match('/EC/',$a)) { $ergebnis.=$d."\r\n"; }
    ...


    Der Lösungsansatz ist prima, und nun kommt die Gemeinheit:
    Die Selektionskriterien sind leider nicht statisch, d. h. der aufrufende User gibt diese in einer von ihm gewählten Reihenfolge und in beliebiger Länge beim Aufruf mit.
    Wir haben dann wohl - wie oben schon beschrieben - ein Array mit Selektionskriterien, welches mit dem neu gebildeten daten-array verglichen werden muss.


    Ich kapiere nicht, wie man eine therorethisch beliebige Anzahl von Selektionskriterien mit den preg_match-aufrufen so verschachtelt, dass das richtige herauskommt.


    Darf ich nochmal Dein Gehirnschmalz bemühen ?
    Gruss Teddie

    Hallo und zuerst mal Danke an alle Tipgeber,
    nach einigem Gefummle tat es dann, Wolfgangs Tip war der entscheidende.


    Next Turn:
    Habe nun - als String - es so: (jede Zeile mit CR/LF)
    14:18 aktuelle_Uhrzeit
    14:19 S6 Gross Karben 104 P
    14:19 S1 Offenbach(Main)Ost 102 P
    14:19 DNR81272 Koenigstein(Taunus) 22 P
    14:19 IC2391 Salzburg Hbf 101 P
    14:22 S2 Niedernhausen(Ts) 103 P
    14:22 S7 Goddelau-Erfelden 2 P


    Problem:
    Das obige soll mit einer Art Findfunktion geparst werden.
    Unter DOS ginge das so:
    findstr "EC IC IR RE RB Zusatz Gleis Uhrzeit" output.txt>gefiltert.txt
    (ja, richtig DNR und S-Bahnen sollen nicht kommen :-)) )
    Und wie geht sowas in PHP ?


    Den $sel="EC IC IR RE RB Zusatz Gleis Uhrzeit" habe ich auch schon in einem Array - mit explode, das habe sogar ich kapiert :-))


    Wenn ich mit den Elementen des Arrays nacheinander parse, dann stimmt die obige Reihenfolge leider nicht mehr.


    Es muss also quasi-gleichzeitig passieren, so ungefähr wie
    beginne vorn, if einer der inhalte von array gefunden in zeile spuck aus, nächste zeile, bis ende.


    Wichtig ist noch, dass das idealstenfalls aus dem vorhanden String herausextrahiert wird und eben nicht über eine Zwischen-Datei.


    Oder wieder ein von mir so "heissgeliebter" Match-Filter, den ich nie begreife.


    Hat bitte noch jemand eine Idee ?
    Gruss Teddie

    Hallo Ihr zwei beiden, danke erstmal für die Tips,
    habe - neugierig wie ich bin - beides ausprobiert,
    beides triffts ähnlich, aber nicht genau.
    Das Proggi 1
    $handle = fopen ("$bhf\\$dat#6.txt", "r");
    while (!feof($handle)) {
    $zeile = fgets($handle, 4096);
    preg_match("/(\d{1,2}:\d{1,2}) (.*)/",$zeile,$matches);
    $zeit = $matches[1];
    $rest = $matches[2];
    echo $zeit, " ", $rest, "-\n";
    }
    fclose ($handle);
    ist gut, weil es den führenden blanc vernichtet,
    vorher
    -14:18-aktuelle_Uhrzeit
    -14:19-S 6 Gross Karben 104 P
    -14:19-S 1 Offenbach(Main)Ost 102 P
    -14:19-DNR 81272 Koenigstein(Taunus) 22 P
    nachher
    14:18-aktuelle_Uhrzeit -
    14:19-S 6 Gross Karben 104 P -
    14:19-S 1 Offenbach(Main)Ost 102 P -
    14:19-DNR 81272 Koenigstein(Taunus) 22 P -
    (die bindestriche sind in wirklichkeit auch blancs, die sieht man hier sonst nicht richtig)
    es soll aber so sein
    14:18-aktuelle_Uhrzeit-
    14:19-S6 Gross Karben 104 P-
    14:19-S1 Offenbach(Main)Ost 102 P-
    14:19-DNR81272 Koenigstein(Taunus) 22 P-
    das heisst, da muss noch ein blanc raus und die am Ende weg.


    das Proggi 2
    $row = 1;
    $handle = fopen ("$bhf\\$dat#6.txt","r");
    while ($data = fgetcsv ($handle, 1000, " ")) {
    print "-\n";
    $row++;
    echo $data[1], " ", $data[2],$data[3], " ", $data[4], " ", $data[5], " ", $data[6], " ", $data[7];
    }
    fclose ($handle);
    ist von der Idee her nicht schlecht, aber - wie schon erwähnt - etwas umständlicher und es läuft auch länger.


    Ich würde Proggi 1 bevorzugen, nur
    wie setzt man diesen WegTauschheimer richtig ?
    ich glaube, das begreife ich nie *schluchz*.

    Hi allerseits, Asche auf mein Haupt, ich raff's wieder nicht.


    ich habe eine Datei mit Inhalt:
    14:18 aktuelle_Uhrzeit
    14:19 S 6 Gross Karben 104 P
    14:19 S 1 Offenbach(Main)Ost 102 P
    14:19 DNR 81272 Koenigstein(Taunus) 22 P
    14:19 IC 2391 Salzburg Hbf 101 P
    14:22 S 2 Niedernhausen(Ts) 103 P
    14:22 S 7 Goddelau-Erfelden 2 P
    usw.
    Das Ergebnis soll sein (fast genauso, aber nur fast):
    14:18 aktuelle_Uhrzeit
    14:19 S6 Gross Karben 104 P
    14:19 S1 Offenbach(Main)Ost 102 P
    14:19 DNR81272 Koenigstein(Taunus) 22 P
    14:19 IC2391 Salzburg Hbf 101 P
    14:22 S2 Niedernhausen(Ts) 103 P
    14:22 S7 Goddelau-Erfelden 2 P
    d. h. das zweite und das dritte Element der Zeile soll zusammen,
    das blanc muss raus.
    irgendwie was mit Array, aber wie ?
    Unter DOS ginge es so:
    lmod /S$ /L* [$1] [$2][$3] [$4] [$5] [$6] [$7] [$8] [$9] [$10] [$11]<input.txt >>output.txt
    Und in PHP ?


    2.tes Problem (wenn das erste gelöst wäre):
    Die obige Ergebnisdatei soll mit einer Art Findfunktion geparst werden.
    Unter DOS ginge das so:
    findstr "EC IC IR RE RB Zusatz Gleis Uhrzeit" output.txt>gefiltert.txt
    (ja, richtig DNR und S-Bahnen sollen nicht kommen :-)) )
    Und wie geht sowas in PHP ?


    für Hilfe ein immer dankbarer Teddie

    Hi, kaue schon 4 Tage daran und bin wohl zu blöde ...


    Ich habe einen (sehr langen) String namens $inhalt
    in diesem befinden sich u. a. etliche CR/LF (hex 0A, 0D),
    die sollen raus, Rest soll so erhalten bleiben.


    Aber wie ?


    Tauschen \r \n gegen nix klappt nicht.


    Hat wer eine Idee ?


    Gruss Teddie

    Hi allerseits,
    ich überlege gerade, ob man irgendwo ein Teil herbekommt, dass
    bestimmte (selber) vorprogrammierte Nummern und / oder
    anonyme Anrufer
    einfach aus der Leitung schmeisst oder auf einen ABA leitet.


    Wäre bei mir nicht so schlimm, da alle meine Freunde schon ISDN oder die Rufnummern-Anzeige freigeschaltet haben.


    Weiss jemand, ob's sowas als eigenständiges Teil - also nicht über PC - gibt und falls ja: wo ?