Re: StdOut to StdErr
Verfasst: 26.01.2022 15:08
Vorsicht! "MemorySize()" funktioniert nur mit Speicherbereichen, die du mit "AllocateMemory()" alloziert hast, nicht mit beliebigen Pointern.
Code: Alles auswählen
#size = 100
Procedure temp_heap()
Protected *mem = AllocateMemory(#size)
PokeS(*mem, "Hello World")
Debug PeekS(*mem)
FreeMemory(*mem)
EndProcedure
Structure temp_mem
b.b[#size]
EndStructure
Global _global_mem.temp_mem
Procedure temp_global()
Debug "Old value: " + PeekS(_global_mem)
PokeS(_global_mem, "Hello World")
Debug PeekS(_global_mem)
EndProcedure
Procedure temp_stack()
Protected mem.temp_mem
PokeS(mem, "Hello World")
Debug PeekS(mem)
EndProcedure
Procedure temp_static()
Static mem.temp_mem
Debug "Old value: " + PeekS(mem)
PokeS(mem, "Hello World")
Debug PeekS(mem)
EndProcedure
Threaded _threadsafe_mem.temp_mem
Procedure temp_threadsafe()
Debug "Old value: " + PeekS(_threadsafe_mem)
PokeS(_threadsafe_mem, "Hello World")
Debug PeekS(_threadsafe_mem)
EndProcedure
Debug "## temp_heap"
temp_heap()
Debug ""
Debug "## temp_global"
temp_global()
temp_global()
Debug ""
Debug "## temp_stack"
temp_stack()
Debug ""
Debug "## temp_static"
temp_static()
temp_static()
Debug ""
Debug "## temp_threadsafe"
temp_threadsafe()
temp_threadsafe()
Code: Alles auswählen
Procedure.s Termi_inputbox(*this.termi_t, title.s, text.s, height.i, width.i, init.s="", options.s="")
Protected exit.s, prog.i
Protected *pstr, *modus
Protected *pout.character, plen.i
*pstr = UTF8(#DIALOG + " " + UnescapeString(options) + ~" --clear --title \"" + title + ~"\" --inputbox \"" + text + ~"\" " + Str(height) + " " + Str(width) + " " + UnescapeString(init) + " 3>&1 1>&2 2>&3")
*modus = UTF8("r")
If *this\run
prog = popen_(*pstr, *modus)
If( prog <> #Null )
getline_(@*pout, @plen, prog)
EndIf
pclose_(prog)
exit = PeekS(*pout, #PB_Any, #PB_UTF8)
FreeMemory(*pstr):FreeMemory(*modus)
ProcedureReturn exit
Else
ProcedureReturn "-1"
EndIf
EndProcedure