amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Suche [ - Suche - Neue Beiträge - Registrieren - Login - ]

Erste 1 2 3 4 5 -6- 7 8 9 10 11 >> Letzte Ergebnisse der Suche: 1662 Treffer (30 pro Seite)
AGSzabo   Nutzer

18.01.2012, 13:34 Uhr

[ - Direktlink - ]
Thema: TextLenght() ohne window/screen?
Brett: Programmierung

Hallo,

wie kann man die Höhe und Breite eines Textes berechnen lassen, wenn man noch kein Fenster und auch keinen Screen für den RastPort hat? Das frage ich mich gerade, weil man mein GUI auch dann layouten können soll, wenn weder ein Fenster noch der/ein Screen dafür offen ist. Mein erster Gedanke war, einen temporären Rastport zu erzeugen ohne Layer und ohne Bitmap. Geht das oder wie würdet ihr es machen?

ags
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.

[ Dieser Beitrag wurde von AGSzabo am 18.01.2012 um 13:36 Uhr geändert. ]
 
AGSzabo   Nutzer

15.01.2012, 17:54 Uhr

[ - Direktlink - ]
Thema: Ist das Volume eine RamDisk?
Brett: Programmierung

Hallo,

für meinen Dateiauswahlrequester vergebe ich Icons je nach Typ des Eintrages. Um die Liste der Volumen zu bekommen, verwende ich die DosList(s). Jetzt möchte ich rausfinden, ob da ein Eintrag eine Ramdisk ist, um dann ein Icon von einem Chip dazu zu vergeben. Wie kann ich das machen?

ags
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

15.01.2012, 14:33 Uhr

[ - Direktlink - ]
Thema: Dateiname rüber ziehen, wie?
Brett: Programmierung

@Der_Wanderer:

Im alten Directoryopus hat es auch funktioniert.


> wie man die Felder eigentlich miteinander verknüpft.

Was meinst Du damit?
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

15.01.2012, 11:06 Uhr

[ - Direktlink - ]
Thema: Dateiname rüber ziehen, wie?
Brett: Programmierung

Hallo, ich habe ein Dateifenster programmiert mit zwei Listen links und rechts und möchte eine Datei clicken, Maus gedrückt lassen, und den Namen sichtbar rüber in die andere Liste ziehen. Wie kann man das machen? Bobs? Gels? Icons? Evtl auch in ganz andere Fenster ziehen? ags
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

15.01.2012, 09:59 Uhr

[ - Direktlink - ]
Thema: moeglichkeiten ein image zu laden
Brett: Programmierung

@akl:

Aber nur ab OS4, oder? Und womit bekäme ich dann das Bild richtig ins Blickfeld kopiert?
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

13.01.2012, 21:35 Uhr

[ - Direktlink - ]
Thema: moeglichkeiten ein image zu laden
Brett: Programmierung

@Polluks:

Wenn ich es richtig verstanden habe, geht diese perfekte Lösung über Datatypes. Aber so weit ich weiß, unterstützt Datatypes keinen Alphakanal. Wie geht das also? Ich würde gerne allgemein PNG Images mit Transparenzen für Toolbuttons und andere Gadgets in meinem GUI nutzen. Gibt es da einen Weg? Mit BlitBitmapRastport() geht's wohl nicht. hmm ... WritePixelArray()? Derzeit verwende ich Icons.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.

[ Dieser Beitrag wurde von AGSzabo am 13.01.2012 um 21:37 Uhr geändert. ]
 
AGSzabo   Nutzer

09.01.2012, 20:23 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Holger:

> Welches Satzzeichen, welcher Buchstabe?

Der Punkt wollte manchmal nicht da liegen, wo er hingehört. Aber ich habs eben nochmal getestet: es kommt mit dem bitclear zB "test" zwischen "test (4. Kopie)" und "test (5. Kopie)" zum liegen.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

09.01.2012, 18:11 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Holger:

> Wieso? Glaubst Du, den User interessiert es, ob Satz- und Sonderzeichen korrekt nach ASCII-Code sortiert sind?

Bei mir hat sich das Satzzeichen unter die Buchstaben gemischt.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

09.01.2012, 18:09 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Holger:

Ok, ich habe es hin bekommen. Problem, es ist total slow. Was siehst du?

