Français
Forum

FindBytes()-Routine

 
Salut,
mir ist aufgefallen, qui qui FindBytes-Befehl aucun Bytes avec
den Werten 01-15 trouver peux (ou bien Bytefolgen dans denen solche
Werte vorkommen). Gibts pour une Grund ou bien habe je là
quelque chose faux gemacht? je voudrais avec qui Routine qui Position
bestimmter Punkte ou bien Pixel-Areale dedans einer Bitmap chercher,
dabei venons obige Werte wahrscheinlich aussi avant. je
hab qui Routine avec einem Profan-Bereich# et einem
InitExtFX()-Array ausprobiert et aussi qui paramètre-
übergabe via Chr$(x) ou bien einem zweiten Array, avec gleichem
Ergebnis.
MfG
Dieter
 
20.04.2004  
 



Salut,

Frank ist im Moment im Urlaub (qui glückliche !) deswegen musst du vorerst avec mir vorlieb prendre ;) ou bien du wartest jusqu'à Frank wieder voilà.

de einem faute dans FindBytes c'est moi jusqu'à maintenant rien bewusst ! Poste doch la fois am besten cela Codestück, je guck la fois si je là quoi trouver peux.

Moritz
 
20.04.2004  
 



allô Moritz,
seulement aucun falsche Bescheidenheit, tu peux toi volontiers avec cela
beschäftigen .ici qui Code, qui auskommentierten Zeilen am
Ende hab je aussi probiert. si du cela Dispose memory# am
Anfang weglässt peux du qui Routine aussi la fois sur den Profan-
Bereich testen. qui partie-Hexdump ist une kleine Bitmap, avec Paint erstellt.
j'ai simple avec dem Hexeditor Bytefolgen reingeflickt et chercher laisser.
qui Bytefolge 128 7 128 sollte à Adresse $5D trouvé volonté,
funktioniert chez mir mais pas.
si on statt qui 7 à Adresse $5E mais une 8 mets et pour
128 8 128 cherchez, ensuite klappts wieder. ou bien versuch la fois z.B. à
Adresse $37 statt qui $10 quelque chose kleineres (ausser 8) trop mettons
et z.B. pour 16 5 32 trop chercher. chez Einzelbytes ist es genauso.
si quelque chose unklar son sollte, melde toi.
Dieter
KompilierenMarqueSéparation
Declare neu&,text$,such$,lenght&,breite&,höhe&,grösse&
Declare hdc1&,array1&,arrayadr1&
Declare memory#,bereich2#,pixpos&
Dim bereich2#,3
 $I Prospeed_Funktionen.inc
*** Profan Hauptprogramm
SetTrueColor 1
neu&=usedll("ProSpeed.dll")
rem
Window (%maxx/2-400),(%maxy/2-300)-800,600
Cls 0
*** Daten und Bitmaps laden und initieren
text$="12_17pixel.bmp"
rem
lenght&=@FileSize(text$)

