Peek & Poke - ERLEDIGT

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Peek & Poke - ERLEDIGT

Beitrag von uweb »

Hi,

ich will Packet$ an Antwort$ anhängen, aber Antwort$ soll dabei nicht
größer als 64KB werden.

Ich weiß, daß PB 4.0 mehr kann.
Aber, zum Einen würde ich trotzdem gerne wissen wie es geht weil die
Situation zum Anderen jederzeit auch aus anderen Grunden auftreten
kann.

Danke im voraus !

Code: Alles auswählen

Antwort$="Antwort$"
Packet$="Packet$"
AntwortVoll=0
Repeat 
  If Len(Antwort$)+Len(Packet$) < 65536
    Antwort$ = Antwort$ + Packet$
  Else
    aLaenge=Len(Antwort$)
    *aEnde=@Antwort$+aLaenge
    *pAnfang=@Packet$
    For i = 1 To 65536-aLaenge
      b.b=PeekB(*pAnfang+i)
      PokeB(*aEnde+i,b.b)
    Next
    AntwortVoll=1
  EndIf
Until AntwortVoll
Debug Antwort$
edit :
Habe das Codefragment zu einem ganzen Programm vervollständigt.
Und, siehe da : Es läuft. >>> ERLEDIGT
Dann muß der Fehler (Invalid Memory Access) wo anderst liegen.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Hmm... wieso denn so umständlich ?

Code: Alles auswählen

Antwort$="Antwort$" 
Packet$="Packet$"
Antwort$ + left(Packet$, 65535 - len(Antwort$))
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Hmm... wieso denn so umständlich ?

Code: Alles auswählen

Antwort$="Antwort$" 
Packet$="Packet$"
Antwort$ = left( Antwort$ + Packet$ , 65535 )
Zuletzt geändert von Batze am 08.02.2006 15:37, insgesamt 1-mal geändert.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Batze hat geschrieben:

Code: Alles auswählen

Packet$ + left(Antwort$, 65535) 
Weil die Länge von Packet$ und Antwort$ zusammen nicht 65535
übersteigen darf.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Hatte ich auch gemerkt und deshalb den Beitrag schon wieder geändert. Du musst die 3 sek erwischt haben, wo das da stand. :freak:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Ausserdem hab ich bewusst nicht beide addiert und dann 65535 von Links genommen, weil ich mir nicht sicher bin, ob PB3.94 nicht abschmiert, wenn deine Stringsumme in Left() über 65535 Zeichen kommt.
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Ok, also in 3.94 dein Code; PB 4 meiner.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Beitrag von uweb »

Ich Danke euch allen.
Hmm... wieso denn so umständlich ?
Weil mich der Ehrgeiz gepackt hat.
Gestern hatte ich ich schon mal das "Peek & Poke - lange ist es her"-Problem.
Freud würde sagen : Mein Unterbewustsein hat gar keine andere Lösung zugelassen.
Antworten