so, ich hab mich jetzt (in Zusammenarbeit mit Zack) dazu entschlossen mal einen allgemeinen Programmierthread zu eröffnen.
Im Prinzip, wie im PHP-Thread (der jetzt hier mit einfließt), d.h alle möglichen Probleme, Ideen etc. Ich denke das sollte reichen als Ersatz für das abgelehnte Programmiererforum.
In punkto Sprachen ist alles erlaubt von ASM bis C#.
Ach, und bitte keine Einzeiler/Sinnlosposts like "Cooler Thread. Ich kann Visual Basic. mfg blabla"
na dann
happy posting
so far...
Edit:
Sollte ein Problem programmiersprachen-spezifisch sein, gebt bitte die Sprache mit an. Nicht alle wollen sich das jeweils aus der Syntax herreimen.
also folgendes Problem, dieses hübsche delphi-Programm (zu allen mögliche Vektorrechungen) :
(alle Variablen außer dem counter sind als real deklariert)
(initialisierungen und anderer schnullipups sind aus Platzgründen mal weggelassen worden ^^ )
erzeugt bei ungefähr gleich großen Vektoren einen Gleitkomma-Error. Kennt jemand eine Möglichkeit diesen zu verhindern?
nunja...
Vom Fehler her würde ich tippen, dass der Datentypbereich gesprengt wird. (in dem Falle der Real) Die andere (unwahrscheinliche, aber nicht auszuschließende) Möglichkeit wäre ein Prozessorfehler, wie damals beim P III, der auch ein Problem mit Fließkommaberechnung hatte.
Vielleicht solltest du das Programm einfach mal in WinDisASM32 laden und den Sprungpunkt zurückverfolgen...
den Datenbereich der Variable hat es wirklich gesprengt. wenn ich alle variablen auf extended anstatt auf real deklariere, verkraftet er immerhin ähnliche Vektoren im unteren Zahlenbereich und das ist doch schon mal was
aber es könnte noch besser sein ...
btw. wo bekomm ich WinDisASM32 her ?
also zieh es am besten HIER. Einen größeren Datentyp, als extended, im reelen Bereich weiss ich jedoch auch nicht.
Bei weiteren Problemen schreib einfach mal ne PN.
@Minoko Mitsayu
tjo, dein "Programm" wird nicht funktionieren, da du die Header-Include`s vergessen hat. (Von der Variablendeklaration mal ganz abgesehen) :P
Hab ich das oben noch nicht geschrieben? Oder kennst du den PHP-Thread nicht?
Aber um deine Frage zu beantworten:
Hier können dann einfach (wie bei Ahasver) gewisse Probleme gelöst und Ideen ausgetauscht werden.(Zumindest programmiertechnische Probleme ^.~)
btw. wolltest du dich nicht bei den IT-News um Softwarenews kümmern???
ich hab mal ein bissche Fehlersuche betrieben, indem in nacheinander stückchenweise alles mal als kommentar gemacht hab. und der Fehler scheint (zu 99,9%) aus der Ecke Winkelberechnug zu kommen. Also aus diesem codestück hier : -Edit-
mkay habs selba gelöst
das man mit "round" so einfach runden kann hät mir aber auch mal einer von euch sagen können (so hats die delphi hilfe) . Das Problem war das er den arccos von 1 nicht bildet will (was ja eigentlich auch logisch ist, denn dieser ist nicht deffiniert)
@malle
§thx for the help and the nice proggi.
-Edit2-
man hier merkt aber auch niemand was, das eine Klammerkommentar war totaler stuss, aber eigentlich isses auch toll das es keiner gemerkt hat, so konnt ich es löschen bevor mich jemand korrigiert
So ich bin’s mal wieder (mit Doppelposterlaubnis ).
Diesmal drängt die Lösung des Problems nicht so, denn ich habe das Programm auf andere bessere Weise gelöst und es geht sozusagen nur darum mich zu bilden .
Diesmal ist es ein Programm, welches ein beim Windowsstart daran erinnert, das Person ‚xy’ übermorgen, morgen oder heute Geburtstag hat. Die alte und hier relevante Version verfügt dazu über 12Textdateien (Januar.txt, Februar.txt, …). Die alle mit folgendem Code eingelesen werden :
Nun wird bei dem entsprechendem Monat (die zeit wurde natürlich eingelesen und decodiert) nachgeschaut ob der aktuelle folgende Tag oder der dem folgendem Tag folgendem Tag auf X (den darauf sind alle Tage initialisiert) stehen oder nicht. Der Code dazu sieht folgendermaßen aus:
Nun wird alles noch hochgerückt, damit nicht immer das Fenster so groß ist als ob heute, morgen und übermorgen noch jemand geb. hat, allerdings ist das, und der restliche Schmarn jetzt mal ziemlich unwichtig.
Denn das Problem WAR, dass wenn ich alle Textdateien mit diesem X von Zeile 1 bis 31 ausgestattet hatte (von den Gebs. Mal abgesehen) folgender Fehler kam :
Zugriffsverletzung bei Adresse 0040380D in Modul ‚Gebrem.exe’. Lesen von Adresse FFFFFFF7.
Der mir soviel : ……. sagt, meine Frage ist also was hat dieser Fehler zu bedeuten. Meine Vermutungen sind, das es entweder zu viele Daten waren die er einlesen musste, oder das er nicht so viele Zugriffe auf einmal machen kann.
Bdw. Die fast fertige Version liest nur die Dateien aus die sie braucht. Die Zeilen der Dateien sind nicht mehr auf x sonder auf nichts ( also: ’’) initialisiert und das Proggi verfügt außerdem über einen Monatssprung (falls das bei der Interpretation des Fehlers helfen sollte).
- also einen Kopier/Brennschutz kannst du mit Delphie selbst nicht erzeugen (zumindest soweit ich weis, aber ich bin auch kein Profi, insofern kann das auch falsch sein)
- was du hingegen machen kannst ist eine kleine Abfrage integrieren, z.B. in Form einer kleinen Form mit Edit und Button, gibt der Benutzer den Falschen Text ein kommt er halt nicht ins Hauptprogramm.
> wenn die Abfrage nicht jedes mal kommen soll kannst du natürlich extern (Datei/Registrie) abspeichern, das der Key eingegeben wurde. (Allerdings solltest du nicht vergessen das auch der Key weitergegeben werden kann)
- bdw., um was für ein Proggi handelt es sich denn *neugier*
die können den key halt einfach weitergeben
und dann bringts das auch alles wieder nich -.-
also zum progamm ^^
da es ja nu zum ende des schuljahrs
hingeht durften wir in Informatik
ein Programm unserer Wahl schreiben ^^
natürlich dachte da jeder sofort an ein spiel ^^
ich hab mich für ein memory entschieden...
auf jeden fall hab ich dann aber so verdammt
viel arbeit in das teil gesteckt, dass es
ziemlich gut geworden ist...
hab sogar noch CD Cover und ein CD Label
entworfen ^^
naja, und so isses eben ein ziemlich großes und
(meiner meinung nach auch) gutes Projekt geworden
hmm, wenn ich webspace hätte, würd ich ja ein paar
screens online stellen ^^
aber das is leider nich der fall...
aber ich frag mal nen kumpel, ob er mir
die bilder reinstellt
(kann also noch ein bissel dauern ^^)
kk also bis dann & THX
--
WISSEN IST MACHT - ICH WEIß NIX - MACHT NIX !!! §doof
ich hab mir (mit meinem minimalen Delphi-Wissen) mal eine CD-Key Lösung überlegt:
Ausgehend von einem Ausgangswert (Name des Nutzers, Zufallswert etc.) wird der Schlüssel berechnet. Ziel bei dieser Berechnung ist natürlich, dass ihre Grundlage nicht so einfach durchschaut wird.
Im folgenden wird ein einfacher CD-Key in der Form xxxx-xxxx-xxxx erstellt. Im Grundwert, "Seed", dürfen nur Zahlen stehen. Weitere Möglichkeiten um den Schlüssel zu generieren bieten z.B. Rechenoperationen, XOR oder Vertauschoperationen.
Ich gehe mal davon aus, dass sich der CD-Key in einer TEdit-Komponente namens "Eingabe" befindet.
Ich hoffe, dass ich dir einen Denkanstoss geben konnte.
wenn man dann doch einen richtigen code hat,
kann man den jedes mal verwenden...
d.h. sobald einer das orginal hat, kann
der die cd brennen und den key weitergeben...
oder etwa nich ???
--
WISSEN IST MACHT - ICH WEIß NIX - MACHT NIX !!! §doof
joah, das Problem ist natürlich da. Aber das lässt sich auch nicht ändern, außer du lässt dein kleines Programm im CD-Presswerk herstellen.
Das ist dann wohl doch etwas übertrieben...
Probier erstmal die "normale" Lösung aus, das sollte ersteinmal reichen. Solang du nicht den Sourcecode beilegst, ist die Raubkopierrate nicht so hoch. (denk ich mal ~~)
jaja unser malakai ist einer von der umständlichen Sorte. Wenn du es ganz einfach haben willst, dann mach vier editfenster, deren eingabe du dann zusammenschmeiß ( eingabe := edit1.text + edit2.text + edit3.text + edit4.text; ) und dann mit einem constanten key vergleichst (if eingabe=key then ...).willst du es natürlich elegant haben und den key abhängig vom benutzernamen machen solltest du dich mit malakais code auseinandersetzten. Allerdings würd ich des anders machen ich würde die eingabe zurück in einen asci verwandeln ( dazu gibts glaub ich irgendwo n tollen "strto"dingsbums befehl ) und dann da irgendwie dranrumschusstern bis es die richtige länge hat.
@ all
so ein stückchen weiter im programm und siehe da er ist wieder da mein lieblingsfehler :
Zugriffsverletzung bei Adresse 0040380D in Modul ‚Gebrem.exe’. Lesen von Adresse FFFFFFF7.
könnt mir vielleicht mal jemand sagen was des genau bedeutet, des es ist ganz nett zu wissen was für einen Fehler man hat, um denselben zu beseitigen ( und diese regel gilt nicht nur beim programmieren )
dann is der programmier code eben einfach nur
verarschung...also hat nich wirklich nen
schützenden sinn, da er ja einfach weiter-
gegeben werden kann... auch egal ^^
thx für eure hilfe leutz
--
WISSEN IST MACHT - ICH WEIß NIX - MACHT NIX !!! §doof
for i:=1 to felder do
for j := 1 to felder do begin
if (i = ((felder div 2) + 1)) and (j = ((felder div 2) + 1)) then
else begin
try
bilder[i,j].destroy;
except
end;
if bilder[i,j] <> nil then
bilder[i,j]:= nil;
end;
end;
also... bilder is ein array of tImage, was komplett
entfernt werden soll(damits dann später wieder
neu erstellt werden kann)...
in fast allen fällen funktionierts, aber ab und zu
stürzt das programm bei dieser procedure aus unerklärlichen
Günden ab -.-
HILFE
--
WISSEN IST MACHT - ICH WEIß NIX - MACHT NIX !!! §doof
also wenn eben dieser fall mit i=((felder div 2) + 1)
und j=((felder div 2) + 1) eintrifft,
dann soll er eben einfach nix machen ^^
und wenn nich dann halt das was bei else steht ^^
--
WISSEN IST MACHT - ICH WEIß NIX - MACHT NIX !!! §doof