Servus, vielleicht wäre es ganz hilfreich wenn du uns mal ein wenig erläuterst was ihr genau im Unterricht macht und weshalb ihr diese Aufgabe bekommen habt. Euer Lehrer wird doch sicherlich die Aufgabe etwas durchdacht haben oder nicht?
Beiträge von Yjuq
-
-
Dann bin ich raus. Auf Win 7 64 Bit läuft jedenfalls nur die 64 Bit Version der DLL. Ich kann dir allerdings soviel sagen dass der Fehler bei der DLL/UDF liegt. Da kannst du so gar nichts machen. Kannst dir aber selber eine Prozedur schreiben die die gleiche Funktionalität erfüllt.
-
Soa, ich vermute mal du hast ein x64 System. Kurz gesagt, nimm die 64 Bit DLL und setze am Anfang des Skriptes #AutoIt3Wrapper_UseX64 = Y. Weshalb die 32 Bit DLL nicht funktioniert weiß ich leider nicht.
-
Lade mal deine ImageSearch.au3 mit dem Bild, Skript und DLL als ZIP-Archiv hoch.
Du hast dann vermutlich irgendeine fehlerhafte Datei. Am besten gleich noch die Quelle von dem du die ImageSearch bezogen hast angeben. :? -
Stimmt, jetzt hab ich mich wohl zum Affen gemacht.

Ich muss mich entschuldigen! Entschuldige bitte meine Unfähigkeit Beiträge richtig durchzulesen.Dann wird das Bild schlichtweg nicht gefunden. Du kannst mal versuchen mit der Toleranz ein wenig herum zu spielen. Vielleicht mal eine Error-Abfrage hinten einbauen und schau'n was es dir zurück gibt. Ansonsten wird aber keine Fehlermeldung in der SciTE angezeigt oder?
-
Um es nochmal zu wiederholen: *.au3 ist kein Bildformat...
Es wird zwar eingelesen, aber findet logischerweise nichts auf dem Bildschirm.
Wie denn auch? Und jetzt denk nochmal nach und pass genau auf was du in deinem nächsten Beitrag hier veröffentlichst.
Vielleicht schaffst du es ja dich nicht ganz zum Affen zu machen.
-
Zitat
... wollte mal die ImageSearch funktion ausprobieren ...
Warum? War dass das erste was du gefunden hast als du AutoIt und Bot in eine Suchanfrage gesteckt hast?ZitatIch habe übrigens mit absicht ' ' benutzt, da es auch in dem Include Ordner nicht funktioniert hat!
Nicht sonderlich überraschend...ZitatGenauso wie ich die ImageSearch.au3 an sich angepass habe: (@ScriptDir statt einfach nur "ImageSearchDLL.dll")
Hättest dir auch sparen können. Macht sowieso beides das Selbe.ZitatWas kann man da machen?
Bedauerlicherweise gar nichts. Die ImageSearch.au3 ist mittlerweile so veraltet dass sie nicht mehr mit der aktuellen Version kompatible ist. Deswegen würde ich dir empfehlen den Datenmüll schnellst möglich von deiner Festplatte zu löschen. Wenn du uns aber den nicht lauffähigen Code zur Verfügung stellen würdest, könnten wir ggf. nach einer Alternative für dich suchen. Wie klingt das? -
Schönen guten Abend!

