Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Openligadb.de (https://www.delphipraxis.net/153134-openligadb-de.html)

MATASTYLE 22. Jul 2010 11:44

Openligadb.de
 
Hallo zusammen,

Ich bin blutiger anfänger, würde aber gerne die bundesliga spieltage von der seite openligadb.de über ein button click ausgeben, hab aber irgendwie nicht die leiseste ahnung wie ich das anstellen soll.

Bitte um hilfe!!!!

himitsu 22. Jul 2010 12:04

AW: Openligadb.de
 
Diese Seite stellt alles nötige als XML-Dateien zur Verfügung.

* du lädst also die gewünschte Datei runter
> Stichwort Hier im Forum suchenIndy ... gibt bestimmt einige Komponenten in deinem Delphi, welche mit TId... anfangen (für sowas wäre es gut, wenn du die verwende DelphiVersion/Programmiersprache auch nennen würdest oder sie in dein DP-Profil einträgst)
* dieses kannst du z.B. in einen Stream oder einen String laden lassen
* diesen String/Stream übergibst du an einen XML-Parser (z.B. siehe Hier im Forum suchenTXMLDocument)
* und über dieses bekommst du Zugriff auf die einzelnen Daten/Einträge und kannst sie so auslesen und dann anzeigen.

(wie die Schnittstellen gestalltet sind, also was man senden muß um etwas zu bekommen, steht auf deren Webseite beschrieben)




Du kannst das Ganze aber auch direkt als Hier im Forum suchenWebservice importieren und darüber drauf zugreifen.

MATASTYLE 22. Jul 2010 12:26

AW: Openligadb.de
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nutze delphi 2007

Hab jetzt die sportsdata.pas erstellt,weiss aber jetzt nicht was ich mit dieser machen muss!

Mithrandir 22. Jul 2010 12:34

AW: Openligadb.de
 
Mit Inhalt füllen...? :gruebel:

Die nötigen Schritte hat dir himi doch schon genannt.

himitsu 22. Jul 2010 13:03

AW: Openligadb.de
 
k.A. aber so wie es aussieht, besorgst du dir über GetSportsdataSoap ein SportsdataSoap und wiederum darüber kannst du dann verschiedene Dinge abrufen.

duff 22. Jul 2010 22:27

AW: Openligadb.de
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo hab hier mal eine kleine Beispielanwendung gebastelt.

Vielleicht hilft es dir ja auf die Sprünge :)

Viel Erfolg

MATASTYLE 23. Jul 2010 11:27

AW: Openligadb.de
 
Danke euch für die schnellen und guten antworten!!!!

sintronic86 5. Nov 2013 09:26

AW: Openligadb.de
 
Hallo ihr,
ich muss diesen Thread nocheinmal anfachen.
Und zwar habe ich vor ein Tipp-Programm für meinen Vater zu programmieren (ich selbst habe nicht wirklich Interesse an Fussball).

Es funktioniert bis zu einem gewissen Grad auch ganz gut, nur leider habe ich folgendes Problem.

Der Aufruf:
Delphi-Quellcode:
GetMatchdataByGroupLeagueSaison(10, 'bl1','2010')
beispielsweise funktioniert super wärend
Delphi-Quellcode:
GetMatchdataByGroupLeagueSaison(11, 'bl1','2010')
den folgenden Fehler verursacht:
"Im Projekt Test.exe ist eine Exception der Klasse EPropertyConvertError mit der Meldung 'Ungültiges Eigenschaftselement: ' aufgetreten."

Der Aufruf:
Delphi-Quellcode:
GetMatchdataByLeagueSaison('bl1','2010')
verursacht den selben Fehler




Ich bekomme es auf Biegen und Brechen nicht hin.


NACHTRAG:
Habe noch ein wenig herumprobiert. Mir scheint es, als wenn bestimmte Spieltage nicht funktionieren.
Leider konnte ich beim Livetest auf der Internetseite keine ungewöhnlichen Datensätze finden.
Kann mir einer von euch vielleicht sagen, woran ich scheitere?

Neutral General 6. Nov 2013 08:18

AW: Openligadb.de
 
Ich würde dir empfehlen statt einfach gewisse Werte einzugeben dir die Gruppen vorher abzurufen mit:

