Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   NToBE ? (https://www.delphipraxis.net/179354-ntobe.html)

Bjoerk 3. Mär 2014 14:40

AW: NToBE ?
 
Das ist doch qausi die ReadFromStrings? Hab jetzt aber gesehen, daß zunächst alles erstmal in den StrValue geladen wird. Der Item braucht eigentlich keinen FloatValuem, die können auch lokale Variablen in den Read ReadEntities_XY sein.

implementation 3. Mär 2014 14:52

AW: NToBE ?
 
Bezüglich der LGPL:
Der Code ist freie Software, du kannst ihn also problemlos zu jedem Zweck verwenden und zu jedem Preis weitergeben/verkaufen. Es greift allerdings bibliothekweites Copyleft, d.h. wenn du am Code etwas änderst oder hinzufügst, gelten die LGPL-Klauseln auch für deine Veränderungen. Dies greift aber nicht mehr auf ein Programm, das diese Bibliothek nur einbindet. Dynamisches Linken ist völlig problemlos, da muss dich das Copyleft nicht stören, statisches eigentlich auch, mit der Einschränkung dass du die ungelinkten *.o/*.obj-Dateien auch vom restlichen Programm mitliefern musst, damit der Nutzer bei Bedarf das Programm gegen eine neuere Version der Bibliothek linken kann. Nun ist die FreePascal-Lizenz aber keine unveränderte LGPL, sondern es hängt noch eine zusätzliche Klausel dran, die sagt, dass du genau das nicht brauchst :wink:

TL;DR: Wenn du die Bibliothek nur einbindest, kannst du praktisch machen was du willst; wenn du sie veränderst oder ergänzt, unterliegst du dem Copyleft.

Ich habe auch mal eine Auflistung zu dem Thema gemacht.

Bjoerk 3. Mär 2014 20:03

AW: NToBE ?
 
Um alle Tokens freigeben zu können hab ich eine zweite Liste (*** Stack) mitlaufen. Das geht aber doch auch anders (ist doch so ein verkette Listen Zeugs). Wie macht denn nochmal sowas? :oops:

Delphi-Quellcode:
procedure TDxfTokenizer.LoadFromFile(const FileName: string);
begin
  if FileExists(FileName) then
  begin
    ..
    SL := TStringList.Create;
    try
      SL.LoadFromFile(FileName);
      ..
      while I < SL.Count - 1 do
      begin
        ...
        NewToken := TDxfToken.Create;
        NewToken.Group := IntSectionGroupCode;
        NewToken.Name := StrSectionName;
        FList.Add(NewToken); // ***



destructor TDxfTokenizer.Destroy;
begin
  Clear;
  FList.Free;
  Tokens.Free;
  inherited Destroy;
end;

procedure TDxfTokenizer.Clear;
var
  I: integer;
  Token: TDxfToken;
begin
  for I := FList.Count - 1 downto 0 do // ***
  begin
    Token := TDxfToken(FList[I]);
    Token.Free;
  end;
  FList.Clear;
  Tokens.Clear;
end;

Jens01 3. Mär 2014 20:12

AW: NToBE ?
 
Ich glaube das ist sowas wie ein Octree.
Wenn Du eine Objectlist nimmst, dann sollten sich die Objekte in der Liste beim Befreien der Liste selbst befreien. (verstanden?)

Bjoerk 3. Mär 2014 20:27

AW: NToBE ?
 
Tatsächlich. Hätt ich nicht gedacht. Den einen NewToken der nicht gebraucht wird (der bei EOF muß man allerdings selbst freigeben). Dann geht’s. Thanx!

BWT, was ist ein Octree?

Ich lese den Code so daß es zu jedem Token einen oder mehrere Childs geben kann, aber keine Child.Childs.. Also quasi Verzeichnisse mit einem oder mehren Unterverzeichnissen auf der 1. Ebene.

Jens01 3. Mär 2014 20:46

AW: NToBE ?
 
Ich weiß jetzt nicht, ob es im Code so gemacht wird, aber jeder Knoten in der Knotenliste hat wieder eine Knotenliste. Also die Struktur ist schon wie ein Octree, wo zumindest eine endlose Tiefe möglch wäre.
wiki octree

Bjoerk 3. Mär 2014 21:04

AW: NToBE ?
 
Genau. Jeder Knoten hat EINE Knotenliste. Ich denke aber sowieso, daß der Erfinder der dxf Struktur eigentlich gesteinigt gehört. Schau dir nur mal diese POLYLINE VERTEX SEQEND Konstruktion an. Eigentlich DAS Paradebeispiel für eine Inifile Struktur. Was man so hört wollte Autodesk schon lange auch mal umstellen?

Jens01 3. Mär 2014 21:14

AW: NToBE ?
 
Darauf stellen jetzt alle um.

Bjoerk 7. Mär 2014 10:42

AW: NToBE ?
 
Hast du mal was gefunden zum konvertieren von dxf bin nach dxf ascii?

Jens01 7. Mär 2014 11:16

AW: NToBE ?
 
Hab noch gar nicht gewußt, dass es sowas gibt.
Hast Du eine Beispieldatei?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 Uhr.
Seite 2 von 3     12 3      

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