code:
.binary		; new node in a4, used in .cmpnodes

		; get most left node to a2 and
		; most right node to d2

		move.l	(a7),a0
		move.l	oxO_list(a0),a2
		move.l	oxO_list+8(a0),d2

		; neue node links oder rechts aussen?

		move.l	a2,a5
		bsr	.cmpnodes
		bge	.linksaussen

		move.l	d2,a5
		bsr	.cmpnodes
		bgt	.schleife

		; rechtsaussen

		move.l	d2,a2
		bra	.add

.schleife	; folgt rechts auf links?

		cmp.l	(a2),d2
		beq	.add

		; wenn nur eine node zwischen liegt,
		; gehe nur eins vorwärts 

		move.l	a2,a5
		lsr.w	#1,d5
		move.w	d5,d0
		beq	.vorwaerts

		subq.w	#1,d0

.vorwaerts	move.l	(a5),a5
		dbf	d0,.vorwaerts

		; ist die neue node links oder rechts vom pivot?

		bsr	.cmpnodes
		bgt	.ist_links

		; ist rechts, ersetze linken rand durch pivot

		move.l	a5,a2
		bra	.schleife

.ist_links	; ersetze rechten rand durch pivot

		move.l	a5,d2
		bra	.schleife

.linksaussen	sub.l	a2,a2

.add		; einfügen nach node in a2


--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.

[ Dieser Beitrag wurde von AGSzabo am 09.01.2012 um 18:12 Uhr geändert. ]

[ Dieser Beitrag wurde von AGSzabo am 09.01.2012 um 18:33 Uhr geändert. ]

[ Dieser Beitrag wurde von AGSzabo am 09.01.2012 um 18:42 Uhr geändert. ]

[ Dieser Beitrag wurde von AGSzabo am 09.01.2012 um 19:00 Uhr geändert. ]
 
AGSzabo   Nutzer

09.01.2012, 11:46 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Holger:

Zitat:
1. Du hast einen Anfang (erster Knoten) und ein Ende (letzter Knoten).
2. Du besorgst Dir den mittleren Knoten zwischen diesen beiden (Pivot)
3. Du vergleichst Deinen neuen Knoten mit dem Pivot
4. Ist der neue Knoten kleiner, ersetzt der Pivot Deinen Endknoten, ist er größer, ersetzt er Deinen Anfangsknoten. Gleichheit kann bei Dir nicht auftreten
5. Befinden sich zwischen Anfangs- und Endknoten noch andere Knoten, gehe zu Schritt 2.
6. Jetzt fügst Du den neuen Knoten zwischen A und E ein
fertig


Hab ich jetzt mal versucht, so um zu setzen. Da ist ein Problem gleich zu Anfang aufgetreten: Angenommen es sind zwei Nodes, da gibt es keine Mitte und ich weiß nicht, ob der neue Knoten vor den ersten, oder zwischen beide, oder nach dem zweiten eingefügt werden muss. Diese Situation kann auch am Ende des Suchvorgangs eintreten.

--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

08.01.2012, 11:29 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

Bahh, ich habe leider festgestellt, dass mein schöner Algo vermutlich nur bei sehr großen Datenmengen ein paar Fehler mit rein bringt. Und zwar keine einzelnen Ausrutscher, sondern ganze Blöcke von Namen mit dem selben Anfangsbuchstaben landen an der falschen Stelle. Das Problem tritt aber nur sporadisch auf.

Außerdem hatte der .strcmp code den Fehler, dass die Case-Unabhängigkeit auch bei Chars außerhalb der Buchstaben das Bit 5 gelöscht hat, was bei Satzzeichen zB zu Fehlern führt. Hab ich mal ganz raus genommen. Dafür konnte ich das leeren von d0 und d1 am Anfang der Funktion einsparen und das sub.l d0,d1 zu sub.b machen. Das geht offenbar genauso:

code:
.cmploop	move.b  (a1)+,d1
		move.b  (a0)+,d0
		beq.s  .cmp
		cmp.b  d0,d1
		beq.s  .cmploop
.cmp		sub.b  d1,d0
.rts		rts


--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.

[ Dieser Beitrag wurde von AGSzabo am 08.01.2012 um 11:56 Uhr geändert. ]
 
AGSzabo   Nutzer

07.01.2012, 14:49 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

> Hast Dus mal auf Geschwindigkeit geprüft?

Ich konnte bisher keinen Unterschied feststellen. Der PC an dem ich zur Zeit bin ist sowieso viel zu langsam, besonders die Platte. Daheim kann ich dann besser testen. So Spielchen wie zuerst alle (!) Dateien einlesen (großer Buffer) und dann sehen wie lange das reinen Einfüllen dauert, hab ich schon ausprobiert und keinen Unterschied bemerkt.

