Object String question

Started by Frank Brübach, March 06, 2024, 06:54:54 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Frank Brübach

Good morning

Back from Hospital surgery all was going fine Had a Glas sherd in my left Hand but there are very good Docs Here from africa :-)

I have a question to my example how to Set a String with this Kind of Method

Thanks nice wednesday Frank

'
' how to set here a method with string output?
'
def CreateAvengersObject
=====================
  %1 * %2
  @%2=getmemory sizeof %1
  %2.create
end def

def DestroyAvengersObject
======================
  %1.destroy
  freememory @%1
  @%1=0
end def

'------------------------ //
function redims(sys a,n,s)
  n*=s
  sys m=getmemory n
  long le at (a-4)
  if le>n
    le=n
  end if
  copy m,a,le
  frees a
  return m
end function
  '

class classThor
===============
  '
  long *a,b,c
  'long a,b,c ' works too ;)
 
  method create()
  @a=getmemory 100*sizeof long
  end method
'
  method destroy()
  freememory @a
  end method
   
  method redimsA(k as long)
  @a=redims(@a,k,sizeof long)
  end method
 
  method redimsB(k as long)
  @b=redims(@b,k,sizeof long)
  end method
 
  ' new added
  method redimsC(st as string)
  '@b=redims(@b,st,sizeof string)
  end method
 
  method p1_interfaceA() as long
  return b
  end method
 
  ' new added
  method p1_interfaceB() as long
  return b
  end method

  ' new added
  method p1_interfaceC() as string
  return b
  end method


  method p1_interfaceA(x as long)
  b=x
  end method
 
  ' new added
  method p1_interfaceB(x as long)
  b=x
  end method
  '
  ' new added
  method p1_interfaceC(st as string)
  b=st
  end method


  method redims_interfaceA(k as long)
  redimsA k
  end method

  ' new added
  method redims_interfaceB(k as long)
  redimsB k
  end method

  ' new added
  method redims_interfaceC(st as string)
  redimsC st
  end method

end class

function Avengers() as long
==========================
  '
  CreateAvengersObject ClassThor obj

'1) ------------------------//
  '
  obj.redims_interfaceA 100
  '
  '
  obj.p1_interfaceA=42
  '
  '
  print obj.p1_interfaceA ' result 42 ok
 
'2) ------------------------//
obj.redims_interfaceB 200

   obj.p1_interfaceB=2024

   print obj.p1_interfaceB '2024 result ok

'3) ------------------------//
obj.redims_interfaceC 300

   obj.p1_interfaceC ="I like the Avengers movies"

   print obj.p1_interfaceC ' result 0 not ok ;)
  '
 
END FUNCTION

Avengers()

Charles Pegge

#1
Hi Frank, I wish you and your hand a speedy recovery.

This is a skeleton OOP with some strings and with the standard constructor and destructor methods:

As you can see, it is really simple to set up

--------------
class AnObject
==============

int a,b,c,d
float x,y,z
bstring s,t

method constructor(string sp="helo",tp="bye")
=============================================
s=sp
t=tp
print "construct!"
end method

method destructor()
===================
'destroy bstrings
del s
del t
print "destruct!"
end method

method act() as string
======================
return s ",  " t
end method

end class

'TEST
'new AnObject aa( )
new AnObject aa("Hello","Goodbye")
'aa.t="Au revoir"
print aa.act
del aa

Frank Brübach

Thanks Charles for healthy wishes such Thing will Take some weeks to mend and I am playing guitar too thats a Problem to Stop all exercises ;)

Thanks for your little example helps too for my construct with Avengers all is working fine now

Oxygen
'
' - oxygen basic, 06-03-2024 by frank bruebach
' - how to set a method with string it's running now
'
def CreateAvengersObject
=====================
  %1 * %2
  @%2=getmemory sizeof %1
  %2.create
end def

def DestroyAvengersObject
======================
  %1.destroy
  freememory @%1
  @%1=0
end def

'------------------------ //
function redims(sys a,n,s)
  n*=s
  sys m=getmemory n
  long le at (a-4)
  if le>n
    le=n
  end if
  copy m,a,le
  frees a
  return m
end function
  '

class classThor
===============
  '
  long *a,b,c
  'long a,b,c ' works too ;)
  bstring s,st,t

  method create()
  @a=getmemory 100*sizeof long
  end method
'
  method destroy()
  freememory @a
  end method
   
  method redimsA(k as long)
  @a=redims(@a,k,sizeof long)
  end method
 
  method redimsB(k as long)
  @b=redims(@b,k,sizeof long)
  end method
 
  ' new added
  method redimsC(st as string)
  @t=redims(@t,st,sizeof string)
  return s ",  " t
  end method

  method p1_interfaceA() as long
  return b
  end method
 
  ' new added
  method p1_interfaceB() as long
  return b
  end method

  ' new added
  method p1_interfaceC() as string
  s="Avengers are my heroes"
  return s ",  " t
  end method


  method p1_interfaceA(x as long)
  b=x
  end method
 
  ' new added
  method p1_interfaceB(x as long)
  b=x
  end method
  '
  ' new added as string ------------ //
  method p1_interfaceC(st as string)
  t=st
  s="Avengers are my heroes"
  return s ",  " t
  end method

  method redims_interfaceA(k as long)
  redimsA k
  end method

  ' new added
  method redims_interfaceB(k as long)
  redimsB k
  end method

  ' new added
  method redims_interfaceC(st as string)
  redimsC st
  end method

end class

'---------------------------
function Avengers() as long
============================
  '
  CreateAvengersObject ClassThor obj

'1) ------------------------//
  '
  obj.redims_interfaceA 100
  '
  obj.p1_interfaceA=42
  '
  print obj.p1_interfaceA ' result 42 ok
 
'2) ------------------------//

   obj.redims_interfaceB 200

   obj.p1_interfaceB=2024

   print obj.p1_interfaceB '2024 result ok

'3) ------------------------//

obj.redims_interfaceC 300

   obj.p1_interfaceC ="I like the Avengers movies"
   'result: ok :-) 'Avengers are my heroes, I like the Avengers movies
   print obj.p1_interfaceC
 
END FUNCTION

Avengers()