Ich habe heute wieder mit der AutoItObject UDF herumgespielt und hatte das Bedürfnis einfach mal ein Objekt aus dem .NET Framework zu programmieren. Bei dieser UDF handelt es sich lediglich um eine Kopie (ich greife nicht wirklich auf das .NET Framework zu) der BitArray-Klasse. Ich habe diese Klasse bewusst gewählt da Sie mir als Übung recht einfach erschien und eben noch nicht via ObjCreate() ansprechbar ist. Diese Klasse ist dafür gedacht mit Booleschen Werten zu arbeiten und einzelne Bits in einem Array ansprechen zu können. Zwar ist meine Implementierung der Klasse nicht so schnell wie die Bit-Funktionen, ist aber von der Syntax und der Handhabung anders. Alternativ verlinke ich einfach mal zu meiner Bit.au3 da diese auch ganz gut in die Thematik passt.Insgesamt werden folgende Funktionalitäten unterstützt:
Code
Alles anzeigenKonstruktoren: BitArray(BitArray) BitArray(Boolean()) BitArray(Int32) BitArray(Int32, Boolean) Eigenschaften: Count Item Length Methoden: And Clone ToArray (original: CopyTo) Equals(Object) Get Not Or Set SetAll ObjType (original: ToString) XorWas welches Attribut, Eigenschaft oder Methode bewirkt ist in der oberen verlinkten Referenz nachzulesen. Habe mich bemüht alles genau so umzusetzen wie es dort beschrieben ist. Als Zusatz gibt es das Attribut $oBitArray.Error welches euch anzeigt ob die letzte Funktion fehlerhafte Eingaben entgegen nahm. Dieses Attribut ist Objekt bezogen und wird solange nicht überschrieben bis einer der Methoden aufgerufen wird. Bei irgendwelche fehlerhaften Eingaben wird dieses Attribut auf 1 gesetzt.
ToArray
Hier muss weder Array noch Index (anders als wie in der Referenz) übergeben werden. Es wird lediglich ein Abbild des BitArray als normales Array zurückgegeben.ObjType
Wird genau so verwendet wie in der Referenz angegeben. Einziger Unterschied ist jedoch, dass nicht „System.Collections.BitArray“ sondern „AutoItObject.Collections.BitArray“ zurückgegeben wird. Daher auch die veränderte Bezeichnung und die Umwandlung von einer Methode zu einem Attribut.Eigentlich dürfte die UDF soweit selbsterklärend sein. Mit der Referenz wird auch der Verwendungszweck schnell klar. Vielleicht kann diese ja jemand gebrauchen. Wenn nicht, auch nicht schlimm.

Falls Fragen oder Probleme auftauchen, ich stehe zur Stelle. Im Anhang findet ihr nochmals die oBitArray.au3 sowie die AutoItObject.au3 als ZIP Archiv. Falls jemand konkrete Wünsche hat dass ich mal ein paar .NET Framework Klassen als AutoIt Version übersetze, kann er / sie sich bei mir melden. Ansonsten viel Spaß!

