AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zahlen aus String extrahieren

Ein Thema von youuu · begonnen am 30. Sep 2010 · letzter Beitrag vom 22. Apr 2013
 
Codix32

Registriert seit: 23. Apr 2009
137 Beiträge
 
Delphi 2005 Personal
 
#9

AW: Zahlen aus String extrahieren

  Alt 21. Apr 2013, 20:22
Hallo himitsu,

nehmen wir an, daß ich aus einer Webseite Lotoozahlen kopiere und in ein Editfeld eingebe.
Dabei habe ich ein paar Zeichen mitkopiert.

Nun möchte ich gern die Lottozahlen (ein- und zweistellig) extrahieren und in ein IntegerArray schreiben...

Ich habe da was hingebogen, das auch funktioniert nicht ganz, denn bei der letzten zweistelligen Zahl wird nur die erste Ziffer angezeigt...
Gibt es da einen anderen Ansatz?

Ich füge es mal ein.
Delphi-Quellcode:
USES...
{Zahlen und Zeichen von der Zwischenablage ins Edit eingeben und bei Enter nur die Zahlen
ausgeben. Es werden die Zahlen als Integerwerte in ein IntegerArray mit 6 Indexes gespeichert
Die Zahlengröße ist auf 2 Stellen begrenzt.}



Type
  TLottoresult = array of Integer;


//----------------------------------------------
function TForm1.IsZahl(AChar:char):boolean;
begin
  result := AChar in ['0'..'9'];
end;
//----------------------------------------------

function TForm1.LZahlen(kopStr:string):TLottoresult;
var i,a:integer;
    t:string[2];
   flag:boolean;
begin
setLength(Result, 6); a := -1;
 for i:= 1 to length(kopStr) do
  begin
   if isZahl(kopstr[i])and (a < high(Result))then
    begin
     if (flag = false) {and (a < high(Result)) }then inc(a);
     t:=t+kopStr[i];
     result[a]:=strtoint(t);
     flag:=true;
    end else
    begin
      flag:=false; t:='';
    end;
  end;
Label2.Caption:= 'IntegerArrayIndexes: '+ inttostr(a);
Label3.caption:=' Es fehlen noch '+ inttostr((high(Result)- a))+ ' Zahlen';
end;

//----------------------------------------------



procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
 Lottoresult:TLottoresult;
 i:integer;
 str:string;
begin
{bei Enter das Array auslesen und die Zahlen mit Leerzeichen ausgeben}
 if Key = VK_Return then
   begin
    LottoResult := LZahlen(Edit1.text);
     for i := 0 to high(LottoResult) do
       str := str + ' ' + IntToStr(LottoResult[i]);
    Label1.Caption:='String mit Zahlen: '+str;
   end;
end;
Im Anhang ein Schnappschuss, das den Fehler zeigt
Angehängte Grafiken
Dateityp: jpg Proggi.JPG (13,3 KB, 45x aufgerufen)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz