AGB  ·  Datenschutz  ·  Impressum  







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

Dynamische Arrays "zu Fuß"

Ein Thema von Luckie · begonnen am 20. Dez 2003 · letzter Beitrag vom 28. Dez 2003
Antwort Antwort
Seite 4 von 4   « Erste     234   
w3seek
(Gast)

n/a Beiträge
 
#31

Re: Dynamische Arrays "zu Fuß"

  Alt 21. Dez 2003, 12:16
Zitat:
kannst Du mir kurz zeigen, wie Du mit diesem internen Iterator etwas in der Art
Delphi-Quellcode:
for i:=0 to High(myArary)-1 do
  for a:= i to High(myArray) do
    doSth(myArray[i], myArray[a]);
hinbekommst?
Delphi-Quellcode:
list.BeginWalk;
while list.Walk(sublist) do begin
  sublist.BeginWalk;
  while sublist.Walk(entry) do
    doSth(sublist, entry);
  end;
end;
ist zwar nicht 100% das selbe aber es handelt sich wie gesagt um eine verkettete liste und ist deshalb nicht direkt vergleichbar mit einm array.

Zitat:
Darüber hinaus sind solche Zustandsbehaftete interne Interatoren problematisch bei Threads...
Ich hatte niemals behauptet dass diese Liste thread-sicher waere, ist die TList und statische/dynamische arrays im uebrigen auch nicht. Der unterschied ist nur dass TList und statische/dynamische arrays beim reinen lesen von Eintraegen thread-sicher ist und meine nicht. Es kommt halt darauf an fuer was man es einsetzt, fuer mein damaliges projekt hatte diese variante eben gereicht und ich hab mir gedacht kann ich ja mal posten weils zum thema passt...
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#32

Re: Dynamische Arrays "zu Fuß"

  Alt 21. Dez 2003, 12:46
Die SubList muss ich wohl übersehen haben... Und muss man dieses Exemplar dann nicht wieder freigeben?
Ich wollte nicht behaupten, dass Arrays threadsafe sind, aber sie sind, im Gegensatz zu einem zustandsbehafteten internen Iterator, immerhin treadable. Falls Dich das Thema interessiert, sieh Dir mal das Bei Google sucheniterator pattern (GoF) an, bei dem beliebig viele externe Iteratoren mit ihren unabhängigigen Stati und einer Referenz auf die zu iterierene Liste gehalten werden können...
Eine Lösung könnte dann zB so aussehen (wenn die Iteratoren mit einer Referenzzählung ausgestattet sind)
Delphi-Quellcode:
with myList.Iterator do
  while HasNext do
    DoSth(Next);
bzw
Delphi-Quellcode:
with myList.Iterator do
  with HasNext do
  begin
    myItem:= Next;
    with myList.Iterator(myItem) do
      while HasNext do
        DoSth(myItem, Next);
  end;
gruß, choose
  Mit Zitat antworten Zitat
w3seek
(Gast)

n/a Beiträge
 
#33

Re: Dynamische Arrays "zu Fuß"

  Alt 21. Dez 2003, 12:54
da ich mich mit win32 kernel mode programmierung relativ gut auskenne, weiss ich auch wie man thread-safe code schreibt Wie gesagt das war nicht das Ziel meiner implementierung damals. Es hatte fuer meine Zwecke gereicht.
  Mit Zitat antworten Zitat
w3seek
(Gast)

n/a Beiträge
 
#34

Re: Dynamische Arrays "zu Fuß"

  Alt 21. Dez 2003, 13:01
am besten sind immer noch die doppelt verketteten listen, wenn auch nicht threadsafe...
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#35

Re: Dynamische Arrays "zu Fuß"

  Alt 21. Dez 2003, 13:07
Das kommt immer auf die Anwendung an, ich bin ebenfalls ein Fan von Hashtables und Skiplisten und für suchen in Strukturen natürlich Bäumen...
Bei dem von Luckie skizzierten Anwendungsfall, nämlich einem Ersatz für dynamische Arrays, halte ich aber alles, was über eine Lösung der Art myArray^[n]:= MyTypeCheckedVar; hinausgeht, für maßlos übertrieben.
gruß, choose
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#36

Re: Dynamische Arrays "zu Fuß"

  Alt 21. Dez 2003, 13:30
Zitat von Nailor:
Aber falls du die D3Prof-Version hättest, könntest du den TList Code rauskopieren, und kämst auf unter 130 KB...
Dazu sagt die Borland Lizenz:
Zitat:
[...] Unabhängig von allen
Änderungen, die Sie vornehmen, dürfen Sie keine Dateien
verteilen (insbesondere keinen Borland-Quellcode und andere
nicht compilierte Dateien), außer denen, die Borland
explizit als weitergabefähige Dateien gekennzeichnet hat.
Also nichts mit OpenSource.
  Mit Zitat antworten Zitat
vbinsider

Registriert seit: 26. Dez 2003
Ort: Würselen
11 Beiträge
 
Delphi 7 Professional
 
#37

Re: Dynamische Arrays "zu Fuß"

  Alt 26. Dez 2003, 23:45
aber du gibst ja nicht den Quellcode von der TList-Definition weiter, du kompilierst sie ja in dein Prog.
Also hast du doch eigentlich kein Prob mit dem Copyright

mfg

vbinsider
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#38

Re: Dynamische Arrays "zu Fuß"

  Alt 27. Dez 2003, 12:48
Zitat von vbinsider:
aber du gibst ja nicht den Quellcode von der TList-Definition weiter, du kompilierst sie ja in dein Prog.
Also hast du doch eigentlich kein Prob mit dem Copyright
Doch, weil Luckie seine Programme i.d.R. OpenSource veröffentlicht. Und wenn er zwecks Größenersparnis den Code von TList aus der Unit in eine eigene rauskopiert, muss er diese mitgeben, damit das Programm kompiliert werden kann.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
vbinsider

Registriert seit: 26. Dez 2003
Ort: Würselen
11 Beiträge
 
Delphi 7 Professional
 
#39

Re: Dynamische Arrays "zu Fuß"

  Alt 28. Dez 2003, 18:52
Zitat von Chewie:
Und wenn er zwecks Größenersparnis den Code von TList aus der Unit in eine eigene rauskopiert, muss er diese mitgeben, damit das Programm kompiliert werden kann.
eigentlich nicht, auch bei vielen Progs im Netz ist es so, dass einfach nur die DCU mitgeliefert wird. Die kann man nicht mehr dekompilieren. So gibt man nicht den Quellcode weiter, sondern nur das Kompilat.
Wenn man das Copyright nun genau interpretiert, so dürfte das keine Verletzung darstellen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#40

Re: Dynamische Arrays "zu Fuß"

  Alt 28. Dez 2003, 22:57
Und was solldas bringen, bei OpenSource die Kompilate weiterzugeben? das kan ich mir dann ja auch sparen. Aber davon mal abgesehen, mit der Prof werde ich bestimmt kein OpenSource machen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 07:31 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