oBitArray.au3
[autoit]; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
[/autoit] [autoit][/autoit] [autoit]#include-once
[/autoit] [autoit][/autoit] [autoit]
#include "AutoItObject.au3"_AutoItObject_Startup()
[/autoit] [autoit][/autoit] [autoit]; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
[/autoit] [autoit][/autoit] [autoit]Func _BitArray_Object($vValue, $bValue = Default)
[/autoit] [autoit][/autoit] [autoit]
If IsObj($vValue) And $vValue.ObjType = 'AutoItObject.Collections.BitArray' Then
Return $vValue.Clone()
ElseIf IsArray($vValue) And UBound($vValue, 0) = 1 Then
Local $bBool = True
Local $iIndexFor $iIndex = 0 To UBound($vValue) -1
[/autoit] [autoit][/autoit] [autoit]
$bBool = $bBool And IsBool($vValue[$iIndex])
NextIf $bBool Then
[/autoit] [autoit][/autoit] [autoit]
Local $oBitArray = _BitArray_Object(UBound($vValue))For $iIndex = 0 To $oBitArray.Count -1
[/autoit] [autoit][/autoit] [autoit]
$oBitArray.Set($iIndex, $vValue[$iIndex])
NextReturn $oBitArray
[/autoit] [autoit][/autoit] [autoit]
EndIf
ElseIf IsInt($vValue) And $vValue > 0 Then
Local $oBitArray = _BitArray_Class().Object$oBitArray.Length = $vValue
[/autoit] [autoit][/autoit] [autoit]
$oBitArray.SetAll(IsBool($bValue) ? $bValue : False)Return $oBitArray
[/autoit] [autoit][/autoit] [autoit]
EndIfReturn SetError(1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFuncFunc _BitArray_Class()
[/autoit] [autoit][/autoit] [autoit]
Local $oBitArray = _AutoItObject_Class()
Local $aArray[1]With $oBitArray
[/autoit] [autoit][/autoit] [autoit]
; Private Scope
.AddProperty('_BitArray_', $ELSCOPE_PRIVATE, $aArray)
; Attributes
.AddProperty('Count', $ELSCOPE_READONLY)
.AddMethod('Item', '__oBitArray_Item')
.AddMethod('Length', '__oBitArray_Length')
.AddProperty('ObjType', $ELSCOPE_READONLY, 'AutoItObject.Collections.BitArray')
; Methods
.AddMethod('And', '__oBitArray_And')
.AddMethod('Clone', '__oBitArray_Clone')
.AddMethod('Equals', '__oBitArray_Equals')
.AddMethod('Get', '__oBitArray_Get')
.AddMethod('Not', '__oBitArray_Not')
.AddMethod('Or', '__oBitArray_Or')
.AddMethod('Set', '__oBitArray_Set')
.AddMethod('SetAll', '__oBitArray_SetAll')
.AddMethod('ToArray', '__oBitArray_ToArray')
.AddMethod('Xor', '__oBitArray_Xor')
; Special
.AddProperty('Error', $ELSCOPE_READONLY)
.AddMethod('SetError', '__oBitArray_SetError', $ELSCOPE_PRIVATE)
.AddMethod('__default__', '__oBitArray_Default')
.AddEnum('__oBitArray_EnumNext', '__oBitArray_EnumReset')
EndWithReturn $oBitArray
[/autoit] [autoit][/autoit] [autoit]
EndFunc; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
[/autoit] [autoit][/autoit] [autoit]Func __oBitArray_Item($oSelf, $iIndex, $bValue = Default)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
If Not IsInt($iIndex) Or $iIndex < 0 Or $iIndex >= $oSelf.Count Then Return $oSelf.SetError(1)
If Not IsKeyword($bValue) Then $oSelf._BitArray_(($iIndex)) = $bValue Or False
Return $oSelf._BitArray_[$iIndex]
EndFuncFunc __oBitArray_Length($oSelf, $iValue = Default)
[/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
If Not IsKeyword($iValue) Then
If Not IsInt($iValue) Or $iValue < 1 Then Return $oSelf.SetError(1)
Local $aBitArray = $oSelf._BitArray_
Local $iFrom = $oSelf.Count
Local $iIndexReDim $aBitArray[$iValue]
[/autoit] [autoit][/autoit] [autoit]
$oSelf._BitArray_ = $aBitArray
$oSelf.Count = $iValueFor $iIndex = $iFrom To $iValue -1
[/autoit] [autoit][/autoit] [autoit]
$oSelf.Set($iIndex, False)
Next
EndIfReturn $oSelf.Count
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFuncFunc __oBitArray_And($oSelf, $oValue)
[/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
If Not IsObj($oValue) Or $oSelf.ObjType <> $oValue.ObjType Or $oSelf.Count <> $oValue.Count Then Return $oSelf.SetError(1)
Local $oBitArray = _BitArray_Object($oSelf.Count)
Local $iIndexFor $iIndex = 0 To $oSelf.Count -1
[/autoit] [autoit][/autoit] [autoit]
$oBitArray.Set($iIndex, $oSelf.Get($iIndex) And $oValue.Get($iIndex))
NextReturn $oBitArray
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFuncFunc __oBitArray_Clone($oSelf)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
Return _AutoItObject_Create($oSelf)
EndFuncFunc __oBitArray_Equals($oSelf, $oObj)
[/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
If Not IsObj($oObj) Then Return $oSelf.SetError(1)
If $oSelf.ObjType <> $oObj.ObjType Or $oSelf.Count <> $oObj.Count Then Return False
Local $iIndexFor $iIndex = 0 To $oSelf.Count -1
[/autoit] [autoit][/autoit] [autoit]
If $oSelf.Get($iIndex) <> $oObj.Get($iIndex) Then Return False
NextReturn True
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFuncFunc __oBitArray_Get($oSelf, $iIndex)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
If Not IsInt($iIndex) Or $iIndex < 0 Or $iIndex >= $oSelf.Count Then Return $oSelf.SetError(1)
Return $oSelf._BitArray_[$iIndex]
EndFuncFunc __oBitArray_Not($oSelf)
[/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
Local $iIndexFor $iIndex = 0 To $oSelf.Count -1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$oSelf.Set($iIndex, Not $oSelf.Get($iIndex))
Next
EndFuncFunc __oBitArray_Or($oSelf, $oValue)
[/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
If Not IsObj($oValue) Or $oSelf.ObjType <> $oValue.ObjType Or $oSelf.Count <> $oValue.Count Then Return $oSelf.SetError(1)
Local $oBitArray = _BitArray_Object($oSelf.Count)
Local $iIndexFor $iIndex = 0 To $oSelf.Count -1
[/autoit] [autoit][/autoit] [autoit]
$oBitArray.Set($iIndex, $oSelf.Get($iIndex) Or $oValue.Get($iIndex))
NextReturn $oBitArray
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFuncFunc __oBitArray_Set($oSelf, $iIndex, $bValue)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
If Not IsInt($iIndex) Or $iIndex < 0 Or $iIndex >= $oSelf.Count Or Not IsBool($bValue) Then Return $oSelf.SetError(1)
$oSelf._BitArray_(($iIndex)) = $bValue
EndFuncFunc __oBitArray_SetAll($oSelf, $bValue)
[/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
If Not IsBool($bValue) Then Return $oSelf.SetError(1)
Local $iIndexFor $iIndex = 0 To $oSelf.Count -1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$oSelf.Set($iIndex, $bValue)
Next
EndFuncFunc __oBitArray_ToArray($oSelf)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
Return $oSelf._BitArray_
EndFuncFunc __oBitArray_Xor($oSelf, $oValue)
[/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
If Not IsObj($oValue) Or $oSelf.ObjType <> $oValue.ObjType Or $oSelf.Count <> $oValue.Count Then Return $oSelf.SetError(1)
Local $oBitArray = _BitArray_Object($oSelf.Count)
Local $iIndexFor $iIndex = 0 To $oSelf.Count -1
[/autoit] [autoit][/autoit] [autoit]
$oBitArray.Set($iIndex, (Not $oSelf.Get($iIndex) And $oValue.Get($iIndex)) Or ($oSelf.Get($iIndex) And Not $oValue.Get($iIndex)))
NextReturn $oBitArray
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFuncFunc __oBitArray_SetError($oSelf, $iError)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$oSelf.Error = $iError
EndFuncFunc __oBitArray_Default($oSelf, $iIndex, $bValue = Default)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$oSelf.SetError(0)
If IsKeyword($bValue) Then Return $oSelf.Get($iIndex)
$oSelf.Set($iIndex, $bValue)
EndFuncFunc __oBitArray_EnumNext($oSelf, ByRef $iCounter)
[/autoit] [autoit][/autoit] [autoit]
If $iCounter = $oSelf.Count Then Return SetError(1)
Local $bRet = $oSelf.Get(($iCounter))$iCounter += 1
[/autoit] [autoit][/autoit] [autoit]Return $bRet
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFuncFunc __oBitArray_EnumReset($oSelf, ByRef $iCounter)
[/autoit] [autoit][/autoit] [autoit]
$iCounter = 0
Return True
EndFunc; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
[/autoit]PS: Beispiele schreibe ich noch irgendwann.

-

Sprich deiner Freundin ein großes Lob von mir aus!
Sehr gut getroffen.

-
Sorry, dann bin ich ratlos. Bei mir funktionieren beide CSV Dateien problemlos. Weshalb dir da die ImageSearch abschmiert ist mir ein Rätsel, eigentlich stehen die Dateien sowie das Bild was geladen wird doch in keinem Zusammenhang. Nicht mal die Bitmap wird im Skript via FileOpen geöffnet. Demnach ist das ein Ding der Unmöglichkeit, der Error kann und darf eigentlich nicht auftreten.

Ich kann dir allerdings anbieten mit dir einen anderen Lösungsansatz zu erarbeiten. ImageSearch ist sowieso nicht die optimale Lösung. Mehr kann ich nicht tun.

-
Servus Community!

Seit langem hatte ich nun endlich wieder meinen Bleistift in der Hand. Kaum war ich dabei irgendwelche Linien auf ein Blatt zu kritzeln, kam mir auch schon eine gute Idee. Hier im Forum kennen sich nur die wenigstens untereinander persönlich. Da es auch soweit kaum an Bilder zu finden gibt, bleibt uns nur die Fantasie. Also dachte ich mir, ich zeichne einfach mal einen User so wie ich ihn charakteristisch im Kopf habe. Mein erstes Opfer nennt sich hier Andy. Glückwunsch
Das Bild findet ihr im Anhang, es ist nur eine schnelle Kritzelei. Aber ich denke es zeigt ganz gut wie ich Andy durch dieses Forum hier sehe. Eben mal locker schreibt er coole Assemblercodes und bringt AutoIt damit richtig in Schwung! Von seinem Humor in vielen Beiträgen verpackt mal abgesehen. Ich denke da übertreibe ich nicht. Andy, du bist klasse!

Wenn ich die Zeit finde zeichne ich auch noch andere User hier aus meiner Sicht. Wer will kann ja selber mal seine Vorstellungen über User hier posten. Egal ob ihr's selber gezeichnet habt oder was passendes aus dem Internet sucht.

-
Sehr schöne Bildschirmschoner!

Läuft auch ohne Probleme, nur eins stört mich.
Ich kann die Dinger nach dem installieren unter C:\Windows\System32 nicht finden.
Werden die etwa beim verschieben versteckt? -
Mal eine Gegenfrage: Reden wir eigentlich immer noch über den if $result^ ERROR Fehler?
Das da ein paar Syntax Fehler in der ImageSearch drin sind mit der die Version 3.12.0.0 nicht ganz klar kommt weiß du oder?
Sobald du diese nämlich ausgebessert hast (lediglich paar Leerzeichen setzen) dürfte das eigentlich laufen.
Deswegen verstehe ich nicht wieso das bisher bei dir noch nicht funktioniert.Spoiler anzeigen
Code
Alles anzeigen"C:\Users\Cederik\Downloads\ImageSearch-temp2\ImageSearch-temp2\ImageSearch.au3"(30,46) : error: missing separator character before keyword. Func _ImageSearch($findImage,$resultPosition,ByRef ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\Cederik\Downloads\ImageSearch-temp2\ImageSearch-temp2\ImageSearch.au3"(34,73) : error: missing separator character before keyword. Func _ImageSearchArea($findImage,$resultPosition,$x1,$y1,$right,$bottom,ByRef ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\Cederik\Downloads\ImageSearch-temp2\ImageSearch-temp2\ImageSearch.au3"(78,63) : error: missing separator character before keyword. Func _WaitForImageSearch($findImage,$waitSecs,$resultPosition,ByRef ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\Cederik\Downloads\ImageSearch-temp2\ImageSearch-temp2\ImageSearch.au3"(113,64) : error: missing separator character before keyword. Func _WaitForImagesSearch($findImage,$waitSecs,$resultPosition,ByRef ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ C:\Users\Cederik\Downloads\ImageSearch-temp2\ImageSearch-temp2\unlink V2-temp.au3 - 4 error(s), 0 warning(s) !>13:15:32 AU3Check ended. Press F4 to jump to next error.rc:2 -
Ganz einfach, verschiebe das Control
und lass das Parent Window weg. -
Sorry dass ich nicht eher geantwortet habe. Also:
Du benutzt eine x64 DLL, aber AutoIt startet automatisch als x86 Anwendung.
Setzt du in die erste Zeile deines Skriptes ein #AutoIt3Wrapper_UseX64 = Y erhälst du den Error nicht mehr: -
Die Bewertung und Rundenverlauf wird in jedem Spiel anders sein. Deshalb kann ich dass nicht allgemein hier festlegen. Ich kann euch aber schon mal sagen wie es im kommenden Wettbewerb ablaufen wird:
Jeder AI bekommt für spezielle Aktionen (z.B. Sammeln von Items oder gewinnen eines Spieles) eine bestimmte Anzahl von Punkten. Nach X Spielrunden gewinnt die AI, die die meisten Punkte gesammelt hat und tritt nach dem K.O. System gegen die nächste AI an. Wie viele Punkte letztendlich für welche Aktion gesammelt werden können wird natürlich bekannt gemacht. Demnach liegt es an euch die AI so zu schreiben, dass ihr möglichst viele Punkte sammeln könnt. Am Ende werden nur noch 2 AI gegeneinander antreten und somit wird die beste ermittelt. Welche AI auf wen am Anfang trifft wird per Zufall ermittelt. Darauf nehme ich keinen Einfluss.
-
@oernzz
Nö, scheint nicht so. Zumindest wird die Variable nicht an ImageSearch im oberen Skript übergeben.@TE
Eigentlich dürfte es komplett irrelevant sein was für Dateien du öffnest. Daher wundere ich mich umso mehr wieso dein Skript nun läuft wenn du der Variable einfach einen festen String zuweist. Ich bin ratslos... Versuchen wir's mal anders.Welches Betriebssystem nutzt du?
Welche AutoIt Version nutzt du?Und am besten wäre noch ein komplettes Beispiel mit allen nötigen Daten zur Ausführung in einem ZIP-Archiv.
Sprich: Alle Bilder, sowie auch deine ImageSearch UDF + der DLL. Natürlich auch das Skript dazu... -
Ob du die Datenbank komprimierst und diese nochmals als lokale Datei entpackst ist deine Sache. Ich überprüfe lediglich die Dateigröße der Datei, welche die Datenbank enthält. Jedoch wird das eigentliche entpacken der Datenbank natürlich auch von deinen 3 Sekunden dazugerechnet. Pass auf dass du diese dabei dann nicht überschreitest.

Achja, ich erinnere nochmal: Für die Datenbank eine Datei ohne Dateiendung.

Du kannst gerne Internet abfragen nutzen, allerdings werde ich bei der Ausführung das Internet einfach abschalten. Bringt dir also nicht sonderlich viel.

>> Ich will nicht dass anderweitig von Irgendwo Daten abgerufen werden können, als von das was ihr mir als Einsendung schickt. Alles was ihr benötigt muss auch in der Einsendung direkt enthalten sein. Ich hoffe dass ich auch das nun klären konnte.
-
oernzz: CSV <> PNG, JPG, GIF

@TE: Zeig mal den ganzen Sourcecode...
Eigentlich dürfte es keine Kollision geben. -
Zuerst wollte ich auch alles über TCP steuern, aber da war mir der Aufwand noch wieder zu hoch. Erst mal schauen wie die ersten 3 Wettbewerbe laufen. Danach kann man nochmal über Regeln und Umsetzung diskutieren. Ich denke das System mit den Präfixen wird wohl ein Chaos vermeiden. Solange sich jeder daran hält habe ich bei der Auswertung keine Schwierigkeiten. Aber ich komme später vielleicht nochmal drauf zurück! Danke
