Seite 5 von 6
Verfasst: 15.08.2009 16:22
von Little John
Freak, vielen Dank für die Anwort.
freak hat geschrieben:In dem Beispiel hier würde man also einfach nach dem FindMapElement(nameCount(), name$) nur noch nameCount() benutzen um auf das gefundene Element zuzugreifen.
Super! Das ist praktisch, dass
FindMapElement() das aktuelle Element ändert. Allerdings funktioniert das nach
AddMapElement() nicht auf die gleiche Weise:
Code: Alles auswählen
NewMap nameCount()
For k = 0 To 9
name$ = people$(k)
If FindMapElement(nameCount(), name$) = 0
AddMapElement(nameCount(), name$)
; nameCount() = 1 ; geht nicht
nameCount(name$) = 1 ; geht
Else
nameCount() + 1
EndIf
Debug name$ + " #" + Str(nameCount())
Next
Ist es Absicht, dass nach
AddMapElement() das neu hinzugefügte Element
nicht automatisch das aktuelle ist?
Gruß, Little John
Verfasst: 15.08.2009 17:18
von LCD
freak hat geschrieben:LCD hat geschrieben:Mein Projekt hat Probleme mit Images. Manchmal werden sie nicht gezeichnet, manchmal ist es invalid memory access. Seltsam...
Benutzt du eventuell Plot/Point() außerhalb des Bildes ? Das darf man jetzt nicht mehr. (debugger check fehlt noch, kommt in beta2)
Nein, ich zeichne alles direkt in den Speicher rein mit PokeL, und kopiere dann alles in ein Image (Prozedur MemoryToImage), da es ca. 100 mal schneller als das alte Plot auf Image ist. Plot benutze ich daher überhaupt nicht mehr.
Das Problem tritt seltsamerweise nicht überall auf. Im Viewer vom Retro-X z.B. kann ich mir 4 Images anschauen, aber beim fünften bekomme ich Invalid Memory access. Die Image Library dürfte aber was haben, wahrscheinlich wegen dem Support von Alpha channel (was ich aber nicht benutze). Ich werde an der Sache jedenfalls dran bleiben.
Interessanterweise zeigt mir der Debugger beim neuesten JaPBE auch nur die wenigsten Images an.
Verfasst: 16.08.2009 08:35
von H.Brill
Mal eine Frage :
Wo kriegt ihr all die Infos über die neuen
Funktionen her ?
Außer dem Changelog hab ich nichts.
Wo bekomme ich Infos z.B. über die Map - library,
AddWindowsTimer(), EventTimer() und das
ShortcutGadget her ?
Verfasst: 16.08.2009 09:13
von Little John
H.Brill hat geschrieben:Mal eine Frage :
Wo kriegt ihr all die Infos über die neuen
Funktionen her ?
Aus den
Beispielprogrammen und dann durch ausprobieren.
Gruß, Little John
Verfasst: 16.08.2009 09:30
von H.Brill
Das finde ich eigentlich nicht so ideal.
Da könnten die Entwickler wenigstens
eine Textdatei, die so ähnlich aufgebaut
ist, wie die original Hilfedatei, mitschicken.
Die kann ja auch in english sein.
Das würde dem nicht so gewieften User
mehr bringen, als in den Quellcodes
zu stöbern.
Naja, irgendwie werde ich zu meinem
AHAA - Erlebnis auch kommen.
Verfasst: 16.08.2009 10:02
von PMTheQuick
Wieso kann ich bei AESEncode kurze Texte nicht codieren?
Code: Alles auswählen
*Buffer = AllocateMemory(10)
PokeS(*Buffer, "Hallo Welt")
*Encoded = AllocateMemory(10)
Key$ = "hi"
RandomSeed(Seed)
*InitializationVector = AllocateMemory(16)
For k = 0 To 15
PokeA(*InitializationVector+k, Random(255))
Next
AESEncoder(*Buffer, *Encoded, 10, @Key$, 128, *InitializationVector, #PB_Cipher_CBC)
Debug PeekS(*Buffer, 10)
Debug PeekS(*Encoded, 10)
AESDecoder(*Encoded, *Buffer, 10, @Key$, 128, *InitializationVector, #PB_Cipher_CBC)
Debug PeekS(*Buffer, 10)
Debug PeekS(*Encoded, 10)
Wenn ich beim Encoder 100 als Length hinschreib, dann funktioniert das ganze perfekt. Mit 10 allerdings nicht. Wo liegt das Problem? Wie kann ich dies umgehen?
Gruss
PMTheQuick
EDIT: Aha, nicht gewusst: Die Eingabezeichenfolge wird mit dem Advanced Encryption Standard Algorithmus 128 Bit (AES-128) verschlüsselt. Die Eingabelänge muß mindestens 16 oder ein Vielfaches von 16 betragen.
Doch wie kann ich nun beliebig lange Buffer codieren?
Verfasst: 16.08.2009 16:14
von Hyper
Hallo Freak,
danke vorweg! Immer wieder schön zu sehen, wie sich PB weiterentwickelt! Struktur kopieren und löschen find ich z.B. Klasse.
Schön wäre noch, wenn man ganze strukturierte Listen mit einem Befehl kopieren könnte...
Verfasst: 17.08.2009 12:31
von Pelagio
Joel hatte am 14.08
schon einmal die Frage/Feststellung gemacht, das bei CallFunktion der Debugger eine Fehlermeldung ausgibt.
Hier sagt der Debugger: "Zahl anstelle eines Strings erwartet" aber wie soll ich meinem DLL einen Prozessnamen übergeben, wenn ich nur Zahlen angeben kann?
Ich kann dies nur bestätigen. Bei PB4.31 funktioniert es, bei PB4.4 kommt die Fehlermeldung.
Verfasst: 17.08.2009 12:39
von milan1612
Pelagio hat geschrieben:Joel hatte am 14.08
schon einmal die Frage/Feststellung gemacht, das bei CallFunktion der Debugger eine Fehlermeldung ausgibt.
Hier sagt der Debugger: "Zahl anstelle eines Strings erwartet" aber wie soll ich meinem DLL einen Prozessnamen übergeben, wenn ich nur Zahlen angeben kann?
Ich kann dies nur bestätigen. Bei PB4.31 funktioniert es, bei PB4.4 kommt die Fehlermeldung.
Du kannst einfach vor den String ein @ setzen, dann wird die Addresse übergeben und die ist eine Zahl

Verfasst: 17.08.2009 12:40
von Thorium
Pelagio hat geschrieben:
Ich kann dies nur bestätigen. Bei PB4.31 funktioniert es, bei PB4.4 kommt die Fehlermeldung.
Ja, ist ja auch richtig das die Fehlermeldung ausgegeben wird. Siehe Changelog:
- Changed: Call(C)Function(Fast) parameters have been changed from 'Any' to 'Integer'.
Ist jetzt halt ein wenig umständlicher Strings zu übergeben.