Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Zufalsgenerator mit schon gewählt funktion aus XML Datei (https://www.delphipraxis.net/30176-zufalsgenerator-mit-schon-gewaehlt-funktion-aus-xml-datei.html)

Cyberbob_at_tot 21. Sep 2004 17:20


Zufalsgenerator mit schon gewählt funktion aus XML Datei
 
Hallo zusammen,
habe da ein Problem,
ich will aus einer XML Datei...

XML-Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Schülerdaten>
   <id><Name>D</Name><Vorname>Christian</Vorname><Note>1</Note><gewählt>Ja</gewählt><joker>Ja</joker></id>
   <id><Name>R</Name><Vorname>Andreas</Vorname><Note>6</Note><gewählt>Nein</gewählt><joker>Nein</joker></id></Schülerdaten>
Einen zufalsgenerator machen, der mir zufällig einen Namen ausspuckt und dabei lernt ob jemand schon dran war oder nicht.

In Delphi habe ich das so gelöst...

Delphi-Quellcode:
Function zufall():integer;
Var x,y,z:integer;
begin
z:=ID.length;
y:=ID.length;
ShowMessage(inttostr(ID.length));
x:=0;
If x <> y Then
   Begin
   Randomize;
   result:=Random(z);
   ShowMessage(inttostr(result));
   If xmldoc.documentElement.selectSingleNode('/Schülerdaten/id[ID="'+inttostr(result)+'"]/gewählt').Text = 'Ja' Then
      Begin
      x:=x+1;
      zufall;
      End
      Else xmldoc.documentElement.selectSingleNode('/Schülerdaten/id[ID="'+inttostr(result)+'"]/gewählt').Text:='Ja';
   end
else Showmessage('Alle Schüler wurden benotet!');
End;
Nur Leider bekomme ich wärend der Laufzeit ein Fehlermeldung like...Zugriffsverlezung bei Adresse...usw....hier
Delphi-Quellcode:
 If xmldoc.documentElement.selectSingleNode('/Schülerdaten/id[ID="'+inttostr(result)+'"]/gewählt').Text = 'Ja' Then

ich glaube da stimmt was nicht mit dem Aufruf der XML datei.

Besten dank an alle.

Cyberbob

fiasko 21. Sep 2004 17:26

Re: Zufalsgenerator mit schon gewählt funktion aus XML Datei
 
Hallo,

Bist du sicher das xmldoc auch etwas korrekt zugewiesen ist? Mit dem bißchen Code kann man das nicht erkennen...

Cyberbob_at_tot 21. Sep 2004 17:29

Re: Zufalsgenerator mit schon gewählt funktion aus XML Datei
 
Ja habe die Komplette Datei per ListView anzeigen lassen, da gibt er mir dir werte super aus.

Delphi-Quellcode:
ID:=xmlDoc.documentElement.selectNodes('id');//Node ID selektieren
For i:= 0 to ID.length -1 do Begin //von Anfang bis Ende ID
subNode:=ID.item[i].selectSingleNode('Name'); // Elemente von ID durchgehen
Schuelerliste.Items.Add;
Schuelerliste.Items[i].Caption:=subnode.text;

Cyberbob_at_tot 27. Sep 2004 19:50

Re: Zufalsgenerator mit schon gewählt funktion aus XML Datei
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich komme einfach nicht weiter Jungs,
habe es so eigentlich fast feritg, nur wenn ich auf die eingelesene XML datei zugreigen will bekomme ich nen Speicherfehler!
habe das Programm mal komplett angehangen!
wer mal Zeit und LUst hat mir zu helfen!
BESTEN DANK!

MathiasSimmack 27. Sep 2004 20:12

Re: Zufalsgenerator mit schon gewählt funktion aus XML Datei
 
Mal abgesehen von deiner Art, Quellcode zu formatieren, hast du dir da mal Gedanken über diese Konstruktion gemacht:
Delphi-Quellcode:
Function explode(const Separator,S: string;Limit:Integer = 2):TStringDynArray;
var
  Form1: TForm1;
  xmlDoc:IXMLDOMDocument2;
  ID: IXMLDOMNodeList; //Enthällt alle Schüler
  db:Textfile;
  zaehler:integer=0;
  fAppPath:string;
  x:integer=0;
  subNode:IXMLDOMNode; //enthält alle Daten der Schüler
  zahl:integer;
Const
     DATABASE_FNAME= 'db.xml';



implementation


{$R *.dfm}
//#########################################################
//########### Funktion zum auseinanderbringen des Strings #
//#########################################################
//Funktion by Delphi-Praxis.net
Function explode(const Separator,S: string;Limit:Integer = 2):TStringDynArray;
var SepLen: Integer;
F, P:PChar;
ALen, Index: Integer;
Begin
  SetLength(result,0);
  If (S='') or(Limit<0) then Exit;
  If Separator=''Then
  Begin

{...}
:shock:

Das beste dürfte ein kompletter Neuanfang sein. Wenn ich die Zeit finde (heute nicht mehr, sorry) schau ich´s mir morgen mal an. Aber versprechen kann und will ich nichts.

Cyberbob_at_tot 30. Sep 2004 16:07

Re: Zufalsgenerator mit schon gewählt funktion aus XML Datei
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe nun den Fehler mal eingegrenzt, müßte was an der Deklaration oder dem Zugriff auf die XML datei zu tun haben.
wie kann ich direkt auf ein Datensatz zugreifen ?

Bild liegt bei!

Cyberbob_at_tot 15. Okt 2004 12:42

Re: Zufalsgenerator mit schon gewählt funktion aus XML Datei
 
Habe den Fehler nun gefunden,
die Angabe zu der Note war falsch!


Ist schwer sich am anfang da reinzudenken finde ich!


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