Exemple #1
0
        private IodineObject write(VirtualMachine vm, IodineObject self, IodineObject[] args)
        {
            if (Closed)
            {
                vm.RaiseException(new IodineIOException("Stream has been closed!"));
                return(null);
            }

            if (!CanWrite)
            {
                vm.RaiseException(new IodineIOException("Can not write to stream!"));
                return(null);
            }

            foreach (IodineObject obj in args)
            {
                if (obj is IodineString)
                {
                    write(obj.ToString());
                }
                else if (obj is IodineBytes)
                {
                    IodineBytes arr = obj as IodineBytes;
                    File.Write(arr.Value, 0, arr.Value.Length);
                }
                else if (obj is IodineInteger)
                {
                    IodineInteger intVal = obj as IodineInteger;
                    write((byte)intVal.Value);
                }
                else if (obj is IodineByteArray)
                {
                    IodineByteArray arr = obj as IodineByteArray;
                    File.Write(arr.Array, 0, arr.Array.Length);
                }
                else
                {
                    vm.RaiseException(new IodineTypeException(""));
                }
            }
            return(null);
        }
Exemple #2
0
        private IodineObject writeBytes(VirtualMachine vm, IodineObject self, IodineObject[] args)
        {
            if (Closed)
            {
                vm.RaiseException(new IodineIOException("Stream has been closed!"));
                return(null);
            }

            if (!CanWrite)
            {
                vm.RaiseException(new IodineIOException("Can not write to stream!"));
                return(null);
            }

            IodineByteArray arr = args [0] as IodineByteArray;

            File.Write(arr.Array, 0, arr.Array.Length);

            return(null);
        }