AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Von C nach Delphi: Benötige Hilfe

Ein Thema von Jazzman_Marburg · begonnen am 24. Nov 2009 · letzter Beitrag vom 28. Nov 2009
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#11

Re: Von C nach Delphi: Benötige Hilfe

  Alt 24. Nov 2009, 15:37
Zitat von Jazzman_Marburg:
Was hat es mit dem abschließenden base_rectangle auf sich?
In C wird damit gleich eine Variable dieses Typs deklariert.

Delphi-Quellcode:
type
  Float = Single; // oder Double? Vergess ich immer wieder
  TRectangle = record // hier müsste man eventuell noch das Align anpassen
    area: float;
    height: float;
    width: float;
    fixed: Integer;
    ptr: TTreeNode; // oder wie der Typ bei dir nun heißt
  end;

var
  base_rectangle: TRectangle;
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#12

Re: Von C nach Delphi: Benötige Hilfe

  Alt 24. Nov 2009, 15:43
Zitat von Uwe Raabe:
Delphi-Quellcode:
type
  Float = Single; // oder Double? Vergess ich immer wieder
  TRectangle = record // hier müsste man eventuell noch das Align anpassen
    {...}
    ptr: PTreeNode; // oder wie der Typ bei dir nun heißt <--- Dit is n Pointer... *g*
  end;

var
  base_rectangle: TRectangle;
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#13

Re: Von C nach Delphi: Benötige Hilfe

  Alt 24. Nov 2009, 15:58
Zitat von Daniel G:
    ptr: PTreeNode; // oder wie der Typ bei dir nun heißt <--- Dit is n Pointer... *g*
Stimmt, hatte irgendwie TTreeNode als class im Sinn. Wie komm ich bloß darauf...
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#14

Re: Von C nach Delphi: Benötige Hilfe

  Alt 24. Nov 2009, 16:13
Vielen Dank an alle, aber da hätte ich noch einen :

Delphi-Quellcode:
treeptr Rootptr()
{
/* initialize the root of the tree */
  treeptr t = (treeptr)malloc(sizeof(*t));
  t->key = -1;
  t->op = '?';
  t->left = NULL;
  t->right = NULL;
  return t;
}
Lauter Böhmische-Döfer...

Lieben Dank
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#15

Re: Von C nach Delphi: Benötige Hilfe

  Alt 24. Nov 2009, 16:29
malloc ist soviel wie Delphi-Referenz durchsuchenGetMem, wobei hier Delphi-Referenz durchsuchenNew sich hier auch gut machen würde.

-> entspricht dem .
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#16

Re: Von C nach Delphi: Benötige Hilfe

  Alt 24. Nov 2009, 16:32
Genauer genommen entspricht "->" "^.", aber Delphi dereferenziert glaub ich bei typisierten Pointern implizit.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#17

Re: Von C nach Delphi: Benötige Hilfe

  Alt 24. Nov 2009, 17:02
Danke.

D.h. obiges sollte in Delphi dann so etwa aussehen:

Delphi-Quellcode:
FUNCTION Rootptr: PTreeNode; // initialize the root of the tree
VAR t : PTreeNode;
BEGIN
  t := GetMem(PTreeNode, ^t);
  t.key := -1;
  t.op := '?';
  t.left := NULL;
  t.right := NULL;
  Result := t;
END;

Vielen Dank
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#18

Re: Von C nach Delphi: Benötige Hilfe

  Alt 24. Nov 2009, 18:45
Statt NULL solltest du besser nil nehmen. Null ist als function deklariert, die einen Null-Variant zurückgibt.
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#19

Re: Von C nach Delphi: Benötige Hilfe

  Alt 24. Nov 2009, 20:22
Danke - NIL sieht tatsächlich besser aus als NULL.

Aber ich tu mich mit dem folgendem noch schwer:

Code:
treeptr Rootptr()
{
/* initialize the root of the tree */
   treeptr t = (treeptr)malloc(sizeof(*t));
   t->key = -1;
   t->op = '?';
   t->left = NULL;
   t->right = NULL;
   return t;
}
Da sieht mir mein GetMem irgendwie nicht korrekt aus -- und der Compiler meldet in dieser Zeile ein:
Fehler '(' erwartet, aber ',' gefunden
Hier nochmal meine 'Übersetzung':

Delphi-Quellcode:
FUNCTION Rootptr: PTreeNode;
VAR t : PTreeNode;
BEGIN
  t := GetMem(PTreeNode, SizeOf(^t));
  t.key := -1;
  t.op := '?';
  t.left := NIL;
  t.right := NIL;
  Result := t;
END;
Vielleicht jemand eine Idee?

Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#20

Re: Von C nach Delphi: Benötige Hilfe

  Alt 24. Nov 2009, 20:39
GetMem(t, SizeOf(TTreeNode));
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz