<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[erledigt]An alle die Delphi können: Eine vekettete Liste von C++ nach Delphi]]></title><description><![CDATA[<p>Hio,<br />
Ist hier ein alter Delphi Veteran der Delphi noch relativ gut kann?^^<br />
Also folgendes:<br />
In C++ habe ich eine verkettete Liste geschrieben, die auch wunderbar funzt. Diese muss ich nun in Delphi übertragen, da ich gerade ein Projekt in Delphi schreibe.<br />
Nun sind meine Delphi Kenntnisse sehr eingerostet und mit Pointer in Delphi habe ich mich nie wirklich beschäftigt, sodass ich das Problem habe, dass meine verkettete Liste nicht ganz Funktioniert.<br />
Kann mal jemand drüber schauen und sagen was ich da falsch gemacht habe? Kann auch gut sein, dass es einfach ein Denkfehler ist(hab mich lange nicht mehr mit dem Algorithmus selber auseinandergesetzt).</p>
<p>Hier mal der Code <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">type
  MyOwnList = ^List;
  List = record
    Klasse: integer;
    Name: string;
    next: MyOwnList;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  MyList: MyOwnList;
begin
  //ganz viel Code
  New(MyList);
  if (not GetDataValues(Edit1.Text,MyList)) then MessageBox(0,'Datei nicht gefunden!','Fehler',0)
  else PrintList(MyList);
end;

//soll ne Datei auslesen und entsprechende Werte aus der Datei in die Liste speichern
function GetDataValues(Path: string; var MyList: MyOwnList):boolean;
var
  MyFile : TextFile;
  Line: string;
begin
  if (FileExists(Path)) then
  begin
    AssignFile(MyFile,Path);
    Reset(MyFile);
    while not EoF(MyFile) do
    begin
      Readln(MyFile,Line);
      New(MyList^.next);
      MyList^.next^.Klasse := GetClassForList(Line); //Hier werden die Werte herausgelesen
      MyList^.next^.Name := GetNameForList(Line);
    end;
    MyList^.next^.next := nil;
    CloseFile(MyFile);
    result := true;
  end
  else result := false;
end;

//Zum Testen alles in einem Memo ausgeben
procedure PrintList(MyList: MyOwnList);
var
  temp: MyOwnList;
begin
  temp := MyList;
  while(temp^.next &lt;&gt; nil) do
  begin
    Form1.Memo1.Text := Form1.Memo1.Text + temp^.Name + '--' + IntToStr(temp^.Klasse);
    Form1.Memo1.Lines.Add('');
    temp := temp^.next;
  end;
end;
</code></pre>
<p>Mein Problem ist nun, dass ich mir nicht sicher bin ob die Liste so richtig Funktiert und ich nicht weiss wie ich &quot;Anfangen&quot; soll. Also wie ich die erste Variable setzte, diese befülle etc.. Den Anfangspunkt muss ich dann wohl über eine &quot;FirstPointInList&quot;-Variable machen.</p>
<p>Danke</p>
<p>P.S. Ich würd ja ne List-Komponenten nehmen,aber das geht in diesem Fall nicht, da der Dateiinhalt sortiert werden soll.</p>
<p>Edit: hat sich erledigt, habs hinbekommen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/189911/erledigt-an-alle-die-delphi-können-eine-vekettete-liste-von-c-nach-delphi</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 01:57:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189911.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Aug 2007 13:04:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [erledigt]An alle die Delphi können: Eine vekettete Liste von C++ nach Delphi on Sat, 18 Aug 2007 14:08:38 GMT]]></title><description><![CDATA[<p>Hio,<br />
Ist hier ein alter Delphi Veteran der Delphi noch relativ gut kann?^^<br />
Also folgendes:<br />
In C++ habe ich eine verkettete Liste geschrieben, die auch wunderbar funzt. Diese muss ich nun in Delphi übertragen, da ich gerade ein Projekt in Delphi schreibe.<br />
Nun sind meine Delphi Kenntnisse sehr eingerostet und mit Pointer in Delphi habe ich mich nie wirklich beschäftigt, sodass ich das Problem habe, dass meine verkettete Liste nicht ganz Funktioniert.<br />
Kann mal jemand drüber schauen und sagen was ich da falsch gemacht habe? Kann auch gut sein, dass es einfach ein Denkfehler ist(hab mich lange nicht mehr mit dem Algorithmus selber auseinandergesetzt).</p>
<p>Hier mal der Code <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">type
  MyOwnList = ^List;
  List = record
    Klasse: integer;
    Name: string;
    next: MyOwnList;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  MyList: MyOwnList;
begin
  //ganz viel Code
  New(MyList);
  if (not GetDataValues(Edit1.Text,MyList)) then MessageBox(0,'Datei nicht gefunden!','Fehler',0)
  else PrintList(MyList);
end;

//soll ne Datei auslesen und entsprechende Werte aus der Datei in die Liste speichern
function GetDataValues(Path: string; var MyList: MyOwnList):boolean;
var
  MyFile : TextFile;
  Line: string;
begin
  if (FileExists(Path)) then
  begin
    AssignFile(MyFile,Path);
    Reset(MyFile);
    while not EoF(MyFile) do
    begin
      Readln(MyFile,Line);
      New(MyList^.next);
      MyList^.next^.Klasse := GetClassForList(Line); //Hier werden die Werte herausgelesen
      MyList^.next^.Name := GetNameForList(Line);
    end;
    MyList^.next^.next := nil;
    CloseFile(MyFile);
    result := true;
  end
  else result := false;
end;

//Zum Testen alles in einem Memo ausgeben
procedure PrintList(MyList: MyOwnList);
var
  temp: MyOwnList;
begin
  temp := MyList;
  while(temp^.next &lt;&gt; nil) do
  begin
    Form1.Memo1.Text := Form1.Memo1.Text + temp^.Name + '--' + IntToStr(temp^.Klasse);
    Form1.Memo1.Lines.Add('');
    temp := temp^.next;
  end;
end;
</code></pre>
<p>Mein Problem ist nun, dass ich mir nicht sicher bin ob die Liste so richtig Funktiert und ich nicht weiss wie ich &quot;Anfangen&quot; soll. Also wie ich die erste Variable setzte, diese befülle etc.. Den Anfangspunkt muss ich dann wohl über eine &quot;FirstPointInList&quot;-Variable machen.</p>
<p>Danke</p>
<p>P.S. Ich würd ja ne List-Komponenten nehmen,aber das geht in diesem Fall nicht, da der Dateiinhalt sortiert werden soll.</p>
<p>Edit: hat sich erledigt, habs hinbekommen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346893</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Sat, 18 Aug 2007 14:08:38 GMT</pubDate></item></channel></rss>