Announcement

Collapse
No announcement yet.

<>

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • <>

    wie kann ich eine zahl die zwischen einem < > steht in einen string laden

    z.b. <5>

  • #2
    Tja, das ist etwas komplizierter. Gehe davon aus, dass du einen String hast, wo irgendwo <Zahl> steht.

    Hier gibt es mehrere Möglichkeiten:

    Durchsuche den String nach < und dann nach >. AnsiPos gibt die Positionen zurück. Schneide dann das Zwischenstück aus.

    Nutze reguläre Ausdrücke (Stichwort für die Hilfe: PCRE).

    Splite den String mit dem Zeichen "<" auf. Hier ist die Routine unter dem Stichwort Split:

    http://home.snafu.de/christian.marquardt/quickies.1/1_index.html

    Wandle dann den Teil "zahl>" in einen Int um (Funktion: StrToDef). Es wird nur das zurückgegeben, was auch umgewandelt werden kann.

    Christia
    Christian

    Comment


    • #3
      hast du mal ein beispiel project

      Comment


      • #4
        Zeichekettenbearbeitung ist Standard Programmierung!

        Einzig reguläre Ausdrücke sind vielleicht etwas komplizierter.

        Wofür ein Projekt??

        Die Funkktionen findest du auf obigem Link!

        Christia
        Christian

        Comment


        • #5
          das klappt bei mir aber nich

          Comment


          • #6
            In solchen Fällen muß man seinen Quelltext - schön formatiert - hier zeigen, damit wir nach Fehlern suchen können
            Günther

            Comment


            • #7
              void __fastcall TForm1::Button1Click(TObject *Sender)
              {
              TStringList *heute;
              String eingabe;
              String delimiter;

              int pos,dellang;
              TStringList *feld=heute;
              feld->Clear();
              feld->Duplicates=dupAccept;
              dellang=delimiter.Length();
              pos=eingabe.AnsiPos(delimiter);
              while(pos>0)
              {
              feld->Add(eingabe.SubString(1,pos-1));
              eingabe.Delete(1,pos+dellang-1);
              pos=eingabe.AnsiPos(delimiter);
              }
              feld->Add(eingabe);
              Edit1->Text=(StrToDef(heute));

              Comment


              • #8
                Schön formatiert ist etwas anderes :-(

                Den Code von Christian haste ja schön abgeschrieben, aber Christian hat <b>TStringList &name</b> und ein paar andere Parameter und Du machst daraus einen Buttonklick mit Sender als Parameter und ein paar lokale Variablen, z.B. <b>TStringList *heute</b>
                Günther

                Comment


                • #9
                  entschuldignung. das mit dem formatieren hat irgendwie nicht geklappt. wie kann ich das besser machen

                  Comment


                  • #10
                    Mit dem HTML-Tag < pre > <b>vor</b> und < /pre > <b>hinter</b> dem Quelltex
                    Günther

                    Comment


                    • #11
                      kannst du mal ein sample code hier spiegeln

                      Comment


                      • #12
                        Was willst Du ? Meinst Du die HTML-Tags oder was zum ursprünglichen Thema ? Ersteres solltest Du selbst hinkriegen ( es gibt auch einen Extra Ordner zum Üben ). Zweiteres: hab ich nicht, aber Du hast etwas. Ein wenig mitdenken mußt Du schon. :-
                        Günther

                        Comment


                        • #13
                          mhh... was hab ich was du nicht hast

                          Comment


                          • #14
                            Geh mal oben unter Deiner Frage auf den Button "alles" , dann siehst Du, was Du hast
                            Günther

                            Comment


                            • #15
                              Also so sollte es doch gehen:

                              Die Funktion split als Funktion (Unterprogramm) mit in den Quellcode aufnehmen.

                              Wir nehmen nach deiner Vorgabe an, es gibt einen String der heißt "test" und enthält "<234>".

                              TStringlist mylist=new TStringlist();

                              split(mylist,test,"<");

                              wert=StrToIntDef(mylist[0],-1);

                              if(wert>-1)
                              alles o.k.
                              else
                              Umwandlung fehlgeschlagen

                              delete mylist;

                              Habe das jetzt hier schnell so mal ohne Test im Compiler gemacht. Also auf Schreibfehler und Gross/kleinschreibung achten.

                              Christia
                              Christian

                              Comment

                              Working...
                              X