Autor Beitrag
monty.ms
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Di 02.01.07 15:36 
Guten Tag

Ist es möglich eine Procedure oder Function zur Laufzeit zu erstellen? Sodass man eine Abfolge von Befehlen abarbeitet und immer mit einer unterschiedlichen Abhängigkeit. Also etwa so:

ausblenden Quelltext
1:
2:
3:
4:
function Blubb(Zahl:integer):integer;
Begin
Result:=zahl + 5;
End;


Das nur mal so als Beispiel. Aber die Funktion sollte eben zur Laufzeit erstellt werden, der Inhalt soll aber der gleiche bleiben, geht das irgendwie? Oder ist das gar nicht nötig? Wenn der die function nochmal aufruft, bevor die function überhaupt erst abgelaufen ist, Arbeitet er doch dann mit der selben?

Danke schonmal im vorraus
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Di 02.01.07 15:45 
Wow! Bahnhof!
Worauf willst du hinaus?

Willst du den Quelltext in ein Memo schreiben und ausführen? Oder wie willst du zur Laufzeit eine Prozedur erstellen??
Versuch mal, das etwas genauer / verständlicher zu erklären, was du vorhast (und wozu, und so)...

_________________
Anonymes Eckenkind
monty.ms Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Di 02.01.07 15:52 
Naja, es kann auch sein dass es komplett Schwachsinnig ist was ich vor hab :) Aber ich hab halt das Problem, ich arbeite mit IdTCPServer und Client. Nun kommen mehrere Anfragen an den Server und Abzuarbeiten dauert. Nun hab ich die Befürchtung dass er wärend der Abarbeitung mit den ankommenden Informationen durcheinander kommt (wenn das überhaupt geht :? ). Die Abarbeitung der Informationen soll halt in so einer Funktion oder Procedure statt finden. Damit jede Anfrage also seine eigene Funktion hat, wollte ich diese dann zur Laufzeit erstellen.. ich denke mal nach deiner reaktion hin ist das blödsinn :) ?!
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Di 02.01.07 16:11 
Richtig, das ist Blödsinn :mrgreen: Geht auch nicht, aber bei orendtlichem Vorgehen kommen keine Informationen durcheinander. Was für Informationen willst du denn bekommen, verarbeiten?

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Di 02.01.07 16:14 
Ok, jetzt versteh ich dich wenigstens :-)

Aber für realistisch / möglich halte ich das Vorhaben nicht. Falls ich falsch liege, korrigiert mich!
Stattdessen solltest du dir lieber eine Möglichkeit überlegen, um zu erkennen, in welcher Reihenfolge deine Daten ankommen und abgearbeitet werden müssen. Ob da etwas durcheinander geraten kann, kann ich dir nicht sagen.
Kannst du den Daten nicht z.B. eine Nummerierung o.ä. mitgeben, sodass der Server erkennen kann, wenn ein Fehler in der Reihenfolge vorliegt?

_________________
Anonymes Eckenkind
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Di 02.01.07 16:19 
de.wikipedia.org/wik...ion_Control_Protocol:
TCP wurde entwickelt, um mit der Unsicherheit der darunterliegenden Schichten umzugehen. Es prüft daher die Integrität der Daten mittels der Prüfsumme im Paketkopf und stellt die Reihenfolge durch Sequenznummern sicher. Der Sender wiederholt das Senden von Paketen, falls keine Bestätigung innerhalb einer bestimmten Zeitspanne (Timeout) eintrifft. Die Daten der Pakete werden beim Empfänger in einem Puffer in der richtigen Reihenfolge zu einem Datenstrom zusammengefügt und doppelte Pakete verworfen.

:arrow: Problem existiert nicht

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
monty.ms Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Di 02.01.07 16:52 
Mh.. aber wenn ich jetzt zum Beispiel eine Abarbeitung einer Client Anfrage habe (procedure wird aufgerufen), die etwa 5 Sekunden dauert. Wärend der Abarbeitung werden Werte bestimmten Variablen zugeordnet. Wenn nun in den 5 Sekunden ein zweiter Client dazu kommt und die selbe Anfrage hat. Startet er ja die selbe Abarbeitung und verändert wieder die Variablen (anderer Client=andere Werte). Dann stimmen diese ja nicht mehr mit denen vom 1. Client überein?! ... Oder wird bei der zweiten Anfrage solange gewartet bis die Procedure für die Abarbeitung wieder "frei" ist? Oder fehlt mir da das Verständnis :) ?!
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Di 02.01.07 16:55 
Wenn der Client dazukommt, wird eine "Nachricht" an den Server gesendet. Die wird solange nicht abgeholt, bis der Server mit der Prozedur fertig ist.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
monty.ms Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Di 02.01.07 16:59 
Ich dachte immer, nach dem Aufruf der Prozedur, ist die Anweisung beendet? Da ja kein Rückgabe wert existiert müsste er ja nicht darauf warten bis die prozedur fertig ist. Aber dann hab ich mich wohl geirrt :) So ist es natürlich um so besser. Danke euch allen :)