String parsen. Aber wie ?

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

  • String parsen. Aber wie ?

    Hi alle zusammen.

    Ich habe folgenden String
    :61:0310061006CR5,00NMSCNONREF

    Dieser soll wie folgt aufgeteilt werden.
    :61:
    031006
    1006
    C
    R
    5,00
    NMSCNONREF

    Die Daten können natürlich variieren die geparst werden sollen.

    Eigentlich sollte das Script also wie folgt parsen
    zeichen 1- 4
    zeichen 5-10
    zeichen 11-14
    zeichen 15
    zeichen 16
    alles was Ziffer ist inkl. ","
    danach alles was Buchstabe ist in eine andere Variable.

    Kann mir einer von Euch helfen wie ich das hinbekomme?
    Habs schon mit preg_match / ereg usw. probiert aber irgendwie bekomme ich es nicht hin.

    Vielen Dank für Eure Hilfe

    gruss
    Andreas

  • #2
    schau mal hier:
    http://www.php-resource.de/forum/sho...threadid=27672
    Kissolino.com

    Kommentar


    • #3
      nimm substr()
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        substr()

        EDIT:
        Hups. Zu langsam!

        Kommentar


        • #5
          substr() oder ne regex. ersteres könnte schneller sein.

          EDIT:
          lahm...

          Kommentar


          • #6
            Hi nochmal,

            substr() ist ja glaube ich ganz gut nur dabei hab ich auch ein Problem. Dort kann ich ja nur angeben von zeichen x - zeichen y ist ein String. Trifft bei den zeichen bis 16 auch zu. Danach können aber unterschiedlich viele dezimalstellen inkl. "," folgen und zum Schluß nochmal das selbe mit Buchstaben. Diese bekomme ich doch mit substr() nicht zerlegt oder?

            gruss
            Andreas

            Kommentar


            • #7
              dann kombiniers mit ner regex ... bis zeichen 16 => substr, ab da regex
              Kissolino.com

              Kommentar


              • #8
                doch, du hast einen großen string, in dem buchstaben, ziffern und sonderzeichen vorkommen

                substr liefert dir einen teil dieses strings, der von zeichen x bi szeichen y geht, dabei isses egal, was für zeichen das sind
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Ich denke Wurzel hat Recht.
                  Da die Anzahl Zeichen nach Postion 16 variable sein kann muss ich danach wohl mit Regular Expression weitermachen.
                  Dachte ich komm um diesen kryptischen Kram herum....Leider wohl nicht

                  Gruss
                  Andreas

                  Kommentar


                  • #10
                    bei substr() spielt doch die länge des strings keine rolle


                    aus selfphp


                    substr("1234567", 2)
                    Es wird alles ab der zweiten Position nach rechts bis zum Ende zurückgegeben -
                    also 34567.
                    Anwälte in Vulkane werfen -
                    Wer anderen eine Bratwurst brät, der besitzt ein Bratwurstbratgerät!

                    Kommentar


                    • #11
                      @flying: du beachtest aber nicht, dass der letzte teil in zwei teile gepackt werden muss.

                      - alles ab 17 (nur zahlen + ; )
                      - alles was Buchstabe ist

                      Kommentar


                      • #12
                        wenn du immer zwei nachkommastellen hast, kannst du das auch so machen
                        PHP-Code:
                        $string=':61:0310061006CR5,00NMSCNONREF';
                        $teil[]=substr($string,0,4);
                        $teil[]=substr($string,4,6);
                        $teil[]=substr($string,10,4);
                        $teil[]=$string{14};
                        $teil[]=$string{15};
                        $rest=substr($string,16);
                        $trenner=strpos($rest',')+3;
                        $teil[]=substr($rest,0,$trenner);
                        $teil[]=substr($rest,$trenner);
                        print_r($teil); 
                        ohne gewähr
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          Original geschrieben von TobiaZ
                          @flying: du beachtest aber nicht, dass der letzte teil in zwei teile gepackt werden muss.

                          ooops, ich will nix gesagt haben *g*
                          Anwälte in Vulkane werfen -
                          Wer anderen eine Bratwurst brät, der besitzt ein Bratwurstbratgerät!

                          Kommentar


                          • #14
                            @mrhappiness

                            Vielen Dank für den super Tipp. Funktioniert.
                            Wenns dann doch mal Strings ohne Nachkommastellen geben sollte werde ich die einfach hinzufügen.

                            Bedanke mich nochmals vielmals für die Unterstützung.
                            Gruss
                            Andreas

                            Kommentar

                            Lädt...
                            X