> Musst nur ausloten wo die Grenze liegt.

Ja sowas ging mir auch schon durch den Kopf. Ich vermute so ab 2500 Files.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

07.01.2012, 10:37 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

Jetzt aber zu der eigentlichen AddSorted Routine. Ist das noch optimierbar? Vor allem dass an zwei Stellen .cmpnodes aufgerufen wird, gefällt mir nicht wirklich. Es wird aber nix doppelt ausgeführt, oder? Das .add_where kommt nur am Schluss dran.

code:
add_sorted	; a0 list
		; a1 new node

		; a4 new node text (used in .cmpnodes)
		; d4 new node priority (used in .cmpnodes)

		; d5 number of nodes in list

		pushm	a0/a1

		; a2 is the node after which the new node is added,
		; if it remains 0 the new node is added at list head

		sub.l	a2,a2

.start		; get back pointer to list 

		move.l	(a7),a5

.half		lsr.w	#1,d5
		beq	.add_where
		bcc	.find_pivot

		addq.w	#1,d5

.find_pivot	move.w	d5,d0
		subq.w	#1,d0

.loop		; get first or next node

		move.l	(a5),a5
		dbf	d0,.loop

		bsr	.cmpnodes
		beq	.add
		bgt	.left

		; right (ble)

		move.l	a5,a2

		bra	.half

.left		move.l	a2,a5

		move.l	a5,d0 ; scratch to test for 0
		beq	.start

		bra	.half

.add_where	move.l	(a5),a5

		bsr	.cmpnodes
		bgt	.add	; before

		; after (ble)

		move.l	a5,a2

.add		popm	a0/a1
		jmp	_LVOoxAddMemberAfter(a6)


Die Subroutine .cmpnodes hatten wir schon besprochen, das ist die mit den Strings.

--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

07.01.2012, 09:48 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

Haha, die Lösung ist mir im Halbschlaf eingefallen:

code:
.half		lsr.w	#1,d5
		beq	.add_where
		bcc	.find_pivot

		addq.w	#1,d5

.find_pivot


Das ist eine mögliche Optimierung!
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

06.01.2012, 20:45 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

Mein Algo ist folgender:

Hier ist der Algo im Prinzip erklärt:

1. Ich habe die Anzahl und den Anfang. Ist die Anzahl 0, füge ich die neue Node ein.

2. Ich halbiere die Anzahl. Und addiere Sie zum Anfang um den Pivot zu erhalten. An der resultierenden Stelle vergleiche ich die Nodes.

3. War die Anzahl nach der Halbierung 0, füge ich die neue Node je nach dem Vergleich vor oder hinter der Node an der resultierten Stelle ein.

4. War die Anzahl nicht 0 und die neue Node kleiner, gehe ich zu Schritt zwei. War die Anzahl nicht 0 und die neue Node größer, wird der Pivot mein neuer Anfang und ich gehe zu Schritt 2.

Das ist sicher durch ein paar Umstellungen noch optimierbar, oder?
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

06.01.2012, 20:26 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

Ich habs! Mein Algo funktionierte schon im Grunde! Es musste noch ne Art Rundung mit rein und das ich mir beim vor-zurück gehen die richtige Node raus hole. Man musste mal hier mal da eine Node vorher oder nacher nehmen.

Optimieren kann man bestimmt diese Rundung:

code:
.half		ext.l	d5

		divu.w	#2,d5

		tst.w	d5
		beq	.add_where

		move.l	d5,d0
		swap	d0
		tst.w	d0
		beq	.a

		addq.w	#1,d5
.a


Bitte nicht wundern dass ich das so umständlich mache. Ich hatte zuerst nur ein "lsr.w #1,d5" drin. damit ging es aber nicht. Als Optimierung dachte ich mir, dass man das rechts evtl. raus geschobene ungerade Bit abfragen und/oder benutzen kann. Vielleicht kann jemand das ausschreiben oder hat eine bessere Idee?
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.

[ Dieser Beitrag wurde von AGSzabo am 06.01.2012 um 20:36 Uhr geändert. ]
 
AGSzabo   Nutzer

06.01.2012, 15:01 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

Der immer zu halbierende Wert sitzt in d5, d0 ist bloß eine lokale Kopie davon für die Schleife.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.

