Entwickler-Ecke
Ankündigungen - Adventsgewinnspiel 2008
Narses - Mo 24.11.08 19:01
Titel: Adventsgewinnspiel 2008
Ein freundliches "Ho Ho Ho" vom Ecken-Sofa!
Nach dem Blog-Eintrag von Gausi sicher keine Überraschung mehr, auch dieses Jahr wird es wieder ein Adventsgewinnspiel für euch Mitglieder der Entwickler-Ecke geben. Ich denke, es ist nicht übertrieben zu sagen, dass wir hier als Community mittlerweile eine gute Tradition ins Leben gerufen haben - unterm Strich war die Resonanz aus den letzten Jahren positiv. Wir hoffen auch in diesem Jahr, dass wir euer Fest mit den attraktiven Preisen unserer Sponsoren erneut ein klein wenig schöner machen können. Was es genau zu gewinnen gibt, wird aber erst wieder beim Start verraten. :angel:
Um an dem Adventsgewinnspiel teilnehmen zu können, müsst Ihr einen Account bei uns ([url]
http://www.entwickler-ecke.de[/url], [url]
http://www.delphi-forum.de[/url], [url]
http://www.c-sharp-forum.de[/url], [url]
http://www.delphi-library.de[/url], [url]
http://www.c-sharp-library.de[/url]) haben. Der Account muss vor dem 01.12.2008 erstellt worden sein. Von der Teilnahme ausgeschlossen ist das aktuelle EE-Team (Admins, Co-Admins, Moderatoren und Chefentwickler).
Auch das hat wohl schon Tradition, das Adventsgewinnspiel wird nämlich wieder etwas anders sein, als im letzten Jahr. ;) Es gibt dieses Jahr nur noch zwei Stufen im Gewinnspiel: Die Knobelaufgaben und die Paranüsse. Also, keine Panik, es gibt
kein Suchspiel... :lol:
Die Knobelaufgaben
Wir werden dieses Jahr vier Aufgaben stellen, die jeweils in einem gewissen Zeitfenster bearbeitet werden müssen.
- 1. Aufgabe: 01.12. bis 07.12.
- 2. Aufgabe: 08.12. bis 14.12.
- 3. Aufgabe: 15.12. bis 21.12.
- 4. Aufgabe: 22.12. bis 24.12.
Beginn ist jeweils um 0:00 Uhr, das Ende um 23:59 Uhr. Die Aufgaben sind nicht alle gleich kompliziert, so dass sich die letzte Aufgabe auch in der kürzeren Zeit lösen lässt. Zu einigen dieser Aufgaben wird es wieder ein paar Lösungshinweise geben.
Die Paranüsse
Um auch die Profis zu fordern, gibt es wieder zusätzlich zu den mehr oder weniger einfachen regulären Rätseln drei besondere Nüsse zu knacken. Diese werden alle drei zu Beginn des Gewinnspiels veröffentlicht und können bis zum 24.12., 23:59 Uhr bearbeitet und abgegeben werden. Hinweise zur Lösung dieser Aufgaben wird es - wenn überhaupt - nur sehr spärlich geben.
Auswertung und Preise
Nach Abgabeschluss für die jeweilige Aufgabe gibt es Gelegenheit für Anmerkungen zu den Lösungen. Die Auslosung der Gewinner findet dann einen Tag später statt. Jeder Teilnehmer erhält eine private Nachricht mit der Information, ob er gewonnen oder verloren hat.
Die Preise der Sponsoren werden auf die vier regulären Fragen verteilt. Dieses Jahr ist also die Chance, einen Preis zu ergattern, nochmal etwas höher!
Für´s Knacken der Paranüsse wird es wieder den begehrten Nussknacker-Award geben, der anzeigt, ob man eine, zwei oder alle drei Nüsse geknackt hat. Dieser Preis wird nicht verlost. Jeder, der eine oder mehrere Aufgaben löst, bekommt den Preis. Der Titel ist nur temporär und wird zu Halloween 2009 wieder entfernt, bleibt aber im Benutzerprofil erhalten. Ihr habt also die Möglichkeit, den Nussknacker-Award zu sammeln! :zustimm: Ausnahmsweise gibt es dieses Jahr zusätzlich für jede Paranuss noch einen Buchpreis, der unter allen richtigen Lösungen jeweils einer Paranuss verlost wird (Konkret: 3 Paranüsse, 3 Bücher, 3 Buch-Gewinner).
Wir wünschen allen Teilnehmern viel Spaß bei der Lösung der Aufgaben. Denn eines ist klar: Der Weihnachtsmann wird dieses Jahr erneut dermaßen viele Probleme haben, dass Weihnachten eigentlich schon abgesagt ist, wenn ihr ihm nicht ordentlich helft. :D
Jann1k - Mo 24.11.08 19:06
Ich finde solche Insider-Witze total doof, wenn sie öffentlich gemacht werden und ich sie nicht versteh :(
Gausi - Mo 24.11.08 19:07
Psst. Das ist kein Insider-Witz. ;-)
Marc. - Mo 24.11.08 19:09
Jann1k hat folgendes geschrieben : |
Ich finde solche Insider-Witze total doof, wenn sie öffentlich gemacht werden und ich sie nicht versteh :( |
Das ist kein Insider-Witz, sondern Tradition.
Edit: Tipp entfernt.
Jann1k - Mo 24.11.08 19:09
Alles was ich nicht versteh, muss per definition ein Insider sein. Am Ende sind das ier brandeie Infos zum Adventsgewinnspiel oder eine Aufwärmaufgabe...
€: Gut da war einer schneller, muss man das selbst lösen oder geschieht das noch oder beides?
€2: @ Marc: zu Spät :P
GericasS - Mo 24.11.08 19:10
Ich wollte grad schon auf Melden klicken :mrgreen:
Marc. - Mo 24.11.08 19:12
Jann1k hat folgendes geschrieben : |
€2: @ Marc: zu Spät :P |
Ich hab doch nichts gesagt. :mrgreen: Ich mach mich dann mal ans Übersetzen.
GericasS - Mo 24.11.08 19:14
Gibt es da iwelche Tutorials für totale Noobs ( in diesem Bereich ) um das ansatzweise zu verstehen ? :wink:
EDIT : hat sich erübrigt :wink:
Wolle92 - Mo 24.11.08 19:35
für mich nicht ;)
kann mir zwar schon erschließen, was VV, VF, VF, XV und Gv sind, finde aber kein System darin...
jakobwenzel - Mo 24.11.08 19:58
AVDfFdAv GaAfDdöFdAv GGAvFxGaAfDdDxüGaGaAvDxGfFdDa AgDfAvGaAvGa FAAaDx, DdAaGd AgDfAv AaGfAfDd AvDfFdAvFd FDAaFaAvFd?
DFAfDd AxFxAvGf FaDfAfDd DgAvAgAvFdAxAaDxDxGa GaAfDdFfFd AaGfAxGa DAAvGvDfFdFdGaFgDfAvDx, FdAaAfDdAgAvFa DfAfDd DxAvGdVdGdAvGa FAAaDx AaGfAfDd DaAvGaAvDdAvFd DdAaAd, AgAaGaGa AgDfAv FGFxAvDfGaAv GvDfFxDvDxDfAfDd AvGxDfGaGdDfAvFxAvFd :mrgreen:
AXüFx FdäAfDdGaGdAvGa DGAaDdFx AdDfGdGdAv AvDfFdAv GGAvFxGaAfDdDxüGaGaAvDxGfFdDa, GvFf GaDfAfDd AgAvFx AFFfAgAv DgAv FdAaAfDd GgFfFxDdAvFxDaAvDdAvFdAgAvFa ADGfAfDdGaGdAaAdAvFd äFdAgAvFxGd :D
Tilman - Mo 24.11.08 20:10
gagffgavfx, dfafdd axfxavgf fadfafdd gaafddfffd :) gdffdxdxavga gavagagdavfa üadfxdfdaavfdga, dxavdfagavfx fagfgaga dfafdd fadfafdd vdgffdäafddgagd aaadavfx aagfax dvdxavdffdadgfafddgagdaaadavfd adavgaafddfxäfddvavfd ^^
Zitat: |
jakobwenzelaxüfx fdäafddgagdavga dgaaddfx addfgdgdav avdffdav ggavfxgaafdddxügagaavdxgffdda, gvff gadfafdd agavfx afffagav dgav fdaaafdd ggfffxddavfxdaavddavfdagavfa adgfafddgagdaaadavfd äfdagavfxgd : |
aggf gaaaagdfgagd ^^
Marc. - Mo 24.11.08 20:11
ddff ddff ddff! gaafddöfdav ggavfxgaafdddxügagaavdxgffdda, faaaafddgd dxgfgagd aagfax faavddfx.
dfafdd axfxavgfav fadfafdd dgavagavfdaxaadxdxga gaafddfffd gaavddfx aagfax agaaga gvavdfddfdaaafddgdgadaavgvdffdfdgafgdfavdx, aagfafdd gvavfdfd fadffx dxavdfagavfx fddfafddgd aadxdxvdgf ggdfavdx vdavdfgd agaaaxgfavfx gfavadfxdfda addxavdfadavfd gvdffxag.
fddfafddgd fdgffx gvavdfddaaafddgdavfd, gafffdagavfxfd aagfafdd agaaga aaaddf gagdavddgd adavdf fadffx ggfffx agavfx gdgfavfx. :mrgreen:
avagdfgd: agaa fagfgaga dfafdd fadfafdd gddfdxfaaafd aafdgaafdddxdfavgagaavfd. :P
gvdffxag fdffafdd dvfffxfxdfdadfavfxgd.
Regan - Mo 24.11.08 20:26
GVAaFxGfFa FdFfAfDd DvFfFxFxDfDaDfAvFxGd? AGAaGa DfGaGd AgFfAfDd AvDfFdAxAaAfDd AgAa FdFfAfDd AvDfFdAv GFFgFgAvFxAFAaGaAv() DdDfFdGdAvFdAgFxAaFdVdGfGaAvGdVdAvFd.
GVAvFx DfGaGd AvDfDaAvFdGdDxDfAfDd AaGfAx AgDfAv DFAgAvAv DaAvDvFfFaFaAvFd? AXDfFdAgAv DfAfDd GaAvDdFx DfFdGdAvFxAvGaGaAaFdGd GfFdAg AdDfFd AvFxGaGd AgAaFxAaGfAxDaAvDvFfFaFaAvFd, AaDxGa DfAfDd AdAvDf [url]GvGvGv.GvDfDvDfFgAvAgDfAa.AgAv[/url] FdAaAfDd AAAGAXDAGGGX GGAvFxGaAfDdDxüGaGaAvDxGfFdDa DaAvGaGfAfDdGd DdAaAdAv.
GTA-Place - Mo 24.11.08 20:52
Dachte auch schon: Spammer am Werk. Na da muss ich jetzt mal suchen gehen...
Boldar - Mo 24.11.08 21:00
Wie geht man sowas an?
Marc. - Mo 24.11.08 21:01
Boldar hat folgendes geschrieben : |
Wie geht man sowas an? |
Blattpapier + Stift, aufschreiben was dir bekannt ist und daraus versuchen was logisches zu formen. Der Tipp sollte mehr als reichen. :P
Jann1k - Mo 24.11.08 21:08
zum vergleich kann dieser post auch helfen
*snip*
Moderiert von Narses: Also darauf darf man auch ruhig selbst kommen. ;)
€: Okay, Code endlich geknackt jetzt gehts ans übersetzen.
Xentar - Mo 24.11.08 21:24
Argh, verdammt..
Normalerweise würde ich sowas ja ignorieren.. aber es kommt von einem Mod, und steht im Bereich "Ankündigungen" :(
Ist Ag und AG das selbe? Auch, wenn ich mir die Antwort schon denken kann (nein).
Edit: Ok, habe eine Theorie, wonach das doch dasselbe sein könnte.
Naa toll, nun hab ich wenigstens eine Beschäftigung, wenn schon keine Simpsons kommen :D
Wolle92 - Mo 24.11.08 21:35
FDAvDfFd, AADa GfFdAg AADA GaDfFdAg FdGfFx AxAaGaGd AgAaGa DaDxAvDfAfDdAv...
@Narses: Das hat aber gedauert...
BenBE - Mo 24.11.08 22:00
FDAGgGdGdAGg DFADaAGgAGg FaDfGd ADaDfAGgGaAGgFGx GGAGgFGxGaAAGxDdDGxüGaGaDGxGfFdDa ;-) DDAaAADa AGgGdGvAaGa DaAGgAADaFGxAaGfAAGxDdGd, GfFa ADaDfAGg VdGf AGGFdGdGaAAGxDdDGxüGaGaAGgDGxFd, AaAADaAGgFGx DdAGgVa, AAGxFfFfDGx DaAGgFaAaAAGxDdGd FaDfGd FdGfFGx XF VDAGgDfAAGxDdAGgFd VXXF VDAGgDfAAGxDdAGgFd VdGf AGgFdAAGxFfADaDfAGgFGxAGgFd.
FinnO - Mo 24.11.08 22:03
also BenBe... bei mir siehts anders aus ^^
Timosch - Mo 24.11.08 22:05
FDAa, AgAa AdDfFd DfAfDd DgAA FaAaDx DaAvGaFgAaFdFdGd...
FinnO - Mo 24.11.08 22:06
ich auch^^
Tilo - Mo 24.11.08 22:13
So ein Mist,
Schon fertig mit dem Decodierer.
15 min GrobCoden, 15 FeinCode (während Informationsmanagement Vorlesung)
und nun im Zimmer noch 15 bis 30 zum Füllen der Codetabelle.
War troztdem reizvoll.
Hab jetzt noch abendbrot, dann noch etwas an der Seminararbeit schreiben.
Hoffentlich kann ich an den Rätsel werkeln.
Chryzler - Mo 24.11.08 22:18
AAGfAfDd GgFfFd FaDfFx FdAaGdGfAvFxDxDfAfDd AvDfFd DdAvFxVdDxDfAfDdAvGa AGAaFdDvAvGaAfDdFfAvFd, AgAaGaGa DfDdFx AvGfAfDd DgAvAgAvGa DGAaDdFx AgDfAv FAGfAvDdAv FaAaAfDdGd, GfFdGa GVAvDfDdFdAaAfDdGdAvFd GaFf GaAfDdFfAvFd GvDfAv FaFfAvDaDxDfAfDd VdGf FaAaAfDdAvFd. :)
GVDfAv AgDfAv GGAvFxGaAfDdDxGfAvGaGaAvDxGfFdDa DaAvFdAaGf AxGfFdDvGdDfFfFdDfAvFxGd GvAvDf� DfAfDd DaAaFx FdDfAfDdGd, DfAfDd DdAaAd AvDfFdAxAaAfDd AaDxDxAv GAGfAdGaGdDfGdGfGdDfFfFdAvFd AgGfFxAfDd AvDfFd AdDfGaGaAfDdAvFd FDAaAfDdAgAvFdDvAvFd DdAvFxAaGfGaAdAvDvFfFaFaAvFd.
Boldar - Mo 24.11.08 22:18
kann mal jemand ein tipp geben, wie man sowas angeht?
BenBE - Mo 24.11.08 22:21
FFFfFfFgGa, AXAvDdDxAvFx DfFa AVFdAfFxVaFgGdAvFx ;-) DGAvGdVdGd AaAdAvFx: FDAvGdGdAv DFAgAvAv; GaAaß AvGdGvAa FdAv DdAaDxAdAv GAGdGfFdAgAv AgFxAaFd, FaDfFx AgDfAv GDAaAdAvDxDxAv AxüFx AgDfAv AFFfAgDfAvFxGfFdDa VdGf GaAfDdFxAvDfAdAvFd. DFGaGd FaAaDx FdAv FdAvGdGdAv DFAgAvAv; DfAfDd GväFx AaAdAvFx AaGfAfDd AxüFx AgAvFd GGFfFxGaAfDdDxAaDa VdGfFx FDGfGdVdGfFdDa AvDfFdAvGa AFADAF- GaGdAaGdGd AVAFAD-GGAvFxAxAaDdFxAvFdGa AxüFx AgAaGa FdäAfDdGaGdAv DGAaDdFx ;-) AVAFAD DfGaGd AvDfFdAxAaAfDd FdGfFx DxAaFdDaGvAvDfDxDfDa!
Boldar - Mo 24.11.08 22:22
was auch immer da steht, das wird wohl kaum helfen...
Yogu - Mo 24.11.08 22:26
DDAaDxDxFf DFFdGaDfAgAvFx :mrgreen:
DFAfDd DdAaAdAv AgDfAv DxAvGdVdGdAv DdAaDxAdAv GAGdGfFdAgAv FxDfAfDdGdDfDa DaAvFdFfGaGaAvFd. VDGfAvFxGaGd GvGfGaGaGdAv DfAfDd üAdAvFxDdAaGfFgGd FdDfAfDdGd, GvDfAv DfAfDd AaFd AgDfAv AFFfAgDfAvFxGfFdDa DaAvDdAvFd GaFfDxDx, AaAdAvFx AgDfAv DXDfFdDvGa DdAaAdAvFd FaDfFx DaAvDdFfDxAxAvFd ;) GFFdAg FaAaDx AvDdFxDxDfAfDd: AGDfAv DAFxFfß- GfFdAg DVDxAvDfFdGaAfDdFxAvDfAdGfFdDa DfGaGd DgAa AaGfAfDd FdDfAfDdGd AgAaGa FGFxFfAdDxAvFa, FfAgAvFx?
DGAvAgAvFdAxAaDxDxGa DdAaAdAv DfAfDd GaFfAvAdAvFd FaAvDfFdAvFd AvFxGaGdAvFd AGAv- GfFdAg AVFdAfFfAgAvFx DaAvGaAfDdFxDfAvAdAvFd :angel:
DFAfDd AxFxAvGfAv FaDfAfDd GaAfDdFfFd FxDfAvGaDfDa AaGfAx AGAvVdAvFaAdAvFx! :D
DAFxüßAv,
VAFfDaGf
FGGA: GVAaFdFd GvDfFxAg AgAaGa DdDfAvFx AvDfDaAvFdGdDxDfAfDd AaGfAxDaAvDxöGaGd? DFGaGd DgAa GaAfDdDxDfAvßDxDfAfDd AvDfFdAv GvDfAfDdGdDfDaAv AAFdDvüFdAgDfDaGfFdDa, AgDfAv AaDxDxAv AvFxAxAaDdFxAvFd GaFfDxDxGdAvFd, FfAgAvFx? :)
Edit: Danke, EE-Team :D
Boldar - Mo 24.11.08 22:28
ich glaub ich habs... aber dann wäres ja zu einfach...
Also das
heisst wahrscheinlich
Vorallem wo umlaute wahrscheinlich nicht mitverschlüsselt werden.
BenBE - Mo 24.11.08 22:37
@Yogu:
AGDfAv AAFdDvüFdAgDfDaGfFdDa AvFxAxFfDxDaGd VdGf DfDdFxAvFx VDAvDfGd(GdFa) :mrgreen: GVAvFxAgAvFd GaAfDdFfFd AaDxDxAv FdFfAfDd AgDfAv DAAvDxAvDaAvFdDdAvDfGd AdAvDvFfFaFaAvFd, AgAvFd GDAvGxGd FfDdFdAv FxGfFaFxäGdGaAvDxFd VdGf FaüGaGaAvFd, DxAvGaAvFd VdGf DvöFdFdAvFd. ;-)
Boldar - Mo 24.11.08 22:39
ach mist, jetzt muss ich doch noch ein progg für schreiben, ich dachte es geht mnit dem editor...
Wolle92 - Mo 24.11.08 22:46
Analog ist auch manchmal möglich...
Hab hier auch nen Blatt vor mir liegen...
Sinspin - Mo 24.11.08 22:49
GAGfFgAvFx!
AVDfDaAvFdGdDxDfAfDd AvDfFd AdDfGaGaAfDdAvFd VdGf AvDfFdAxAaAfDd AgAvFx AFFfAgAv, AaAdAvFx AvGa GaFfDxDxAvFd DfDdFd DgAa AaDxDxAv DfFxDaAvFdAgGvAaFdFd GaAvDxAdAvFx DaAvDvFdAaAfDvGd AdAvDvFfFaFaAvFd FfDdFdAv GgFfFd GaFf AvDfFdAvFa üAdAvFxAvDfAxFxDfDaAvFd DVAaFdAgDfAgAaGdAvFd GfFa AgAvFd GAFgAaGaGa DaAvAdFxAaAfDdGd VdGf GvAvFxAgAvFd!
GAFf GvDfAv AvGa GaDfAfDd FaFfFaAvFdGdAaFd AaFdDxäGaGaGd GvAvFxAgAv DfAfDd VdGvAaFx GvFfDdDx DvAaGfFa VDAvDfGd AxüFx AgDfAv FXäGdGaAvDxAfDdAvFd AxDfFdAgAvFd. GDFxFfGdVdAgAvFa, AdAvGaGdAvFd AGAaFdDv AaFd AgDfAv AaFxFaAvFd GGAvFxAaFdGaGdAaDxGdAvFx, AgDfAv GvDfAv DfFaFaAvFx FdGfFx VdGfDaGfAfDvAvFd AgüFxAxAvFd ;-) GvAvFdFd AaFdAgAvFxAv AXAvGdGdAv FGFxAvDfGaAv AdAvDvFfFaFaAvFd, GfFdAg AaFd AgDfAv GAFgAvFdAgAvFx AxüFx AgDfAv GvDfAv DfFaFaAvFx GdFfDxDxAvFd FGFxAvDfGaAv!
Yogu - Mo 24.11.08 22:50
Boldar hat folgendes geschrieben : |
ich glaub ich habs... aber dann wäres ja zu einfach...
Also das
heisst wahrscheinlich
Vorallem wo umlaute wahrscheinlich nicht mitverschlüsselt werden. |
Ach mist, ich hätte das doch weglassen sollen. :mrgreen: Ich denke,
Narses hat absichtlich kein Gruss hinterlassen. :? :wink:
Tilo - Mo 24.11.08 22:54
@ Boldar
Guckt Dir mal den ersten Post an, insbesondere die Stellen mit den Hyperlinks.
Da habe ich angesetz.
Xentar - Mo 24.11.08 22:58
So, habs nun auch endlich fertig.
Nun hab ich aber keine Lust mehr, noch nen Encoder zu bauen.. darum geh ich erstmal TV gucken.
@Wolle: Danke für den Tipp, das weiß ich nun auch *g*
elundril - Di 25.11.08 00:22
omg, das geht mir immer am meisten am nerv.^^ aber ich hab so ne ahnung was das is, endlich mal.^^
Martok - Di 25.11.08 03:50
DDAaAfDd DgAa... AvFdAgDxDfAfDd ;)
AGAaGa GAVaGaGdAvFa DdDfFdGdAvFx AgAvFa DaAaFdVdAvFd GvüFxAgAv FaDfAfDd DfFdGdAvFxAvGaGaDfAvFxAvFd... AvDfFdAv AVFxGaAvGdVdGfFdDaGaGdAaAdAvDxDxAv DdAaAdAvFd GvDfFx DaDxAaGfAdAv DfAfDd FaDfGdGdDxAvFxGvAvDfDxAv AaDxDxAv.
DFFxDaAvFdAgGvDfAv DvAvFdFdAv DfAfDd AgAaGa AvFdGdGaGdAvDdAvFdAgAv FAGfGaGdAvFx. AXAaDxDxAvFdAgAvFx DAFxFfGaAfDdAvFd AaFdVaFfFdAv?
AfGf
FAAaFxGdFfDv
Tilman - Di 25.11.08 04:06
DFGaGd AvDfDaAvFdGdDxDfAfDd DaAaFdVd AvDfFdAxAaAfDd... GvAvFdFd AgGf AgDfFx AgAvDfFdAv GDAaAdAvDxDxAv AaFdGaAfDdAaGfGaGd GvDfFxGaGd AgGf AxAvGaGdGaGdAvDxDxAvFd AgAaGaGa AgDfAv DfFxDaAvFdAgGvDfAv "DaAvFfFxAgFdAvGd" DfGaGd ^^
FADfFx FgAvFxGaöFdDxDfAfDd DdAaGd AdAvFxAvDfGdGa AgDfAv ÜAdAvFxGaAfDdFxDfAxGd DaAvFdüDaGd, AgAaFxAaGfGa DvFfFdFdGdAv DfAfDd AgAaGa DaAvGaAaFaGdAv GAVaGaGdAvFa AaAdDxAvDfGdAvFd :-)
ene - Di 25.11.08 07:47
Mpmmffmpp Mmpmppfmmfmpmppppp mpmmpppff Mmpmppfmmfmpmppppp mpmmpppff Mmpmppfmmfmpmppppp...fppmffmppmpmmpppff mppmffpppppmmmmpmf
Martok - Di 25.11.08 08:49
Tilman hat folgendes geschrieben : |
DFGaGd AvDfDaAvFdGdDxDfAfDd DaAaFdVd AvDfFdAxAaAfDd... GvAvFdFd AgGf AgDfFx AgAvDfFdAv GDAaAdAvDxDxAv AaFdGaAfDdAaGfGaGd GvDfFxGaGd AgGf AxAvGaGdGaGdAvDxDxAvFd AgAaGaGa AgDfAv DfFxDaAvFdAgGvDfAv "DaAvFfFxAgFdAvGd" DfGaGd ^^ |
DGAa, GaAfDdFfFd DvDxAaFx. AAAdAvFx GvDfAv DvFfFaFaGd AgDfAvGaAv FFFxAgFdGfFdDa VdGfGaGdAaFdAgAv? FFAgAvFx DdAaGd AvDfFdAxAaAfDd GvAvFx DaAvGaAaDaGd "AXGfAvDxDxAvFd GvDfFx AgDfAv FaAaDx GAVaFaFaAvGdFxDfGaAfDd AaGfGa"?
Tilman hat folgendes geschrieben : |
FADfFx FgAvFxGaöFdDxDfAfDd DdAaGd AdAvFxAvDfGdGa AgDfAv ÜAdAvFxGaAfDdFxDfAxGd DaAvFdüDaGd, AgAaFxAaGfGa DvFfFdFdGdAv DfAfDd AgAaGa DaAvGaAaFaGdAv GAVaGaGdAvFa AaAdDxAvDfGdAvFd :-) |
AGAaGa FaAvDfFdGdAv DfAfDd DfFd AgAvFx GAAD FaDfGd GaDfFdFdDxFfGa GvAvDfGdAvFx DaAvFaAaAfDdGd... DfAfDd DdAaAd DfFaFaAvFx GaAfDdöFd DaAvVdäDdDxGd, FfDdFdAv FaAaDx AaGfAxGa DaFxFfGaGaAv DAAaFdVdAv VdGf DaGfAfDvAvFd :roll:
@
ene: red doch kein wirres Zeug :mrgreen:
MH - Di 25.11.08 09:34
FAFfDfFd AaFd AaDxDxAv
AGAaGa GvAaFx FaAaDx GvAaGa DfFdGdAvFxAvGaGaAaFdGdAvGa VdGfFa VDAvDfGdGgAvFxGdFxAvDfAd.
AAAdAvFx FdFfAfDd FaAaDx FdAv AXFxAaDaAv VdGfFa DAAvGvDfFdFdGaFgDfAvDx. FAGfGaGa FaAaFd GaDfAfDd AgAaAxGfAvFx AaFdFaAvDxAgAvFd? GVAvFdFd DgAa, GvAaFdFd GfFdAg GvDfAv?
AGAaFdFd AvFxGaGdFaAaDx
FAAaFxAfFf
Sirke - Di 25.11.08 09:51
DDAaDxDxFf VdGfGaAaFaFaAvFd,
GAAvDdFx GaAfDdöFdAv DVFdFfAdAvDxAaGfAxDaAaAdAv DdAaAdGd DfDdFx AvGfAfDd AvDfFdAxAaDxDxAvFd DxAaGaGaAvFd =) DXAvDfAgAvFx GvAaFx AgAaGa DaAaFdVdAv FdDfAfDdGd GaFf GaAfDdGvAvFx, GaFfAgAaGaGa FdAaAfDd VVVF FADfFdGfGdAvFd DVFdFfAdAvDxFd AaGfAfDd GaAfDdFfFd GvDfAvAgAvFx GAAfDdDxGfGaGa GvAaFx. AXGfAvFx FdAaAvAfDdGaGdAvGa DGAaDdFx AaDxGaFf FaAaDx AvGdGvAaGa GaAfDdGvDfAvFxDfDaAvFxAvGa AaGfGaGaGfAfDdAvFd ;-)
GVAvFxAgAv AgDfAvGaAvGa DGAaDdFx AaGfAfDd FaAaDx GGAvFxGaGfAfDdAvFd AgDfAv VDAvDfGd VdGf AxDfFdAgAvFd AaFd AgAvFd DAAvGvDfFdFdGaFgDfAvDxAvFd GdAvDfDx VdGf FdAvDdFaAvFd. GAFfAxAvFxFd DfAfDd FdDfAfDdGd VdGf GgDfAvDx AxüFx AgDfAv GFFdDf GdGfFd FaGfGaGa ;-)
DAFxGfAvGaGaAv,
GADfFxDvAv
Tilo - Di 25.11.08 11:44
Ihr macht Euch aber auch eine Mühe, noch deine Kodierer zu schreiben,
mir hat der Dekodierer gereicht.
Regan - Di 25.11.08 12:52
Tilo hat folgendes geschrieben : |
Ihr macht Euch aber auch eine Mühe, noch deine Kodierer zu schreiben,
mir hat der Dekodierer gereicht. |
AAAdAvFx AgAaGa DfGaGd AgFfAfDd FdDfAfDdGd GaAfDdGvAvFx. DFAfDd DdAaAdAv AvGa AvDfFdAxAaAfDd FaDfGd AvDfFdAvFa GGAaDxGfAvDXDfGaGdAVAgDfGdFfFx DaAvDxöGaGd. AGAvFx GdFxAaFdGaAxFfFxFaDfAvFxGd FaDfFx AgAaGa DdDfFd GfFdAg DdAvFx.
BenBE - Di 25.11.08 13:23
AADxGaFf DfAfDd DdAaAd AgDfAv ÜAdAvFxGaAfDdFxDfAxGd AaDxGa DVFdFfGvFd FGDxAaDfFdGdAvGxGd AAFdDaFxDfAxAx DdAvFxDaAvFdFfFaFaAvFd ... DFGaGd DfFxDaAvFdAgGvDfAv AaGfAfDd GaAfDdFfFd GdFxAaAgDfGdDfFfFd, AgAaGaGa FaAaFd AgDfAv FaDfGd AgAvFa AXFfFxFaAaGdGaGdFxDfFdDa 'AAAgGgAvFdGdGaDaAvGvDfFdFdGaFgDfAvDx %Ag' AgAaFxGaGdAvDxDxAvFd DvAaFdFd ;-)
GTA-Place - Di 25.11.08 13:30
Mir reicht das Dekodieren auch. @Martok: Guck dir einfach mal die Infos zur Verschlüsselung an. Dann weißte, wie sie funktioniert :P
Boldar - Di 25.11.08 15:22
DfAfDd DdAaAdGa AvFdAgDxDfAfDd DaAvAfDdAvAfDvGd... FaDfGd DdäGfAxDfDaDvAvDfGdGaAaFdAaDxVaGaAv DdAaAd DfAfDd AvFxGaGdFaAaDx Av FxAaGfGaDaAvAxGfFdAgAvFd GfFdAg AgAaFdFd AgAvFd FxAvGaGd... AgAvFx GdDfFgFg FaDfGd AgAvFd DxDfFdDvGa GvAaFx DaGfGd!!
DdAvGfGdAv DvAvDfFd DaFxGfGaGa, GaFfFdGaGd GvDfFxAgGa VdGf AvDfFdAxAaAfDd!!
jasocul - Di 25.11.08 17:00
AGAaGa DfGaGd AgAaGa AvFxGaGdAv DGAaDdFx, DfFd AgAvFa DfAfDd AaFd AgAvFa GVAvGdGdAdAvGvAvFxAd GdAvDfDxFdAvDdFaAvFd AgAaFxAx.
DDFfAxAxAvFdGdDxDfAfDd DdAaAdAv DfAfDd DaAvFdGfDa VDAvDfGd, GfFa FaDfGdVdGfFaAaAfDdAvFd. FADfGd DVFfAgDfAvFxGfFdDa DdAaAdAv DfAfDd VdGvAaFx AdDfGaDdAvFx FdDfAfDdGd GgDfAvDx VdGf GdGfFd DaAvDdAaAdGd, AaAdAvFx AgDfAvGaAvFx GDAvDfDx DfGaGd FaDfFx AgFfAfDd VdDfAvFaDxDfAfDd DxAvDfAfDdGd DaAvAxAaDxDxAvFd.
FAAaDx GaAvDdAvFd, GvAaGa AgAa FdFfAfDd DvFfFaFaGd.
Boldar - Di 25.11.08 17:06
jasocul: ich glaube, bei dir sind die m's falsch kodiert!
freedy - Di 25.11.08 17:15
Boldar hat folgendes geschrieben : |
jasocul: ich glaube, bei dir sind die m's falsch kodiert! |
Nur das eine... bestimmt nur ein Tippfehler. ;-)
Yogu - Di 25.11.08 17:15
Boldar hat folgendes geschrieben : |
jasocul: ich glaube, bei dir sind die m's falsch kodiert! |
Nicht die m's, sondern die M's.
freedy hat folgendes geschrieben : |
Nur das eine... bestimmt nur ein Tippfehler. ;-) |
Wohl ein Tippfehler im Skript, es sind nämlich zwei von zwei M's falsch codiert. ;)
freedy - Di 25.11.08 17:25
Yogu hat folgendes geschrieben : |
Wohl ein Tippfehler im Skript, es sind nämlich zwei von zwei M's falsch codiert. ;) |
"GFFgGa", das andere habe ich übersehen. Gut aufgepasst, Yogu.
jasocul - Di 25.11.08 17:29
GVAvFdFd FaAaFd AXGA FaDfGd AXAA GgAvFxGvAvAfDdGaAvDxGd, DvAaFdFd AgAaGa FgAaGaGaDfAvFxAvFd.
DDAaAdAv AvGa DgAvGdVdGd FfAdAvFd DvFfFxFxDfDaDfAvFxGd.
Fehler ist raus und auch im letzten Beitrag von mir verbessert.
Danke für den Hinweis.
baka0815 - Di 25.11.08 17:42
FDAaDgAa, GaFfGgDfAvDx FaAvDdFx AAGfAxGvAaFdAg DfGaGd AvDfFd AVFdAfFfAgAvFx AgAaFdFd AaGfAfDd FdDfAfDdGd FaAvDdFx, GvAvFdFd FaAaFd FxAaGfGaDdAaGd, GvDfAv'Ga DaAvDdGd. ;)
AAAdAvFx DfAfDd FaGfGaGa DaAvGaGdAvDdAvFd, AgAaGaGa DfAfDd AaGfAfDd VdGfAvFxGaGd AaFd GAFgAaFa GfFdAg AvFxGaGd AgAaFdAaAfDd AaFd AgDfAvFXäGdGaAvDx DaAvAgAaAfDdGd DdAaAdAv - AaAdAvFx DfAfDd AdDfFd DgAa AaGfAfDd FdFfAfDd FdDfAfDdGd GaFf DxAaFdDaAv DdDfAvFx.
AvAgDfGd: AGAaFdDvAv, DdAaGd FaDfFx FaAvDfFdAvFd AAFxAdAvDfGdGaGdAaDa AvGdGvAaGa AaFdDaAvFdAvDdFaAvFx DaAvFaAaAfDdGd! :)
elundril - Di 25.11.08 17:46
ohhm man das wird zach das ganze topic zu übersetzen....
baka0815 - Di 25.11.08 17:49
MH hat folgendes geschrieben : |
FAFfDfFd AaFd AaDxDxAv
AGAaGa GvAaFx FaAaDx GvAaGa DfFdGdAvFxAvGaGaAaFdGdAvGa VdGfFa VDAvDfGdGgAvFxGdFxAvDfAd.
AAAdAvFx FdFfAfDd FaAaDx FdAv AXFxAaDaAv VdGfFa DAAvGvDfFdFdGaFgDfAvDx. FAGfGaGa FaAaFd GaDfAfDd AgAaAxGfAvFx AaFdFaAvDxAgAvFd? GVAvFdFd DgAa, GvAaFdFd GfFdAg GvDfAv?
AGAaFdFd AvFxGaGdFaAaDx
FAAaFxAfFf |
GAGdAvDdGd AgFfAfDd AaDxDxAvGa DfFa AVDfFdDaAaFdDaGaFgFfGaGdDfFdDa, AvFxGaGdAvFdGa AgAaGaGa GfFdAg VdGvAvDfGdAvFdGa AdDfGa GvAaFdFd FaAaFd GaDfAfDd AaFdDaAvFaAvDxAgAvGd DdAaAdAvFd FaGfGaGa.
Tilman - Di 25.11.08 18:24
ene hat folgendes geschrieben : |
Die Besten der Besten der Besten...wieder einmal |
:D
Jakob_Ullmann - Di 25.11.08 18:48
Wann gibt's eigentlich die Auflösung? :D
Regan - Di 25.11.08 18:52
Ich glaub in 10 Minuten sollte das der Fall sein. Mich interessiert vor allem das Lösungsprogramm, weil meines etwas kompliziert geschrieben ist.
Edit: OK, beim letzten Mal hat es länger gedauert, wir sollten uns noch etwas gedulden :wink: .
elundril - Di 25.11.08 19:08
hab zwar die verschlüsselung geknackt aber mein Programm will noch nicht so recht.^^
Jakob_Ullmann - Di 25.11.08 19:30
Sollte das dann nicht einfach mit StringReplace zu lösen sein? :D Ich hätte mir ja gerne die Zeit genommen, den Code zu knacken, aber leider gibt das meine Zeit momentan nicht her. :o
elundril - Di 25.11.08 19:33
stringreplace ist aber langsam. ich wollt das ein bisschen performancemäßig gut gestalten.
Yogu - Di 25.11.08 19:43
DFAfDd DdAaAdAv AvGa GaFf DaAvDxöGaGd (AgAvFd AxFfDxDaAvFdAgAvFd AFFfAgAv FdFfAfDdFaAaDx AvFdAfFfAgAvFd, AgAaFaDfGd DfDdFx DfDdFd AaGfAfDd FdGfFx DxAvGaGd, GvAvFdFd DfDdFx AgAaGa GvFfDxDxGd ;)):
AADAAAGgAXGx AAAXAXAxAADaAAGg AGAgAAAaDAAg AADaAXAxAAAxAGAg AAGgAGAxAXAg AAGgAGAxAGAaAAGgAXAgAAGgDAAa GGAGAAAaAGAgAGGxAAGgAXAgDAAaGGAaDAAaDAAgAAGgAXAa, AAAgAAGgDAAaDAAgAAGgAGAgAAGgAXAgAADa AAAaDAAxDAAa AAAA, AADA, AAGX, AGAA, DADA, DAGX. AGDAAAGgDAAgGGAgDAAg AXAaDAAxDAAaDAAa AXAgAXAxAAAxAGAg AAGgAGAxAXAgAAGg GGAGAAAaAGAgAGGx AAAaDAAxDAAa AADaAAGgAXAa AAAaAGGgDAAgDAAxAAGgAGGxAGGxAAGgAXAg AAAGDAAxAAAxAGAgDAAaDAAgAAAaAAAgAAGgAXAg / AADaAAGgAXGx AAAaAGGgDAAgDAAxAAGgAGGxAGGxAAGgAXAg GGAGAAAaAGAgAGGx AAAgAAGgAXGxAAGgAAAxAGAgAXAgAAGgDAAg DAGgAAGgAXGxAADaAAGgAXAg: AAAA DAGgAGAxAXGxAADa GGAgDAAx GGAx, AAAG GGAgDAAx GGDa; GGAG GGAgDAAx GGGgGXAg; GGDa GGAgDAAx GGGgGXAx. AADAAGAxAAGg GGAGAAAaAGAgAGGx AGGgAAAaAXAgAXAg AADaAAAaAXAgAXAg AAGgAGAxAXAgAAGxAAAaAAAxAGAg AXAaAGAxDAAg AGAGAGAxAGGxAAGxAAGg DADaAXAxAXAg AXAaAXAxAADa DAAxAXAgAADa AADaAGAxDADa AGAxAXAg AADaAGAxAAGg GGAgDAGgAAGgAGAx GXAxAAGgAXGx-GGAGAAAaAGAgAGGxAAGgAXAg DAAxAXAaAGAaAAGgDAGgAAAaAXAgAADaAAGgAGGxDAAg DAGgAAGgAXGxAADaAAGgAXAg, DAAxAXAgAADa AAAaDAAxDAAa AADaAGAxAAGgDAAaAAGgAXAg GGAGAAAaAGAgAGGxAAGgAXAg DAGgAAGgAXGxAADaAAGgAXAg AADaAAAaAXAgAXAg AADaAGAxAAGg AAAGDAAxAAAxAGAgDAAaDAAgAAAaAAAgAAGgAXAg AAAaDAAxDAAa AAGgAGAxAXAgAAGgAXAa AAAaAXGxAXGxAAAaGGAa AAAaDAAxDAAaAGAaAAGgAGGxAAGgDAAaAAGgAXAg, AADaAAAaDAAaDAAa AADaAGAxAAGg AAAGDAAxAAAxAGAgDAAaDAAgAAAaAAAgAAGgAXAg AAAA, AADA, AAGX, AGAA, DADA DAAxAXAgAADa DAGX AAGgAXAgDAAgAGAgäAGGxDAAg.
GAFfGgDfAvDx VdGf FaAvDfFdAvFa AADxDaFfFxDfGdDdFaGfGa. GAGfAfDdAvFd&AVFxGaAvGdVdAvFd DfGaGd FdAaGdüFxDxDfAfDd AaGfAfDd FaöDaDxDfAfDd, AaAdAvFx DxAaFdDaGaAaFaAvFx. :)
Jakob_Ullmann - Di 25.11.08 20:02
Ähäm. :? :shock:
Boldar - Di 25.11.08 20:05
GdFfGdAaDx GaDfFdFdAxFxAvDf^^
Tilman - Di 25.11.08 20:14
DFAfDd DdAaAdAv AgAaGa GaFf DaAvFaAaAfDdGd:
AXAaAAAaAXAg AXAgAAGgAGAgAXAaAAGg AADaAAAaDAAa
AAAaAGGxAXDaAGAgAAAaAAAgAAGgDAAg AXDaAGGxDAAxDAAa AADaAGAxAAGg
GGAgAAAaAGAgAGGxAAGgAXAg:
AAAaAAAgAAAxAADaAAGgAAGxAGAaAGAgAGAxAGDaAGGgAGGxAXAaAXAgAXAxAXDa
AXGgAXGxDAAaDAAgDAAxDADaDAGgDAGxGGAaGGAgGGAXGGDAGGGGGGGXGXAAGXAGGXAXGXAXGXDAGXGGGXGX
DAAxAXAgAADa AXAxAXGxAADaAXAgAAGg AADaAGAxAAGgDAAaAAGg
AGAxAXAg AAGgAGAxAXAg AXGXAAAaDAAaDAAgAAGgAXGx
GXAXDAGxGXAX AAAaAXAg:
AAAaAAAgAAAxAADaAAGgAAGx
AGAaAGAgAGAxAGDaAGGgAGGx
AXAaAXAgAXAxAXDaAXGgAXGx
DAAaDAAgDAAxDADaDAGgDAGx
GGAaGGAgGGAXGGDAGGGGGGGX
GXAAGXAGGXAXGXDAGXGGGXGX
DAAxAXAgAADa AAAgAAGgGGAgAAGgAGAxAAAxAGAgAXAgAAGg
AAAgAAGgAGAxAADaAAGg
AAAAAAAxAGAgDAAaAAGgAXAg AXAaAGAxDAAg AAAaAADaAAGxAGAaDADaDAGx -
AAGxAAGgAXGxDAAgAGAxAGAa AGAxDAAaDAAg AADaAGAxAAGg DAGGDAAxAXGxDAAaDAAg
jaenicke - Di 25.11.08 20:14
Jakob_Ullmann hat folgendes geschrieben : |
Ich hätte mir ja gerne die Zeit genommen, den Code zu knacken, aber leider gibt das meine Zeit momentan nicht her. :o |
Die 15 Minuten hatte ich dann doch, meine Lösung ist zwar performancemäßig schlimm, aber sie erfüllt ihren Zweck. Dann nochmal 10 Minuten damit das Ganze etwas praktikabler war. ;-)
// EDIT:
@
Tilman: Ein Zeilenumbruch in deinem Post vor meinem wäre nicht schlecht, damit bei kleineren Bildschirmgrößen das Forum nicht so weit nach rechts aus den Fugen gerät... ;-)
Tilman - Di 25.11.08 20:26
jo sry habs geändert ^^
Mein Beitrag entspricht jetzt dem Yogumax-Format *gg
Xentar - Di 25.11.08 20:49
Habs auch erst mit StringReplace probiert.
Bin dann aber auf die Nase gefallen, weil die Codierungen sich halt überschneiden, und StringReplace da ohne Rücksicht auf Verluste durchmäht ;) Da wurden dann teilweise Codes ersetzt, die zu zwei verschiedenen Buchstaben gehörten, nur weil diese halt direkt nebeneinander stehen.. ach blah, weiß nicht, wie ich das ausdrücken soll, aber ihr wisst sicher, was ich meine :D
Jakob_Ullmann - Di 25.11.08 21:35
So ungefähr. Ich dachte, ein Buchstabe ist immer mit genau einem Großbuchstaben und beliebigen Kleinbuchstaben kodiert (sah so aus).
Zeodos - Mi 26.11.08 11:11
Xentar hat folgendes geschrieben : |
Habs auch erst mit StringReplace probiert.
Bin dann aber auf die Nase gefallen, weil die Codierungen sich halt überschneiden, und StringReplace da ohne Rücksicht auf Verluste durchmäht ;) Da wurden dann teilweise Codes ersetzt, die zu zwei verschiedenen Buchstaben gehörten, nur weil diese halt direkt nebeneinander stehen.. ach blah, weiß nicht, wie ich das ausdrücken soll, aber ihr wisst sicher, was ich meine :D |
hi, du könntest in dem chiffre-text die Bigramme erst durch platzhalter (zb %) voneineander trennen, wenn du die dann übersetzt, stehen sie nicht direkt nebeneinander und werden nicht noch ein zweites mal übersetzt ;-)
jaenicke - Mi 26.11.08 11:44
:welcome: ;-)
Dann kann man die Ersetzung aber auch gleich vornehmen, alles andere dauert nur unnötig länger. Ich selbst habe um ständige Stringneubildungen zu verhindern gar nicht direkt mit Strings gearbeitet bei der Ersetzung.
freedy - Mi 26.11.08 11:53
Ist das ganze nicht einfachste Automatentheorie? :gruebel: Es gibt doch bei den Zeichen nur gültige Zustände, wenn nicht z. B. ',' wird das Zeichen übernommen.
GTA-Place - Mi 26.11.08 13:33
So hab ich es auch gemacht, alles was nicht aus zwei Teilen besteht oder nicht der Vorlage entspricht wird unverändert übernommen.
jaenicke - Mi 26.11.08 13:34
Die Lösung an sich ist einfach, aber wenn du für jeden Buchstaben durch Verkettung einen neuen String erstellst, dann dauert das ganze und verbraucht viel Speicher. Ich kenne leider keine direkte Möglichkeit diese teilweise behindernde Automatik bei der Verwendung von Strings zu verhindern, deshalb habe ich einfach keine Delphi-Strings verwendet.
GTA-Place - Mi 26.11.08 13:36
Naja, kommt es hier wirklich auf Geschwindigkeit und geringen Speicherverbrauch an? :lol:
jasocul - Mi 26.11.08 13:40
Wenn offiziell aufgelöst wurde, kann man ja mal die Algos gegeneinander antreten lassen.
BenBE - Mi 26.11.08 13:49
Dann optimiere ich meinen aber nochma :P Der ist derzeit noch recht straight-forward ...
jasocul - Mi 26.11.08 13:59
Dann miss aber auch jetzt, damit du die Verbesserung siehst.
Der Eingangsbeitrag benötigt in meiner nicht optimierten Routine 15 ms. Geprüft mit GetTickCount.
GTA-Place - Mi 26.11.08 14:10
Bei meiner Variante mit verketteten Delphi-Strings zwischen 0 und 15ms.
freedy - Mi 26.11.08 14:12
GTA-Place hat folgendes geschrieben : |
Bei meiner Variante mit verketteten Delphi-Strings zwischen 0 und 15ms. |
Womit hast du das gemessen? QueryPerformance oder TickCount? ;-)
alias5000 - Mi 26.11.08 14:17
ach mensch, es ist ja bald schon wieder Advent! Grad wo ich diesen Titel hier seh, wird man richtig dran erinnert :)
bis denne...
jaenicke - Mi 26.11.08 14:30
AADxDxAv, AgDfAv AgAaGa DdDfAvFx GaAfDdFfFd AvFdGdGaAfDdDxGfAvGaGaAvDxGd DdAaAdAvFd, DvFfAvFdFdAvFd GaDfAfDd DgAa GaAfDdFfFdFaAaDx AgAvFd FVGfAvDxDxGdAvGxGd AaFdGaAfDdAaGfAvFd.
GaDg-AdAvFxDxDfFd.AgAv/GaAvFxGgDfAfAv/AgAx/AAFdDvGfAvFdAgDfDaGfFdDa.VdDfFg (DvFfFgDfAvFxGd AgAvFd DXDfFdDv AvDfFdAxAaAfDd)
DVDxDfAfDvGd VdGfAvFxGaGd DfFa AADxFgDdAaAdAvGdAxAvFdGaGdAvFx AaGfAx DXAaAgAvFd GfFa AgAvFd AFFfAgAv VdGf DxAaAgAvFd, AgAaFdFd AxGfFdDvGdDfFfFdDfAvFxAvFd GGAvFx- GfFdAg AVFdGdGaAfDdDxGfAvGaGaAvDxGfFdDa. AGDfAv DDDfFdVdGfAxGfAvDaAvFd-DVFdFfAvFgAxAv GvAaFxAvFd VdGfFa FaAaFdGfAvDxDxAvFd DdDfFdVdGfAxGfAvDaAvFd AdAvDvAaFdFdGdAvFx GAAvFvGfAvFdVdAvFd FfAgAvFx AvDfFdVdAvDxFdAvFx ADGfAfDdGaGdAaAdAvFd.
VDGf FaAvDfFdAvFx GGFfFxDaAvDdAvFdGaGvAvDfGaAv: FADfGd AgAvFa FfAdAvFxAvFd DDDfFdVdGfAxGfAvDaAvFd DfFa DDAaGfFgGdAxAvFdGaGdAvFx DdAaAdAv DfAfDd AgDfAv GAAvFvGfAvFdVd AAAgGgAvFdGdGaDaAvGvDfFdFdGaFgDfAvDx DfFd AgDfAv DXDfGaGdAv AvDfFdDaAvAxGfAvDaGd, AgAaFdAaAfDd DfFaFaAvFx GfFdGdAvFd VdGvAvDf FdDfAfDdGd AvFdGdGaAfDdDxüGaGaAvDxGdAv ADGfAfDdGaGdAaAdAvFd FaAaFxDvDfAvFxGd, AVFdGdAvFx FfAgAvFx AgAvFd DVFdFfFgAx GfFdGdAvFd FxAvAfDdGdGa DaAvAgFxüAfDvGd GfFdAg AgAvFd DvFfFxFxAvDvGdAvFd ADGfAfDdGaGdAaAdAvFd AvDfFdDaAvDaAvAdAvFd. GAFfGvAvDfGd GvAaFx AgAaGa FdAaAfDd VVXD FADfFdGfGdAvFd AxAvFxGdDfDa, AgAaFdAaAfDd DaDfFdDa AvGa FdGfFx FdFfAfDd AgAaFxGfFa AgAaGa DaAaFdVdAv DfFd GvAvFdDfDaAvFx AaDxGa AgAvFd AaFdAxAaAvFdDaDxDfAfDdAvFd AfAa. VV - VX GAAvDvGfFdAgAvFd DdDfFdVdGfAdAvDvFfFaFaAvFd.
-----------------------
Mein Code braucht laut QueryPerformanceCounter 26ms inkl. Memoanzeige auf einem 3700+ Athlon64, auf meinem schnelleren PC habe ich es nicht gestestet, dort werden es sicherlich ein paar ms weniger mehr sein, aber letztlich zählt ja ohnehin nur der Vergleich auf dem selben PC.
// EDIT:
Entschlüsselte Version (1:1):
Alle, die das hier schon entschluesselt haben, koennen sich ja schonmal den Quelltext anschauen.
sj-berlin.de/service/df/Ankuendigung.zip [
http://www.sj-berlin.de/service/df/Ankuendigung.zip] (kopiert den Link einfach)
Klickt zuerst im Alphabetfenster auf Laden um den Code zu laden, dann funktionieren Ver- und Entschluesselung. Die Hinzufuegen-Knoepfe waren zum manuellen hinzufuegen bekannter Sequenzen oder einzelner Buchstaben.
Zu meiner Vorgehensweise: Mit dem oberen Hinzufuegen im Hauptfenster habe ich die Sequenz Adventsgewinnspiel in die Liste eingefuegt, danach immer unten zwei nicht entschlüsselte Buchstaben markiert, Enter oder den Knopf unten rechts gedrückt und den korrekten Buchstaben eingegeben. Soweit war das nach 25 Minuten fertig, danach ging es nur noch darum das ganze in weniger als den anfaenglichen ca. 2 - 3 Sekunden hinzubekommen.
GTA-Place - Mi 26.11.08 14:50
freedy hat folgendes geschrieben : |
GTA-Place hat folgendes geschrieben : | Bei meiner Variante mit verketteten Delphi-Strings zwischen 0 und 15ms. |
Womit hast du das gemessen? QueryPerformance oder TickCount? ;-) |
Genau wie jaenicke mit GetTickCount. QueryPerformance wäre jetzt fies, weil sein 3700+ nicht mit meiner CPU mithalten kann :mrgreen:
EDIT: Tja, wie gesagt. Habs mal ausprobiert :mrgreen: 1,26ms inkl. Anzeige :-P @jaenicke: Kanns dir ja mal schicken, dann kannste es auf deinem Athlon ausprobieren.
jasocul - Mi 26.11.08 15:00
Ich habe nur die Umwandlung gemessen. Ein- und Ausgabe sind nicht dabei.
Habe jetzt eine optimierte Variante, die mir nahezu immer 0 zurück gibt. 8)
GTA-Place - Mi 26.11.08 15:03
Ohne Ein- und Ausgabe? Mein Souce kommt nicht unter 1,25ms - auch wenn ich Ein- und Ausgabe weglasse :bawling:
Narses - Mi 26.11.08 15:04
Moin!
Dieses Jahr haben wir eine Polybios-Verschlüsselung verwendet, genaueres kann man
hier nachlesen [
http://de.wikipedia.org/wiki/ADFGX]. ;)
Viel Spaß noch beim Optimieren - dann ist die Zeit bis zum 01.12. nicht mehr so lang(weilig)... :zwinker:
cu :wave:
Narses
freedy - Mi 26.11.08 15:07
jaenicke hat folgendes geschrieben : |
Mein Code braucht laut QueryPerformanceCounter 26ms inkl. Memoanzeige auf einem 3700+ Athlon64, auf meinem schnelleren PC habe ich es nicht gestestet, dort werden es sicherlich ein paar ms weniger mehr sein, aber letztlich zählt ja ohnehin nur der Vergleich auf dem selben PC. |
Ich liege mit QueryPerformanceCounter und Memoanzeigen bei 15ms. ;-)
GTA-Place hat folgendes geschrieben : |
Habs mal ausprobiert :mrgreen: 1,26ms inkl. Anzeige :-P |
Glaube ich dir irgendwie nicht. Zeig mal deine Sourcen ;-)
jasocul - Mi 26.11.08 15:10
Meins im Anhang, ohne Source.
Wer will kann dann ja vergleichen.
GTA-Place - Mi 26.11.08 15:11
Eigentlich hab ich dich ja auch gar nicht gemeint, sondern den vor mir :mrgreen:
EDIT: Den da ----^
EDIT2: Ihr bringt mich ganz durcheinander. Ich meinte doch den anderen...
jaenicke - Mi 26.11.08 15:16
jasocul hat folgendes geschrieben : |
Meins im Anhang, ohne Source.
Wer will kann dann ja vergleichen. |
Naja, wenn ich GetTickCount verwende ist es bei mir auch 0^^, das ist einfach nicht genau genug um da etwas anzuzeigen^^. ;-)
freedy - Mi 26.11.08 15:18
Hier mal mein Programm...
jaenicke - Mi 26.11.08 15:23
Wobei ich dazu noch sagen muss:
Ich habe nicht die Verschlüsselungsmethode eingebaut, obwohl mir die schon klar war, sondern ich habe eine reine Ersetzung nach Tabelle gemacht, was natürlich etwas langsamer ist, auch wenn ich versucht habe das Nachschlagen zu optimieren.
jasocul - Mi 26.11.08 15:41
Habe oben mal eine Variante mit QueryPerformanceCounter angehängt.
Meine Routine arbeitet zur Zeit ganz traditionell mit String-Verarbeitung. Hat also noch einiges Optimierungspotential.
BenBE - Mi 26.11.08 20:30
Ich optimiere meine PHP-Version nachher noch durch eine Portierung nach Delphi ... hab ne Idee, wie ich die 1,26ms locker schlagen können müsste ;-)
jaenicke - Mi 26.11.08 22:05
So, hab meine Version gerade auf dem 6000er getestet, dort braucht die inkl. Aktualisierung 0,8ms.
Yogu - Mi 26.11.08 22:15
Ha!
0,36 Millisekunden! :D
(2,59GHz x2)
Mein Algorithmus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59:
| const CharCount = 6; Chars: array[0..CharCount-1] of Char = ('a', 'd', 'f', 'g', 'v', 'x'); UpperChars: array[0..CharCount-1] of Char = ('A', 'D', 'F', 'G', 'V', 'X');
function TMainForm.Decrypt(const S: String): String; var i, j, k, DecryptedPos, Len: Integer; C, C1, C2: Char; Num: Byte; Found: Boolean; begin SetLength(Result, Length(S)); DecryptedPos := 1; i := 1; Len := Length(S); while i <= Len do begin C1 := S[i]; C2 := S[i+1];
Found := False; for j := 0 to CharCount-1 do begin if (C1 = Chars[j]) or (C1 = UpperChars[j]) then begin for k := 0 to CharCount-1 do begin if (C2 = Chars[k]) or (C2 = UpperChars[k]) then begin Num := j*CharCount + k;
if Num < 26 then begin if C2 in ['a', 'd', 'f', 'g', 'v', 'x'] then C := Chr(97+Num) else C := Chr(65+Num); end else C := Chr(22+Num);
Result[DecryptedPos] := C; inc(DecryptedPos); inc(i, 2); Found := True; Break; end; end; end; if Found then Break; end;
if not Found then begin Result[DecryptedPos] := S[i]; inc(DecryptedPos); inc(i); end; end;
SetLength(Result, DecryptedPos-1); end; |
Wer den knackt, ist Kokusnussknacker ;)
(*freu* *freu* *freu*)
Edit: Keine Angst, ich hab mehr als 2,59MHz. :lol:
Wolle92 - Mi 26.11.08 22:20
Yogu, upp mal das Programm mit ms-Anzeige... Ich wette, meiner ist schneller :mrgreen:
Yogu - Mi 26.11.08 22:26
Wolle92 hat folgendes geschrieben : |
Yogu, upp mal das Programm mit ms-Anzeige... Ich wette, meiner ist schneller :mrgreen: |
Das werden wir ja sehen :mrgreen:
jaenicke - Mi 26.11.08 22:47
Ja, bei diesen Algorithmen werde ich nicht mithalten können, weil meiner eben ein reiner Tabellenersetzer ist. Dafür kann ich mit meinem auch andere Ersetzungsalgorithmen knacken.
Aber ich werde noch eine optimierte Version für diesen speziellen Fall basteln, wenn ich die Zeit finde.
der organist - Mi 26.11.08 23:11
Sagt mir mal einer, wie ich die ms messen kann? Ohne Timer auf Intervall 1 und dann hochzählen? Dann probier ich das auch noch mal...
Kha - Mi 26.11.08 23:37
Yogu hat folgendes geschrieben : |
Mein Algorithmus: |
Was hast du denn mit der inneren Schleife vor?
Hab mir mal die Freiheit genommen, deinen Code etwas anzupassen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55:
| function Index(C: Char): Integer; inline; const Delta = Integer('a') - Integer('A'); begin case C of 'A': Result := 0; 'D': Result := 1; 'F': Result := 2; 'G': Result := 3; 'V': Result := 4; 'X': Result := 5; 'a': Result := Delta + 0; 'd': Result := Delta + 1; 'f': Result := Delta + 2; 'g': Result := Delta + 3; 'v': Result := Delta + 4; 'x': Result := Delta + 5; else Result := -1; end; end;
function Khacrypt(const S: String): String; var i, j, Len, Num, Num2: Integer; C1, C2: Char; begin SetLength(Result, Length(S)); i := 1; j := 1; Len := Length(S); while i <= Len do begin C1 := S[i]; Num := Index(C1); if (Num >= 0) and (Num < 6) then begin C2 := S[i + 1]; Num2 := Index(C2); if Num2 >= 0 then begin Num := 6 * Num + Num2 + Integer('A'); if Num <= Integer('z') then Result[j] := Chr(Num) else Result[j] := Chr(Integer('0') + Num - Integer('z') - 1); Inc(i, 2); Inc(j); continue; end; end; Result[j] := C1; Inc(i); Inc(j); end; SetLength(Result, j); end; |
Quelltext
1: 2: 3:
| Benchmark, 100000 Iterationen Yogu: 343 ms Meins: 140 ms |
Yogu hat folgendes geschrieben : |
2,59Mhz |
Daran wird's liegen :zwinker: .
der organist - Do 27.11.08 16:18
Soll heissen:
-Ich benutze die Funktion drei mal, mit unterschiedlichen Übergabewerten und mache zwischen (Start) und (Stop) meinen Test.
-Die Millisekunden werden danach über
(Stop - Start) * 1000 / Frequenzy) ausgegeben
Heiko - Do 27.11.08 18:15
der organist hat folgendes geschrieben : |
-Die Millisekunden werden danach über (Stop - Start) * 1000 / Frequenzy) ausgegeben |
Hälst du die Variante für zuverlässig? Mein NB taktet selten über paar Sekunden gleich ;).
Yogu - Do 27.11.08 19:20
Heiko hat folgendes geschrieben : |
Mein NB taktet selten über paar Sekunden gleich ;). |
Das sollte er aber! Wäre
sehr seltsam, wenn nicht!
jaenicke - Do 27.11.08 19:24
Heiko hat folgendes geschrieben : |
Hälst du die Variante für zuverlässig? Mein NB taktet selten über paar Sekunden gleich ;). |
Es gibt keine genauere Zeitmessmethode unter Windows. GetTickCount ist relativ ungenau, genauso wie ein Timer o.ä., die Performance Counter sind die einzige sehr genaue Möglichkeit der Zeitmessung.
der organist hat folgendes geschrieben : |
Soll heissen:
-Ich benutze die Funktion drei mal, mit unterschiedlichen Übergabewerten und mache zwischen (Start) und (Stop) meinen Test. |
Ja, fast, nur dass der eine Aufruf eine andere Funktion aufruft (das ist nicht dreimal die selbe Prozedur), um nämlich die Zeit zwischen Start- und Endwert interpretieren zu können. ;-)
Kha - Do 27.11.08 23:14
jaenicke hat folgendes geschrieben : |
Es gibt keine genauere Zeitmessmethode unter Windows. GetTickCount ist relativ ungenau, [...] |
Genauso ungenau ist es, nur einen einzelnen Wert zu messen, da springt dir jeder Statistiker an die Decke ;) . Und bei zehntausenden von Wiederholungen dürfte dann auch GetTickCount exakt genug sein :) .
Tilman - Fr 28.11.08 01:15
Man könnte auch versuchen zu messen wieviele Buchstaben(-Paare) eure Algos in 30 Sekunden kodieren / dekodieren. Das wäre vielleicht ein Wert den man besser vergleichen kann.
Wobei ich persönlich den 100. Wettbewerb "wer schreibt den schnellsten Algo" nicht mehr sooo prickelnd finde ;) ich hab als 2. hier enkodiert reingeschrieben und mich nen Keks darüber gefreut, das genügt mir ^^
P.S. an die Schöpfer des Rätsels:
interessant finde ich in dem Zusammenhang das Wort "Adventsgewinnspiel". Denn es scheint die Antwort auf die Frage zu sein "Geben Sie ein Wort an, welches möglichst viele Informationen zum adfgvx-Kode liefert". Zusammen mit der Zahl 2008 kommen doch tatsächlich alle Pre- und Postfixe darin vor, die Häufigsten Buchstaben E,N,I,S,A und mit 00, NN sowie weiteren Buchstaben ließ sich auch leicht erschließen dass es ein Monoalphabetisches Verfahren ist.
Natürlich weiß ich dass das Wort in jedem Jahr das selbe ist - aber es war hier wirklich perfekt.
jaenicke - Fr 28.11.08 02:37
So, ich habe es jetzt auf dem 3700er auf 0,069ms gedrückt, 6000er
0,044ms. Ein Klick auf Start im Anhang macht 1000 Durchläufe.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57:
| const CharList1: array[65..122] of Byte = (0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 0, 0); CharList2: array[65..122] of Byte = (6, 0, 0, 7, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 0, 0); CharTable: array[0..5] of array[0..11] of Char = (('a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F'), ('g', 'h', 'i', 'j', 'k', 'l', 'G', 'H', 'I', 'J', 'K', 'L'), ('m', 'n', 'o', 'p', 'q', 'r', 'M', 'N', 'O', 'P', 'Q', 'R'), ('s', 't', 'u', 'v', 'w', 'x', 'S', 'T', 'U', 'V', 'W', 'X'), ('y', 'z', ' ', ' ', ' ', ' ', 'Y', 'Z', '0', '1', '2', '3'), (' ', ' ', ' ', ' ', ' ', ' ', '4', '5', '6', '7', '8', '9'));
var CurIn, CurOut, Len: Integer; Chars: array of Char; tmp: string; StartTime, EndTime, Freq: Int64; i: Integer; begin QueryPerformanceFrequency(Freq); QueryPerformanceCounter(StartTime);
for i := 1 to 1000 do begin tmp := memInput.Text; Len := Length(tmp); SetLength(Chars, Len); CopyMemory(@Chars[0], @tmp[1], Len); CurIn := 0; CurOut := 0; while CurIn < Len do begin if not (Chars[CurIn] in ['a'..'z', 'A'..'Z']) then begin Chars[CurOut] := Chars[CurIn]; Inc(CurIn); end else begin Chars[CurOut] := CharTable[CharList1[Ord(Chars[CurIn])]] [CharList2[Ord(Chars[CurIn + 1])]]; Inc(CurIn, 2); end; Inc(CurOut); end; SetLength(Chars, CurOut); SetLength(tmp, CurOut); CopyMemory(@tmp[1], @Chars[0], CurOut); memOutput.Text := tmp; end;
QueryPerformanceCounter(EndTime); ShowMessage(FormatFloat('0.000', (EndTime - StartTime) / Freq) + ' ms'); end; |
// EDIT:
Und mit ein wenig Pointerspielerei liege ich jetzt bei
0,032ms.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| const CharList1: array[65..122] of Byte = (0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 0, 0); CharList2: array[65..122] of Byte = (6, 0, 0, 7, 0, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 0, 0); CharTable: array[0..5] of array[0..11] of Char = (('a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F'), ('g', 'h', 'i', 'j', 'k', 'l', 'G', 'H', 'I', 'J', 'K', 'L'), ('m', 'n', 'o', 'p', 'q', 'r', 'M', 'N', 'O', 'P', 'Q', 'R'), ('s', 't', 'u', 'v', 'w', 'x', 'S', 'T', 'U', 'V', 'W', 'X'), ('y', 'z', ' ', ' ', ' ', ' ', 'Y', 'Z', '0', '1', '2', '3'), (' ', ' ', ' ', ' ', ' ', ' ', '4', '5', '6', '7', '8', '9'));
var EndAddr: Integer; CurIn, CurOut: ^Char; tmp: string; StartTime, EndTime, Freq: Int64; i: Integer; begin QueryPerformanceFrequency(Freq); QueryPerformanceCounter(StartTime);
for i := 1 to 1000 do begin tmp := memInput.Text; EndAddr := Integer(Pointer(tmp)) + Length(tmp); CurIn := Pointer(tmp); CurOut := CurIn; while Integer(CurIn) < EndAddr do begin if not (CurIn^ in ['a'..'z', 'A'..'Z']) then begin CurOut^ := CurIn^; Inc(CurIn); end else begin CurOut^ := CharTable[CharList1[Ord(CurIn^)]] [CharList2[Ord(Char(Pointer(Integer(CurIn) + 1)^))]]; Inc(CurIn, 2); end; Inc(CurOut); end; SetLength(tmp, Integer(CurOut) - Integer(Pointer(tmp))); memOutput.Text := tmp; end;
QueryPerformanceCounter(EndTime); ShowMessage(FormatFloat('0.000', (EndTime - StartTime) / Freq) + ' ms'); |
Dieser Quelltext liegt auf dem Speed Knopf unterhalb des Startbuttons (Anhang aktualisiert).
// EDIT2:
Post korrigiert, ich hatte noch einen Fehler gemacht in der ersten Version.
// EDIT3:
Offenbar wird das Memo gar nicht aktualisiert, da es immer den selben Text bekommt. Ich habe das BeginUpdate..EndUpdate herausgenommen, weil
Yogu sowas auch nicht drin hatte, aber ich glaube mit diesen beiden Zeilen wäre das Ergebnis realistischer. Dafür 10 mal so groß ca.
BenBE - Fr 28.11.08 15:32
Hab jänicke's Programm mal kurz entkernt und hab da mal meine ASM-Variante getestt mit:
Mein Rechner kommt auf 120ms; die Original-Version waren 140ms. Hab nen AMD Athlon64 X2 4000+.
Hier mal meine Routine:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143:
| procedure TfrmMain.btnSpeedClick(Sender: TObject); const CharList: array[Char] of Byte = ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 2, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
CharTable: array[0..35] of Char = ( 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' );
var EndAddr: Integer; CurIn, CurOut: ^Char; tmp: string; StartTime, EndTime, Freq: Int64; i: Integer; begin QueryPerformanceFrequency(Freq); QueryPerformanceCounter(StartTime);
for i := 1 to 1000 do begin tmp := memInput.Text; asm PUSH ESI PUSH EDI PUSH EBX
MOV ESI, DWORD PTR [tmp] MOV EDI, ESI MOV ECX, DWORD PTR [ESI-4]
MOV EBX, OFFSET CharList
TEST ECX, ECX JMP @@CheckLoop
@@StartLoop: LODSB MOV AH, AL
XLATB
OR AL, AL JNZ @@Got1
MOV AL, AH STOSB JMP @@ECycle
@@Got1: MOV EDX, EAX LODSB MOV AH, AL
DEC ECX
XLATB OR AL, AL JNZ @@Got2
MOV AL, DH STOSB MOV AL, AH STOSB JMP @@ECycle
@@Got2: DEC DL AND EDX, 7 LEA EDX, DWORD PTR [EDX+EDX*2] ADD EDX, EDX
MOV EBX, OFFSET CharTable ADD AL, DL DEC AL XLATB MOV EBX, OFFSET CharList
AND AH, $20 ADD AL, AH
STOSB
@@ECycle: DEC ECX @@CheckLoop: JNZ @@StartLoop
MOV DWORD PTR [CurOut], EDI
POP EBX POP EDI POP ESI end; SetLength(tmp, Integer(CurOut) - Integer(Pointer(tmp))); memOutput.Text := tmp; end;
QueryPerformanceCounter(EndTime); ShowMessage(FormatFloat('0.000', (EndTime - StartTime) / Freq) + ' ms'); end; |
jaenicke - Fr 28.11.08 16:51
Bei mir kommt deine Version auf 0,061ms und meine auf 0,044ms (3700+ Single Core), auf dem anderen PC (6000+ X2) sinds 0,049ms bei dir und 0,032ms bei mir. Weshalb das bei dir so viele ms sind weiß ich nicht. :nixweiss:
freedy - Fr 28.11.08 17:32
Also, ich muss schon sagen, dass ich mächtig verwirrt bin. 0,0xx ms? Habt ihr überall vergessen mit 1000 zu multiplizieren? QueryPerformanceFrequency wird ja in Sekunden zurückgegeben.
Somit liegt mein Algo immernoch bei 16ms für die Dekodierung des Anfangsartikels. BenBes habe ich bei mir mit 44ms im Schnitt gemessen. Jaenickes gibt mir einen Fehler bei der Bereichsüberprüfung.
GTA-Place - Fr 28.11.08 17:41
freedy hat folgendes geschrieben : |
QueryPerformanceFrequency wird ja in Sekunden zurückgegeben. |
Ja, da wird tatsächlich vergessen mit 1000 zu multiplizieren. 0,034 heißt in dem Fall 34ms.
jaenicke - Fr 28.11.08 17:42
freedy hat folgendes geschrieben : |
Jaenickes gibt mir einen Fehler bei der Bereichsüberprüfung. |
Bei der kompilierten Exe? Die funktioniert bei mir nämlich eigentlich einwandfrei, kompiliert habe ich mit dem BDS 2006.
jaenicke - Fr 28.11.08 18:26
Also ich weiß nicht bei welcher Variante das fehlen soll, bei meiner jedenfalls führe ich 1000 Durchläufe durch, warum sollte ich also erst mit 1000 multiplizieren und dann wieder durch 1000 teilen, weil es ja um einen Durchlauf geht.
Ich habe das lieber gleich aus der Rechnung herausgekürzt.
freedy - Fr 28.11.08 18:50
jaenicke hat folgendes geschrieben : |
freedy hat folgendes geschrieben : | Jaenickes gibt mir einen Fehler bei der Bereichsüberprüfung. | Bei der kompilierten Exe? Die funktioniert bei mir nämlich eigentlich einwandfrei, kompiliert habe ich mit dem BDS 2006. |
Ich habe deinen Quellcode in meine Anwendung eingebaut. Ich mache keine 1000 Durchläufe. Maßstab ist für mich der erste Artikel. Die Sourcen liegen nun leider auf meinem Firmenrechner. Bin morgen aber nochmal dort.
Der Fehler trat auf jeden Fall hier auf:
Delphi-Quelltext
1:
| CurOut^ := CharTable[CharList1[Ord(CurIn^)]] |
Grüße
jaenicke - Fr 28.11.08 19:07
Ich weiß warum glaube ich: irgendwo ist der Code auseinandergerissen. Bei mir war beim ersten Einfügen "GAGdAaFxGd" in
"GAG
dAaFxGd"
aufgeteilt. Und dann funktioniert das nicht. Beim Geschwindigkeitstest habe ich derartige Fehler nicht beachtet, weil ich von einem gültigen Code ausgehe ohne Zeilenumbrüche mitten in einem Wort ;-).
der organist - Mo 01.12.08 13:35
Paranuss 3, wo ist Lippstadt?
AdrianK - Mi 03.12.08 14:59
Endlich! Ich hab Gewinnspiel Nr1 gelöst... :) war eigentlich ganz einfach.... aber ich glaube ohne den Tipp, dass die Katze programmiert, hätte ichs nicht geschafft :)
Robert.Wachtel - Mo 08.12.08 02:24
Übrigens: Wie alle Jahre wieder fordert Ihr die Mitspieler auf, die meines Wissens mittlerweile unter Artenschutz stehenden privaten Nachrichten zu erhalsen... :mrgreen:
Zitat: |
Über das Ergebnis der Auslosung des Gewinnspiels erhälst Du eine private Nachricht. |
Jann1k - Mo 08.12.08 12:45
Juhuu, Nr.2 hab ich geschafft (jedenfalls den Speicher zu entschlüsseln) jetzt gehts ans rätseln...
Robert.Wachtel - Mo 08.12.08 12:58
Jann1k hat folgendes geschrieben : |
Juhuu, Nr.2 hab ich geschafft (jedenfalls den Speicher zu entschlüsseln) [...] |
Das war im Gegensatz zum 1. Rätsel schon fast zu einfach...
Zitat: |
jetzt gehts ans rätseln... |
...und das war noch einfacher... :mrgreen:
Yogu - Mo 08.12.08 19:12
Hallo,
Das zweite Rätsel war ja ein Kinderspiel im Gegensatz zum ersten! Schon mein dritter Versuch klappte ohne Probleme. :D (*snip*)
Vielleicht habe ich ja bei diesem Gewinnspiel mehr Glück, und gewinne die nette Tasse :D
Grüße,
Yogu
Moderiert von Narses: Tipp entfernt
GTA-Place - Mo 08.12.08 22:33
Glückwunsch den Gewinnern, nächstes mal bin ich wieder dran :lol:
Wolle92 - Mo 08.12.08 23:21
Wolle will auch mal was gewinnen... :bawling: :bawling: :bawling:
GTA-Place - Mo 08.12.08 23:31
:party: Sohohohoho... Trommelwirbel... 1.000 - 2.000 - 3.000 - 4.000 - 5.000 Beiträge und 200 Threads im Delphi-Forum! Das gibt eine Jubiläumsparty :party:
:dunce: - :beer: :beer: - :dance: :dance2: - :beer: :beer: - :dunce:
Normal folgt jetzt so eine Dankesrede, aber die lass ich mal aus :mrgreen:
:dunce: :dunce: :wink2: :party: EE ich will (k)ein Kind von Dir! :D
(jegliche Überschneidungen mit meinem 18. Geburtstag sind rein zufällig und unbeabsichtigt...)
So - Back to Topic - @Wolle: Wenn du mal, so wie ich, bei fast 60 Gewinnspielen teilgenommen hast, dann gewinnste sicherlich :mrgreen:
Regan - Mo 08.12.08 23:32
Herzlichen Glückwunsch
GTA-Place zum 5000sten Post :!: :!: :!: :party: :party:
@Wolle: Du brauchst halt immer Glück im Leben. Manche haben es in der Liebe.
Wolle92 - Mo 08.12.08 23:34
Ach, jetzt seh ich erst, das GTA-Place Geburtstag hat... Und dazu noch den 18.!
Und am selben Tag 5000 Posts...
Ich finde, du solltest die EE einladen am Wochenende...
Und dann gibbet Party!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!