If lenght&>0

    Dim memory#,lenght&
    ReadFileFast(addr(text$),memory#,0,lenght&)
    hdc1&=LoadExtMemory(memory#,lenght&)
    Dispose memory# Profan-Bereich

EndIf

array1&=InitExtFX(hdc1&)
rem Header auslesen
arrayadr1& = Long(array1&,40)
breite& = Long(array1&,4)
höhe& = Long(array1&,8)
grösse& = Long(array1&,20)
rem Suchparameter setzen + suchen
such$ = @Chr$(128)+@Chr$(7)+@Chr$(128)
pixpos& = FindBytes(arrayadr1&,0,grösse&,Addr(such$),3)
rem Ausgabe
Print lenght&,arrayadr1&,breite&,höhe&,grösse&
Print "Pos>";pixpos&
waitkey
pixpos& = @MemPos(memory#,0,such$)
string bereich2#,0= @Chr$(128)+@Chr$(0)+@Chr$(128)
byte bereich2#,0= 128
byte bereich2#,1= 1
byte bereich2#,2= 128
pixpos&=FindBytes(arrayadr1&,0,grösse&,Addr(such$),1)
pixpos&=FindBytes(arrayadr1&,0,grösse&,bereich2#,3)
00000000 42 4D 9A 02 00 00 00 00 00 00 36 00 00 00 28 00
00000010 00 00 0C 00 00 00 11 00 00 00 01 00 18 00 00 00
00000020 00 00 64 02 00 00 C4 0E 00 00 C4 0E 00 00 00 00
00000030 00 00 00 00 00 00 10 10 20 30 10 00 FF FF FF FF
00000040 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00000050 FF FF FF FF FF FF FF 00 00 00 10 02 10 80 07 80
00000060 FF FF ../../function-references/XProfan/ff/'>FF
 
20.04.2004  
 



So comment je cela maintenant verstanden hab, cherches du dans dem Array pour une Pixel qui den Farbwert @rgb(128,7,128) hat, ou bien ?

ensuite versteh je allerdings qui benutzung de @chr() zum zusammen mettons des Suchstrings pas, cet Funktion liefert dir doch Buchstaben zurück. dans deinen Suchstring steht ensuite €|€ ! peux on überhaupt avec einem String pour Bytefolgen chercher ? Hab jusqu'à maintenant à peine avec FindBytes gearbeitet, mais cela währ mir récente. Scheint mais wohl doch irgendwie trop marcher, comment du geschrieben la hâte

Moritz
 
20.04.2004  
 



Moritz,
es scheint pas irgendwie trop marcher, c'est völlig normal une Suchstring sur cet Weise trop generieren, anders pourrait
on oui bestimmte Steuerzeichencodes pas eintragen. qui Suchroutine wandelt den String oui wieder dans qui ANSI-Codezahlen
um et cherchez pour cette Zahlenwerten et pas pour Buchstaben. quoi qui Werte letztendlich aussagen ist irrelevant.
cela Suchbeispiel Frank aus qui prospeed-Aider pourrait on
so ou bien so eingeben:
such$ = Frank ou bien
such$ = @Chr$(70)+@Chr$(114)+@Chr$(97)+@Chr$(110)+@Chr$(107).
Ist beides même chose.
Incidemment habe je oui am Ende des Listings qui Suchcodes aussi avec dem byte bereich2#,x=y -Befehl
à une 2.Bereich transfert et avec cela (ergebnislos) gesucht.
j'ai deinen Einwand mais quand même überprüft et dabei
herausgefunden qui je aussi quelque chose schieflag.
qui FindBytes-Routine peux pas seulement Werte<15 pas trouver
mais stolpert sur Suchwerte qui pas glatt par 8
teilbar sommes (et encore quelques autre, z.B. la valeur 88). ca scheint plutôt sur un Problem dedans qui
Suchroutine hinzudeuten. cela obige Suchbeispiel z.B. funktioniert chez Je ne.

MfG
Dieter
 
20.04.2004  
 



Salut,

>>Die Suchroutine wandelt den String oui wieder dans qui ANSI Codezahlen um et cherchez pour cette Zahlenwerten et pas pour Buchstaben<<

Ahh, ok, cela wusst je pas, ensuite ergibts naturellement wieder Sinn ! mais pourquoi manche Werte pas erkannt volonté sais je aussi pas, solange vous sous 256 liegen dürft es oui aussi aucun Probleme donner. Muss irgendwie une Inkompabilität entre den Ansi marque et den payons son ou bien quelque chose comme, werds aussi la fois testen, hab im Moment mais wenig Zeit, deswegen wohl plutôt demain.

Moritz
 
20.04.2004  
 



Hi,

kurz la fois aus meinem Urlaub... )
FindBytes() funktioniert korrekt, comment cela untenstehende Beispiel beweist. comme Ergebnis wird 801 ausgegeben.
si du autre payons dans cela Beispiel übernimmst, wirst du aussi vite merken, cela deine Theorie avec den niedrigen payons et payons, qui par huit teilbar sommes, faux ist.
KompilierenMarqueSéparation
Declare neu&,x&,y&,z&,text$,bereich#,eingabe#
Dim bereich#,20001
Dim eingabe#,1024
*** Alle Dll-Funktionen einbinden
 $I Prospeed_Funktionen.inc
*** Profan Hauptprogramm
SetTrueColor 1
neu&=usedll("ProSpeed.dll")
WindowStyle 80
Window 0,0-800,600
Cls 0
Clear Eingabe#
String Eingabe#,0="120,128,7,128,124,125,126"
SetBytes(Bereich#,800,eingabe#)
text$=Chr$(128)+Chr$(7)+chr$(128)
x&=FindBytes(bereich#,0,20000,Addr(text$),3)
Print x&
WaitInput
freedll neu&
Dispose bereich#
Dispose eingabe#
FIN

comment la hâte du cela untere Hex-Array dans deinem Beispielcode car überhaupt erzeugt ? sommes cela Werte qui originalen Bitmap ? ou bien un abgespeichertes Byte-Array ?
tu dois savons, cela Windows qui Bitmaps comme Bytes dans einem Byte-Array avec leichten Variationen einsetzt, aus 128,7,128 wird alors léger 127,7,128, aussi allez qui Pixel-Reihenfolge dans einem Bytes-Array de unten à gauche unten pour droite dessus !
cela gilt es trop tenir compte de...
si je aus meinem Urlaub wieder zuhause suis (samedi), werde
je dein Beispiel la fois genauer testen.

Moritz: je hab super Wetter et chacun la quantité Amusement...

Salut, Frank
 
20.04.2004  
 



>>Du dois savons, cela Windows qui Bitmaps comme Bytes dans einem Byte-Array avec leichten Variationen einsetzt, aus 128,7,128 wird alors léger 127,7,128, aussi allez qui Pixel-Reihenfolge dans einem Bytes-Array de unten à gauche unten pour droite dessus !<<

cela wird cela Problem son ! Ha, olle Bill Gates hat la fois wieder schuld

Moritz
 
20.04.2004  
 



allô Frank,
tu as völlig droite, cela hat mir gedämmert comme je später cela Beispiel aus qui prospeed-Aider 1:1 übernommen habe
et la fois avec Getpixel() vom Screen gelesene données avec einem gespeicherten File verglichen habe. alors cela était mir oui völlig récente.
J'ai pensé toujours Farbwert ist Farbwert. qui Unterschiede sommes oui partiellement encore viel stärker comme dans deinem Beispiel.
Bleibt une Frage, laisser sich qui Unterschiede mathématique nachvollziehen, d.h. peux on sich puis sortir de
dass qui Abweichungen toujours juste ausfallen ou bien volonté qui Werte vom System sozusagen kreativ sur den digitalen pouce gepeilt?
merci incidemment pour deine schnelle Antwort, sogar aus dem Urlaub.
MfG
Dieter
 
20.04.2004  
 



hi,

byte-arrays verwaltet prospeed interne toujours dans 24 bit, windows incidemment aussi. chez qui change de 32 sur 24 bit passer arrêt cet kleiner faute... soweit je sais, peux cet verhalten im system irgendwo eingestellt volonté, sais mais pas oui c'est ca, wohin...

frank,
qui aus dem urlaub wieder voilà, mais malheureusement avec einer schultereckgelenkssprengung, bänderriss dans qui schulter ... prochain semaine hab je mon op..... doit maintenant avec à gauche écrivons et souris lenken...
 
20.04.2004  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

3.355 Views

Untitledvor 0 min.
H.Brill24.12.2016

Themeninformationen

cet Thema hat 1 participant:

unbekannt (10x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie