Kleine dll mit nützlichen Funktionen!

Posted By: Nighthawk

Kleine dll mit nützlichen Funktionen! - 08/29/11 21:24

Hallo,
ich arbeite erst seit kurzem mit der A8 Engine und lite-C,da mir gleich ein paar kleinere dinge fehlten schrieb ich eine dll mit folgenden Funktionen :

-Dynamische Liste für Pointer zu speichern
-Desktopauflösung ermitteln
-Öffnen und schließen einer Konsole für Informationen oder Variablenzustände auszugeben
-Laden aus Ziparchiven

Druid3d


Gruß
Nighthawk
Posted By: WretchedSid

Re: Kleine dll mit nützlichen Funktionen! - 08/30/11 12:17

Hey Nighthawk, danke für die dll. Zwei Dinge allerdings:
1) Dynamische Listen, ich nehme mal das ist kein array, oder doch?
2) Die Desktopauflösung kriegst du unter Lite-C mithilfe von sys_metrics() raus, da braucht es nicht unbedingt eine dll für.
Posted By: Rei_Ayanami

Re: Kleine dll mit nützlichen Funktionen! - 08/30/11 16:08

mir fehlt da irgendwie der header für die funktionsnamen?
Posted By: WretchedSid

Re: Kleine dll mit nützlichen Funktionen! - 08/30/11 16:11

hlp.h wink
Posted By: Rei_Ayanami

Re: Kleine dll mit nützlichen Funktionen! - 08/30/11 16:13

Ahhh, sry. The link-buttom was just the hlp.dll and I thought it would be just the dll D:

Edit: WTF? Englisch? Aber die Console ist recht cool, braucht man seine Acknex.exe nicht modifizieren laugh
Posted By: Nighthawk

Re: Kleine dll mit nützlichen Funktionen! - 08/30/11 22:56

Hi,
@JustSid
1:Ja,es ist wirklich eine 'Dynamische' Liste.Wird ein Pointer(Datensatz) gelöscht wird auch der verbrauchte Speicher wieder freigegeben.
2:Danke für den Hinweis^^

Die dll werd ich bei Gelegenheit noch weiter ausbauen,besonders die Zip-Funktionen.

Gruß
Nighthawk
Posted By: WretchedSid

Re: Kleine dll mit nützlichen Funktionen! - 08/30/11 23:01

Nein, ich meinte eher ob du einen Array nutzt oder eine andere Datenstruktur. Das was du erklärst klingt aber tatsächlich mehr nach einem Array, dabei wäre eine Hash Table die viel effektivere Möglichkeit das zu speichern! (Kannst du übrigens auch in Lite-C bauen, genauso wie einen Array).

Also bitte als konstruktive Kritik verstehen, ich versuche nicht deine Arbeit schlecht zu machen!
Posted By: Nighthawk

Re: Kleine dll mit nützlichen Funktionen! - 08/30/11 23:12

@JustSid
Benutzt wird eine normale 'Structure'.
Posted By: WretchedSid

Re: Kleine dll mit nützlichen Funktionen! - 08/30/11 23:25

Nein, welche Datenstruktur du nutzt. Also array, linked list, hash table, binary tree, whatever?!
Posted By: Nighthawk

Re: Kleine dll mit nützlichen Funktionen! - 08/30/11 23:34

@JustSid
Linked list^^
Posted By: WretchedSid

Re: Kleine dll mit nützlichen Funktionen! - 08/30/11 23:39

Ah, okay. Für die Zukunft; Das ist eine denkbar ungeeignete Datenstruktur für das was du erreichen willst, mit einer hash table schaffst du deutlich höhere Geschwindigkeiten. Wir sprechen hier von nahezu O(1), wohingegen deine Linked List bei O(log N) liegt. Im Gstudio Wiki steht ein bisschen mehr zu der Thematik:
http://www.opserver.de/wiki/index.php/Data_Structures

Edit: Hier ist eine hashing funktion für C-Strings, sie hat den Vorteil das sie kaum Kollisionen hat solange du unter 16 Zeichen bleibst, bei über 16 Zeichen steigert sich aber die Kollisionsgefahr merklich:
Code:
unsigned int HashString(char *string)
{
	size_t length = strlen(string);
	size_t	iterator;
	
	unsigned int res = length;
	
	if(length <= 16) 
	{
		for(iterator=0; iterator<length; iterator++) 
			res = res * 257 + string[iterator];
	} 
	else 
	{
		// Hash the first and last 8 bytes
		for(iterator = 0; iterator<8; iterator++) 
			res = res * 257 + string[iterator];
		
		for(iterator = length - 8; iterator<length; iterator++) 
			res = res * 257 + string[iterator];
	}
	
	return (res << (length & 31));
}


Posted By: Nighthawk

Re: Kleine dll mit nützlichen Funktionen! - 08/31/11 00:20

Ok,wegen der Geschwindigkeit mag ich Dir ja recht geben.
Aber ich denke es kommt auch darauf an, wo und wie man so etwas einsetzt.
Meine Liste ist eben nur gedacht,für schnell mal an den ein oder anderen Pointer zu gelangen.

Gruß
Nighthawk
Posted By: WretchedSid

Re: Kleine dll mit nützlichen Funktionen! - 08/31/11 11:57

Originally Posted By: Nighthawk
Ok,wegen der Geschwindigkeit mag ich Dir ja recht geben.



Originally Posted By: Nighthawk
Meine Liste ist eben nur gedacht,für schnell mal an den ein oder anderen Pointer zu gelangen.

Widersprichst du dir da nicht? =/
Posted By: Rei_Ayanami

Re: Kleine dll mit nützlichen Funktionen! - 08/31/11 13:18

Hmn, das du \n forced find ich eher doof D:
Posted By: Rei_Ayanami

Re: Kleine dll mit nützlichen Funktionen! - 08/31/11 14:08

Und ich weiß nicht warum, aber an einer Stelle wo ich WriteToConsole mehrmals nacheinander aufrufe stürzt es einfach ab D:
© 2024 lite-C Forums