Code: Alles auswählen
EnableExplicit
;getestet unter PB 5.62 Windows 10
Define *Mem
Structure PersDat
Name.s
Alter.i
*Beschreibung
EndStructure
Define Person.PersDat, TestText.s
Procedure STRINGtoMEM(StrVar.s)
;Speichert den String im Memory im Format Unicode
Protected *mem
If StrVar >""
*mem= AllocateMemory(StringByteLength(StrVar,#PB_Unicode))
MoveMemory(@StrVar, *mem,StringByteLength(StrVar,#PB_Unicode))
EndIf
Debug "STRINGtoMEM ergibt Size="+Str(StringByteLength(StrVar,#PB_Unicode))
ProcedureReturn *mem
EndProcedure
Procedure.s MEMtoSTRING(*mem)
Protected StrVar.s
If *mem
StrVar=PeekS(*mem,MemorySize(*mem),#PB_Unicode)
Else
StrVar=""
EndIf
Debug "MEMtoStr ergibt "+StrVar
ProcedureReturn StrVar
EndProcedure
TestText="mittlere Größe, blondes Haar"
;Variante 1
; *Mem=STRINGtoMEM(TestText)
; Debug MEMtoSTRING(*Mem)
;Variante 2
Person\Beschreibung=STRINGtoMEM(TestText)
Debug MEMtoSTRING(Person\Beschreibung)
STRINGtoMEM ergibt Size=56
MEMtoStr ergibt mittlere Größe, blondes Haar㨩㜳�
mittlere Größe, blondes Haar㨩㜳