Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi STL Standard Delphi Library für Delphi Win32 (https://www.delphipraxis.net/82655-stl-standard-delphi-library-fuer-delphi-win32.html)

radekj 17. Dez 2006 13:50


STL Standard Delphi Library für Delphi Win32
 
Hallo,

seit 1998 gibt es die freie Standard Delphi Library für Delphi Win32 "DeCAL" (gohostet by sourceforge),
ein muss für jeden professionellen Delphi Programmierer.

Sie ist praktisch ein Abbild der STL für C++ mit Containern, Interators etc.

Sie beschleunigt die Entwicklumg jedes Projektes und verbessert die Lesbarkeit des Codes.

ciao
Radek

GimbaR 17. Dez 2006 14:59

Re: STL Standard Delphi Library für Delphi Win32
 
Aha, und wozu is sowas gut und wie beschleunigt es die Entwicklung jedes Projektes oder verbessert die Lesbarkeit des Codes? :gruebel:

radekj 17. Dez 2006 15:10

Re: STL Standard Delphi Library für Delphi Win32
 
Beispiel:
Delphi-Quellcode:
procedure Test();
var
DummeFragen: DMap;
begin
DummeFragen := DMap.Create;
DummeFragen.purPair('Frage1', 'aaa...');
DummeFragen.purPair('Frage2', 'bbb...');
DummeFragen.purPair('Frage3', 232); <- Zahl !!!
DummeFragen.purPair('Frage4', 'ccc...');

//finde und zeige Frage 2 (string)
ShowMessage( getString(DummeFragen.locate(['Frage2'])) );

//finde und zeige Frage3 (eine Zahl !!!)
ShowMessage(IntToStr( getInteger(DummeFragen.locate(['Frage3'])) ));

DummeFragen.Free;
end;
Versuche das mit TList zu machen !!!


oder etwas komplexer:

We have two classes of students. Some students can be in both classes. We want to find
every student whose grade is above 80 in both classes, making sure that we remove
duplicates (because students might be in both classes). Then we want to sort the students by
their names, in reverse alphabetical order. Here’s the code:
Delphi-Quellcode:
Procedure test;
 Var class1, class2 : DMap;
 GoodStudents : DArray;
 I : Integer;
 Iter1, Iter2 : DIterator;
Begin

 // fill our classes with random students and grades
 class1 := DMap.Create;
 class2 := DMap.Create;

 for I := 1 to 25 do
 begin
  class1.putPair([Random(100), RandomName]);
  class2.putPair([Random(100), RandomName]);
 end;

 goodStudents := DArray.Create;
 iter1 := class1.lower_bound([80]);
 iter2 := class2.lower_bound([80]);
 setIntersectionIn(iter1, class1.finish, iter2, class2.finish, goodStudents.finish);
 reverse(goodStudents);
 PrintContainer(goodStudents);

 FreeAll([class1, class2, GoodStudents]);
end;
ciao
Radek

Dax 17. Dez 2006 15:18

Re: STL Standard Delphi Library für Delphi Win32
 
Hi radekj, du kannst deine Beiträge auch editieren, einen neuen aufmachen ist erst nach 24 Stunden ein Muss.. ;)

GimbaR 17. Dez 2006 15:36

Re: STL Standard Delphi Library für Delphi Win32
 
Ja, das sieht wirklich hilfreich aus :o
Da hätte ich auch gleich mal ne Frage: Kann ich auch überprüfen von welchem Typ die daten sind? Quasi anstatt
Delphi-Quellcode:
getInteger
schreib ich dann
Delphi-Quellcode:
if IsInteger(['Frage3'] then getInteger(...
:?: :?: :?:

PS: Es gibt keine dumme Fragen, nur... ;)

radekj 17. Dez 2006 15:37

Re: STL Standard Delphi Library für Delphi Win32
 
Ja.

Aber das ist nur eine von viellen Besonderheiten von STL das man Typen in Conteiner einfach mischen kann,
es wird über "array of const" und "TVaRec" Typen gemacht.

Ich behaupte das Delphi + STL + LOKALE SQL-Engine das mächtigste Entwicklumgs-Umgebung ist.

radek

jbg 17. Dez 2006 15:47

Re: STL Standard Delphi Library für Delphi Win32
 
Zitat:

Zitat von radekj
seit 1998 gibt es die freie Standard Delphi Library für Delphi Win32 "DeCAL" (gohostet by sourceforge),
ein muss für jeden professionellen Delphi Programmierer.

Das Projekt sieht für mich recht tot aus. Das letzte Release stammt aus dem Jahr 2000, in dem auch die letzte Änderung im CSV gemacht wurde.

radekj 17. Dez 2006 15:52

Re: STL Standard Delphi Library für Delphi Win32
 
Die DeCAL-STL für Delphi war 1998 fertig entwickelt und war bis ca. 2000 ein komerzielles Produkt.
Also es gab nichts zu tun, sie ist seit 1998 stabil.

Das OpenSource Projekt hat an der DeCAL nichts gemacht.

Ich benutze Sie seit 1998, und ich lebe von Programmierung !

Radek

jbg 17. Dez 2006 16:09

Re: STL Standard Delphi Library für Delphi Win32
 
Zitat:

Zitat von radekj
Das OpenSource Projekt hat an der DeCAL nichts gemacht.

Das ist ja das Problem. 6 Jahre in dieser Branche sind eine halbe Ewigkeit. Und wenn ich so über den Code blättere fallen mir da schon ein paar Stellen auf, die man lieber anders lösen sollte (abgesehen vom in Pascal/Delphi unüblichen lowerCamelCase). Schon alleine die vielen globalen Funktionen (getString(), getCurrency(), ...) würden mich abschrecken. Die würden besser in einen Namespace gehören und nicht wie wild im Unit Namespace herumliegen. Bei getString und Konsorten wäre das einbauen in DInterator sogar besser. Das UniqueString() im getString() bremst auch nur aus. Wenn der Aufrufer den String in einen PChar umwandelt möchte, sollte er sich selbst darum kümmern, dass der String unique ist was er sonst ja auch muss. Das einfach mal prinzipiell durchzuführen ist nichts anderes als eine unnötige Geschwindigkeitsbremse.

Und das nur beim schnellen drüberschauen.

Thorben77 17. Dez 2006 16:15

Re: STL Standard Delphi Library für Delphi Win32
 
Zitat:

Zitat von radekj
Hallo, seit 1998 gibt es die freie Standard Delphi Library für Delphi Win32 "DeCAL" (gehostet by sourceforge),
ein muss für jeden professionellen Delphi Programmierer.

Wie wärs mal mit einem Link? Ich schaff es irgendwie nicht, das Projekt bei Sourceforge zu finden :oops:


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

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