![]() |
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.
|
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. ![]() |
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; |
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?) |
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. |
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
![]() ![]() |
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?
|
AW: NToBE ?
![]() |
AW: NToBE ?
Hast du mal was gefunden zum konvertieren von dxf bin nach dxf ascii?
|
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. |
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