![]() |
Re: Suche Alternative zu Array
Zitat:
In den Kinderschuhen von Pascal und Delphi lernt man doch bereits, Records zu verwenden und mit Arrays umzugehen (für die Lernwilligen). Wo lernt man bitte sowas in C? :shock: |
Re: Suche Alternative zu Array
Zitat:
Zitat:
Delphi-Quellcode:
Schöner ist es aber wie schon gesagt mit einer Liste. Ich bevorzuge dabei die TObjectList von Delphi bzw. bei nonVCL-Projekten neme ich meine eigene
...
var a: array of String; begin SetLenth(a, 5); // Nun hast du schonmal 5 Speicherstellen a[0] := 'blubb'; ... SetLength(a, 25); //Un nun hast du 25 Speicherstellen end; ![]() |
Re: Suche Alternative zu Array
Zitat:
|
Re: Suche Alternative zu Array
Delphi-Quellcode:
mal eben zusammengehackt.
type
TAuto = record Marke: string; Modell: string; Tueren: Integer; end; PAuto = ^TAuto; procedure TForm4.FormCreate(Sender: TObject); var AList: TList; Auto1: PAuto; Auto2: PAuto; begin AList := TList.Create(); try Auto1 := New(PAuto); Auto1.Marke := 'blubb'; Alist.Add(Auto1); Auto2 := AList[0]; ShowMessage(Auto2^.Marke); finally AList.Free(); end; end; Speicher sollte nach new() auch wieder freigegeben werden mit dispose |
Re: Suche Alternative zu Array
Ah, cool...funktioniert auch! :-)
Warum das ^ in der Zeile:
Delphi-Quellcode:
Funktioniert doch auch ohne?!
ShowMessage(Auto2^.Marke);
Danke!!! |
Re: Suche Alternative zu Array
Dass es auch ohne funktioniert, liegt an der Compiler-Magic, richtig ist es auf jeden Fall mit ^.
|
Re: Suche Alternative zu Array
Hab doch noch mal ne Frage, weil bei mir was nicht funktioniert.
Ich habe folgenden Code, mit dem ich XML Daten auslese. Diese sollen dann in eine TList:
Delphi-Quellcode:
Das result ist aber leider immer leer, egal was ich mache :-(
type
TDaten = record ID : Cardinal; Key : String; Value : String; end; PDaten = ^TDaten; //... var I, J : integer; neuerDatensatz : PDaten; begin XML := newXMLDocument; XML.XML.Text := XMLString; XML.Active := True; // Datensatzlist (result) erstellen result := TList.Create; // Werte zählen for I := 0 to XML.DocumentElement.ChildNodes.Count - 1 do begin for J := 0 to XML.DocumentElement.ChildNodes[XMLNode].ChildNodes.Count - 1 do begin // neuen Datensatz erstellen neuerDatensatz := new(PDaten); neuerDatensatz.ID := i; neuerDatensatz.Key := XML.DocumentElement.ChildNodes[I].ChildNodes[J].NodeName; neuerDatensatz.Value := XML.DocumentElement.ChildNodes[I].ChildNodes[J].NodeValue; result.Add(neuerDatensatz); end; end; end; Kann mir jemand sagen, wieso ich keine Daten erhalte? Wenn ich statt result eine lokale Variable erstelle und sie am Ende result zuweise, funktioniert es übrigens auch nicht. Wäre cool, wenn mir jemand helfen könnte. |
Re: Suche Alternative zu Array
das ist doch ein neues thema bzw eine neue frage die du hier stellst. fange also bitte einen neuen thread dazu an, danke.
|
Re: Suche Alternative zu Array
Naja, es handelt sich ja immer noch um die Alternative von einem Array, klar könnte man da ein neuen Thread aufmachen, aber ich glaube, dass das Problem relativ schnell abgehandelt sein wird, weil vermutlich nur ein kleiner Fehler drin ist...deswegen versuche ich´s nochmal in dem Thread.
|
Re: Suche Alternative zu Array
Zitat:
und vorab: es ist unschön eine tlist in einer funktion zu erzeugen und diese als ergebnis der funktion zurückzugeben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:38 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