[ Dieser Beitrag wurde von AGSzabo am 06.01.2012 um 15:01 Uhr geändert. ]
 
AGSzabo   Nutzer

06.01.2012, 14:27 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

Das bleibt drin weil darunter noch der Fall abgehandelt werden soll,falls beide Strings gleich sind... an sonsten kann man es weglassen, ja.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

06.01.2012, 14:16 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

Test hat ergeben, dass der Code zwischen .add_where und .before GARNICHTS bewirkt.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

06.01.2012, 14:05 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

Etwa 10 aus 80 Nodes sind komplett anders positioniert.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

06.01.2012, 13:51 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

Jetzt habe ich folgenden Code, der FAST funktioniert. Ich erhalte eine im Grunde geordnete Liste, in der ein paar wenige falsch positionierte Nodes drin sind. Sieht jemand den Fehler?

code:
.binary_add	; a0 list
		; a1 new node
		; a2 noder after which to add

		; d4 new node priority
		; a4 new node text

		pushm	a0/a1	

		sub.l	a2,a2	; initially add at head

		; get number of rows, add at head if none

		move.w	oxLV_rowscount(a3),d5
		beq	.before

.start		; get back list pointer

		move.l	(a7),a5

		; get first node

		move.l	(a5),a5

.half		lsr.w	#1,d5
		beq	.add_where

		; find pivot, num is at least 1

		move.w	d5,d0
		subq.w	#1,d0

.findpivot	move.l	(a5),a5
		dbf	d0,.findpivot

		cmp.l	my_priority(a5),d4

		blt	.right
		bgt	.left

		move.l	my_text(a5),a0

		move.l	a4,a1
		bsr	.strcmp
		blt	.right
		bgt	.left

		; strings are equal here

		bra	.after

.right		move.l	a5,a2
		bra	.half

.left		move.l	a2,a5

		cmp.l	#0,a5
		beq	.start

		bra	.half

.add_where	; get node priority, higher means add before

		cmp.l	my_priority(a5),d4
		blt	.after
		bgt	.before

		move.l	my_text(a5),a0

		move.l	a4,a1
		bsr	.strcmp
		blt	.after
		bgt	.before

		; strings are equal here


.after		move.l	a5,a2

.before		popm	a0/a1
		jmp	_LVOoxAddMemberAfter(a6)


.strcmp		; a0 string1, a1, string2

		moveq  #0,d0
		moveq  #0,d1
.loop1		move.b  (a1)+,d1
		bclr	#5,d1	; case independent
		move.b  (a0)+,d0
		beq.s  .exit1
		bclr	#5,d0
		cmp.b  d0,d1
		beq.s  .loop1
.exit1		sub.l  d1,d0
		rts


--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.

[ Dieser Beitrag wurde von AGSzabo am 06.01.2012 um 13:52 Uhr geändert. ]
 
AGSzabo   Nutzer

05.01.2012, 22:46 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

Ich seh grad mein Ansatz funktioniert so noch nicht richtig. Ich denke mir das mal auf Papier durch und melde mich dann wieder.


--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

05.01.2012, 21:57 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

Bleibt nicht gleich. Wie meinst du das? VOR Jeder Suche nach dem neuen Pivot halbiert sich die Anzahl.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

05.01.2012, 20:27 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Holger:

1. Ich habe einen Anfangsknoten (im ersten Schritt die Erste Node der Liste) und eine Anzahl. Einen Endknoten brauche ich nicht.

2. Ich halbiere die Anzahl. Ist sie 0, gehe ich zu Schritt 4. Sonst gehe vom Anfangsknoten so viele Nodes vorwärts wie die Anzahl ist. Die neue Node vergleiche ich mit dem Ziel.

3. Ist die neue Node kleiner, bleibt der Anfangsknoten der selbe. Ist sie größer, wird der Pivot der neue Anfangsknoten. In beiden Fällen gehe ich zu Schritt 2. An sonsten gehe ich zu 4.

4. Ich füge die Node ein.

--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

05.01.2012, 20:14 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Holger:

> 2. Du besorgst Dir den mittleren Knoten zwischen diesen beiden (Pivot)

Hmm, dazu muss ich die Zahl der Nodes dazwischen wissen. Reicht es, wenn ich die beim Adden neuer Nodes 1 dazu zähle und die Zahl bei den Durchläufen jedesmal halbiere, zB mit lsr.l d0 ? Oder kommt es zu Ungenauigkeiten?
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

