Einzelnen Beitrag anzeigen

Gutelo

Registriert seit: 29. Sep 2013
152 Beiträge
 
#8

AW: Lottozahlen von lotto.de abrufen

  Alt 23. Dez 2013, 12:20
Danke Perlsau,

ich hab jetzt eine erste Rumpfimplementation. Fuer diejenigen die es interessiert hier das Grundgeruest:

Code:
procedure TMainForm.Button2Click(Sender: TObject);
var sl: TStringList;   // Store Webpage Source Code
    RegExStr : String; // Search Expression
    RegEx : TRegEx;    // Expression Evaluation Class
    MatchCollection : TMatchCollection; //Store all Determined Matches
    i: Integer;
    LottoNumbers : String;
begin
  // Read Lotto Webpage
  sl:=TStringList.Create;
  sl.Text := IdHttp1.Get('http://www.sachsenlotto.de/mskp/user/lottoresults/lottoresultsshow.do?ziehungsDatum=18.12.2013#');
  // Get numbers 1 to 6 and store them in MatchCollection
  RegExStr := '<span class="lottonumberbig">(\d*)</span>';
  RegEx := TRegEx.Create(RegExStr,[roSingleLine,roIgnoreCase]);
  MatchCollection := RegEx.Matches(sl.text);
  // if six numbers found then plot results
  if MatchCollection.Count = 6 then
  begin
    LottoNumbers := 'Zahlen: ';
    for i := 1 to 6 do
    begin
      LottoNumbers := LottoNumbers + MatchCollection.Item[i-1].Groups[1].Value + ', ';
    end;
    Showmessage(LottoNumbers);
  end
  else
    begin
    Showmessage('Error: No Lotto numbers found!');
    end;

  // Get Superzahl and store it in MatchCollection
  RegExStr := '<span class="extralottonumberbig">(\d*)</span>';
  RegEx := TRegEx.Create(RegExStr,[roSingleLine,roIgnoreCase]);
  MatchCollection := RegEx.Matches(sl.text);
  // if one number found then plot Superzahl
  if MatchCollection.Count = 1 then
  begin
    Showmessage('Superzahl: ' + MatchCollection.Item[0].Groups[1].Value);
  end;
end;
Das Datum in der URL kann gegen jedes beliebiges Datum von vergangenen Ziehungen ausgetauscht werden und man erhaelt so alle Zahlen von 1955 bis heute.

Viel Spass damit

Gutelo
  Mit Zitat antworten Zitat