Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
12.03.2003, 20:18
feigling



Also, ich habe folgendes Problem.
Ich habe mir mit Hilfe eines anderen Programmcodes aus dem Internet ein Programm erstellt, welches Hashtables erzeugt, dort Werte einspeichert, etc. Nun möchte ich, dass das Programm durch einen Buttonklick alle Werte der Hashtable in eine Listbox ausgibt, nur irgendwie macht es das nicht so, wie ich will (und zwar funzt es garnicht =).

Ich poste am Besten nicht den Code, sondern stelle das ganze Programm als Download zur Verfügung, da es hier nur zu unübersichtlich wäre, wenn ich den Source posten würde.

Das ist die Funktion, die mir Probleme macht:

Quellcode:procedure TForm1.Button3Click(Sender: TObject);
var i : integer;
    num : TDatablock;
begin
  num := tdatablock.create;
  for i := 0 to 3999 do
  begin
    if mhashtable[i] = nil then break;
    num := mhashtable[i].data;
    listbox1.items.add(num.a);
  end;
end;
Downloadadresse: http://mitglied.lycos.de/feigling9/Hash.zip

Wie gesagt, es soll einfach die Hashtable durchgehen und überall, wo in der Hashtable Werte eingetragen sind, diese ausgeben.
Ich hoffe, es kann mir damit jemand helfen :)
Schonmal vielen Dank im Vorraus.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
17.03.2003, 07:20
Tron



Zitat:
if mhashtable[i] = nil then break;
ich wuerde sagen, das ist dein problem.

und such dir mal 'ne echte programmiersprache (;

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
002
17.03.2003, 10:00
feigling



=P

Ich weiß, dass dort das Problem ist.
Aber wenn ein Wert in der Hashtable drin ist, dann ist mhashtable[i] ja nicht nil sondern mit nem Wert belegt, ergo müsste er doch dann die Abfrage überspringen. Wenn ich die Abfrage nicht drin habe, dann stürzt der ab :\

--

zum Seitenanfang zum Seitenende Profil || Suche
003
17.03.2003, 17:02
Tron



du springst mir break aber aus der schleife raus. mach besser einen vergleich auf != null oder <> nil auf pascal (;

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
004
17.03.2003, 17:41
feigling



Argh, ich glaube, ich weiß, wo mein Fehler ist.
Stimmt, break; beendet ja die ganze Schleife.
Da muss ein continue; hin =)
Uhm, bin ich blöd.
Thx für die Antwort :)

--

zum Seitenanfang zum Seitenende Profil || Suche