05.01.2012, 20:08 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Holger:

Danke.

> Gleichheit kann bei Dir nicht auftreten

Doch, die AddSorted Methode ist Teil der Listview, die von der Filerequesterklasse lediglich benutzt wird. Aus der Sicht der Listview kann es durchaus zwei oder mehr gleiche Knoten geben. In dem Fall hänge ich die neue Node einfach vor (oder nach?) dem Element ein, an dem die Gleichheit festgestellt wurde?

--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

05.01.2012, 17:06 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

Zitat:
Kannst du doch einfach berechnen
Bei linker Seite:
Neues Pivot = altes Pivot / 2
Bei rechter Seite:
Neues Pivot = Altes Pivot + ((Anzahl - Neues Pivot) / 2)


Ah ja, so ginge das. Ich müsste bei jedem Einfügen alle Nodes bis zum ersten Pivot durch steppen (Anzahl / 2), diesen vergleichen und dann von dort aus zB die eben Ermittelte Zahl wieder durch zweit teilen und vorwärts oder rückwärts so viele Nodes durch gehen. Dort wieder vergleichen und so weiter, bis 0 raus kommt, oder 1? Oder was sonst?

Ich denke aber über eine noch weitere Beschleunigung nach:

Ich merke mir den Anfang der Liste. Wenn ich neue Nodes anfüge, zähle ich deren Anzahl mit. Bei jeder geraden Anzahl steppe ich vom Anfang der Liste um 1 Node weiter und habe so immer einen Zeiger auf die Mitte der Liste, von der ich ausgehen kann! Für die weiteren Schritte würde ich weitere Zeiger benötigen, oder so wie oben weiter machen. Wenn ich weitere Zeiger will, müsste ich bei jedem zweiten weitergehen des aktuellen Mitte-Zeigers zwei neue Zeiger merken, nämlich auf eine Node vorher und eine Node nacher. Diese Zeiger müsste ich alle immer weiter anpassen. Hmmm, ich denke, das ist blöd. Bis auf den ersten Schritt, wo ich die Mitte ALLER Nodes merke. Der bringt mir evtl schonmal eine Beschleunigung um die Hälfte, ohne im ersten Schritt bis zur Hälfte zu steppen. Stimmts?
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

05.01.2012, 16:22 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

Ne, ich meine ich muss im zweiten Schritt die Mitte von der hälfte nehmen. Die erste Mitte kann ich wie oben beshrieben durch weitergehen zum nächsten Element nach allen zwei neuen Nodes merken. Die Frage war, ob ich die Mitte der Hälfte auch in etwa so ermitteln kann oder ob ich da dann durch die Hälfte der Hälfte Nodes steigen muss? Und so weiter.
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
AGSzabo   Nutzer

05.01.2012, 15:46 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

Ich hab grad wieder auf ExAll() umgestellt. Mit einem größeren Buffer bringt es tatsächlich auch auf einem langsamen Gerät ein paar Sekunden. Den Algo habe ich soweit begriffen. Man könnte auch von Anfang an einen Zeiger auf das erste Element merken, und dann immer nach zwei neuen Nodes um 1 Node weiter gehen. So hat man immer die Mitte ohne die hälfte der Nodes bis dahin durchzugehen. Klappt das aber nur mit der Mitte, oder gibt es eine Möglichkeit, dieses Verfahren auf alle Schritte auszuweiten?

ps: mit ExAll() hab ich auch gratis das Patternmatching mit drin, das ist sehr nett. :)

--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.

[ Dieser Beitrag wurde von AGSzabo am 05.01.2012 um 15:47 Uhr geändert. ]
 
AGSzabo   Nutzer

05.01.2012, 14:54 Uhr

[ - Direktlink - ]
Thema: Wieviele Files in Dir?
Brett: Programmierung

@Thore:

> ... Vergleiche es mit der 8: gefunden in 3 Schritten.


Soweit klar. Woher weiß ich, wann wo die Mitte ist?
--
Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system.
 
 
Erste 1 2 3 4 5 -6- 7 8 9 10 11 >> Letzte Ergebnisse der Suche: 1662 Treffer (30 pro Seite)

Suchbegriffe
Schlüsselwörter      Benutzername
Suchoptionen
Nur in diesen Foren suchen
   nur ganze Wörter
Nur Titel anzeigen
alle Treffer anzeigen

.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.