Announcement

Collapse
No announcement yet.

zahl aus string extrahieren

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

  • zahl aus string extrahieren

    hi,

    ich habe solche strings:
    <pre>
    Griffe, Lenkerbänder 32
    Helme 33
    Antr, Kettenr, Garni 34
    </pre>

    wie kann ich da die zahl extrahieren?

    gruß

    Markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Hallo!

    Diese Funktion zerteilt einen String in einzelne Worte
    instr Eingabestring
    break Menge der Trennzeichen (bei Dir nur Leerzeichen)
    ar die Stringlist mit den Worten ACHTUNG muss VOR dem Aufruf bereits erzeugt worden sein
    return ist die Anzahl der gefundenen Worte

    Jetzt die Stringliste durchgehen und mittels strtotint jedes Wort prüfen, ob es eine Zahl ist....

    function BreakApart (
    instr : String;
    break : String;
    var ar : tstringlist ): integer;

    var
    p, Start : pchar;
    Count : integer;
    token
    help : String;
    begin

    p := pchar ( instr );
    count := 0;

    ar.clear;
    while p^ <> #0 do begin
    if pos ( p^, break ) <> 0 then begin
    inc ( p );
    end
    else begin
    Start := p;
    while (P^ <> #0) and (pos ( p^, break ) = 0) do begin
    inc ( p );
    end;
    SetString ( help, Start, p-start );
    ar.add ( help );
    Count := Count + 1;
    end;
    end;
    breakapart := count;
    end;

    BYE BERN

    Comment


    • #3
      Hallo Bernd,
      Nur als Anmerkung: Die StringList hat die Eigenschaften Delemiter und DelemitedText. Wenn man erst den Delemiter setzt und dann den DelemitedText, so macht diese das selbe, wie Deine proc.<p>
      Mari
      Schöne Grüße, Mario

      Comment


      • #4
        hi bernd,

        dein beitrag hat mich zur einer lösungsidee inspiriert!
        danke!

        marku
        Herzliche Grüße

        Markus Lemcke
        barrierefreies Webdesign

        Comment


        • #5
          hi,

          habe es so gelöst:
          <pre>
          //Holt aus einem String eine Zahl
          function ZahlAusString(Str:String) : string;
          var
          iElementAnzahl,i : integer;
          sElement : String;
          begin
          Result := '';
          iElementAnzahl := STRElementCount(Str,' ');
          for i := 0 to iElementAnzahl do
          begin
          sElement := STRElement(Str,' ',i);
          if IsStringZahl(sElement) then
          begin
          Result := sElement;
          break;
          end;
          end;
          end;

          //Beispielaufruf:
          //ShowMessage(inttostr(STRElementCount('Markus,Andi, Uwe,Mario,Berndi',',')));
          function STRElementCount(Str,Sep: String):integer;
          var
          vStr : String;
          begin
          vStr := Str;
          result := 0;
          while pos(Sep,vStr) > 0 do
          begin
          delete(vStr,1,pos(Sep,vStr));
          inc(Result);
          end;
          if length(vStr) > 0 then
          begin
          inc(Result);
          vStr := '';
          end;
          end;
          </pre>

          gruß

          Marku
          Herzliche Grüße

          Markus Lemcke
          barrierefreies Webdesign

          Comment


          • #6
            @Mario

            Is ja spannend.. Unter Delphi 5 scheints das noch nicht zu geben?!? Nichts in der Hilfe.. und kompilieren will ers auch nicht!

            BYE BERN

            Comment


            • #7
              Das weiß ich leider nicht aber es ist offensichtlich so. Bei Delphi 7 weiß ich sicher, dass es drin ist, bei Delphi 6 vermute ich es.<p>
              Mari
              Schöne Grüße, Mario

              Comment

              Working...
              X