Delphi-Quellcode:
function GetAvailGroups(const leagueShortcut: WideString; const leagueSaison: WideString): ArrayOfGroup; stdcall;
In den Gruppen steht dann die GruppenID die du bei GetMatchdataByGroupLeagueSaison übergeben musst.

Edit:

Delphi-Quellcode:
function GetAvailSports: ArrayOfSport; stdcall;
function GetAvailLeaguesBySports(const sportID: Integer): ArrayOfLeague; stdcall;
Wären sicher auch praktisch um falsche Eingaben zu verhindern.

sintronic86 10. Dez 2013 13:13

AW: Openligadb.de
 
Hallo Neutral General,

der Einwand ist gut und ich denke, da werde ich es auch noch hinbewegen.
Aber ich habe den Fehler bereits gefunden.

Und zwar liegt es an ein paar bestimmten Werten im "Goal":

Delphi-Quellcode:
Goal = class(TRemotable)
  private
    FgoalID: Integer;
    FgoalMachID: Integer;
    FgoalScoreTeam1: Integer;
    FgoalScoreTeam2: Integer;
    FgoalMatchMinute: Integer;
    FgoalGetterID: Integer;
    FgoalGetterName: string;
    FgoalGetterName_Specified: boolean;
//    FgoalPenalty: Boolean;
//    FgoalOwnGoal: Boolean;
//    FgoalOvertime: Boolean;
    FgoalComment: string;
    FgoalComment_Specified: boolean;
    procedure SetgoalGetterName(Index: Integer; const Astring: string);
    function goalGetterName_Specified(Index: Integer): boolean;
    procedure SetgoalComment(Index: Integer; const Astring: string);
    function goalComment_Specified(Index: Integer): boolean;
  published
    property goalID:         Integer read FgoalID write FgoalID;
    property goalMachID:     Integer Index (IS_NLBL) read FgoalMachID write FgoalMachID;
    property goalScoreTeam1: Integer Index (IS_NLBL) read FgoalScoreTeam1 write FgoalScoreTeam1;
    property goalScoreTeam2: Integer Index (IS_NLBL) read FgoalScoreTeam2 write FgoalScoreTeam2;
    property goalMatchMinute: Integer Index (IS_NLBL) read FgoalMatchMinute write FgoalMatchMinute;
    property goalGetterID:   Integer read FgoalGetterID write FgoalGetterID;
    property goalGetterName: string  Index (IS_OPTN) read FgoalGetterName write SetgoalGetterName stored goalGetterName_Specified;
//    property goalPenalty:    Boolean Index (IS_NLBL) read FgoalPenalty write FgoalPenalty;
//    property goalOwnGoal:    Boolean Index (IS_NLBL) read FgoalOwnGoal write FgoalOwnGoal;
//    property goalOvertime:   Boolean Index (IS_NLBL) read FgoalOvertime write FgoalOvertime;
    property goalComment:    string  Index (IS_OPTN) read FgoalComment write SetgoalComment stored goalComment_Specified;
  end;
Ich habe den Code wie oben beschrieben angepasst und nun funktioniert es.
Allerdings habe ich keine Ahnung warum das so ist.


Aber ich habe jetzt andere Probleme. Ich habe das Programm jetzt soweit, dass es die Daten per "SportsdataSoap" aus dem Netz zieht und ich es in eine SQLite-Datenbank schreibe. Allerdings möchte ich nun meine Clientdatasets abfragen, bevor ich die Daten reinschreibe, ob diese bereits vorhanden sind. Aber ich bekomme bei beispielsweise folgendem Aufruf

Delphi-Quellcode:
Result := ClientDataSet_Result.Locate('ResultMatchID;ResultTypeID', VarArrayOf([AResultMatchID, AResultTypeID]), [loCaseInsensitive])
folgende Fehlermeldung:

"Exception EDatabaseError in Modul Oddset_2.exe bei 00719ACF.
Der Typ von Feld 'ResultMatchID' wird nicht unterstützt."



Die Felder in meiner SQLite-Datenbank sind alle im Integer-Format angelegt.
Vielleicht hat ja einer eine Anregung für mich!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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