Buon giorno ,premetto che non sono espertissimo ma mi arrangio un po con il C# , dovrei leggere un memory mapped file
che ho creato il codice che crea il memory mapped file e' il seguente
namespace NinjaTrader.NinjaScript.Indicators
{
public class Aziocane : Indicator
{
MemoryMappedFile file;
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = @"Enter the description for your new custom Indicator here.";
Name = "Aziocane";
Calculate = Calculate.OnBarClose;
IsOverlay = false;
DisplayInDataBox = true;
DrawOnPricePanel = true;
DrawHorizontalGridLines = true;
DrawVerticalGridLines = true;
PaintPriceMarkers = true;
ScaleJustification = NinjaTrader.Gui.Chart.ScaleJustification.Right;
//Disable this property if your indicator requires custom values that cumulate with each new market data event.
//See Help Guide for additional information.
IsSuspendedWhileInactive = true;
}
else if (State == State.Configure)
{
file = MemoryMappedFile.CreateOrOpen("Test", 1000, MemoryMappedFileAccess.ReadWrite);
}
else if (State == State.Terminated)
{
file.Dispose();
}
}
protected override void OnBarUpdate()
{
//Add your custom indicator logic here.
byte[] data = ASCIIEncoding.ASCII.GetBytes("35;2020.06.26 10.00.01;ASK;1,12445;1");
MemoryMappedViewAccessor accessor = file.CreateViewAccessor();
accessor.Write(54, (ushort)data.Length);
accessor.WriteArray(54 + 2, data, 0, data.Length);
}
}
}
il codice che va a leggere il memomory maped file e' il seguente
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO.MemoryMappedFiles;
namespace csharpmapmem2
{
class Program
{
static void Main()
{
MemoryMappedFile mmf = MemoryMappedFile.CreateOrOpen("Test", 1000);
MemoryMappedViewAccessor accessor = mmf.CreateViewAccessor();
ushort Size = accessor.ReadUInt16(54);
byte[] Buffer = new byte[Size];
accessor.ReadArray(54 + 2, Buffer, 0, Buffer.Length);
Console.WriteLine(ASCIIEncoding.ASCII.GetString(Buffer));
accessor.Dispose();
mmf.Dispose();
}
}
}
il problema e' che invece ritornare la stringa "35;2020.06.26 10.00.01;ASK;1,12445;1" , mi ritorna un numero , credo sial offset ?
c'e' qualcuno che puo' darmi una manina ?
grazie in anticipo a tutti