Beispiel #1
0
    public string[,] GetCsv(ref Cm3d2Dll.FSDATA fsdata, string filename)
    {
        var csvParser = DLL_CSV_CreateCsvParser();
        var filedata  = new Cm3d2Dll.FILEDATA();

        DLL_FileSystem_GetFile(ref fsdata, filename, ref filedata);
        DLL_CSV_Open(csvParser, filedata.object_pointer);

        var w = DLL_CSV_GetMaxCellX(csvParser);
        var h = DLL_CSV_GetMaxCellY(csvParser);
        var a = new string[w, h];

        for (int y = 0; y < h; y++)
        {
            for (int x = 0; x < w; x++)
            {
                var buf = new byte[DLL_CSV_GetDataSizeBinary(csvParser, x, y)];
                DLL_CSV_GetCellAsBinary(csvParser, x, y, ref buf, buf.Length);
                a[x, y] = Encoding.GetEncoding(932).GetString(buf);
            }
        }

        DLL_File_CloseFile(ref filedata);
        DLL_CSV_DeleteCsvParser(csvParser);
        return(a);
    }
Beispiel #2
0
    public byte[] GetFile(ref Cm3d2Dll.FSDATA fsdata, string filename)
    {
        var filedata = new Cm3d2Dll.FILEDATA();

        DLL_FileSystem_GetFile(ref fsdata, filename, ref filedata);

        var b0   = DLL_File_IsValid(ref filedata);
        var size = DLL_File_GetSize(ref filedata);

        var      a           = new byte[size];
        GCHandle pinnedArray = GCHandle.Alloc(a, GCHandleType.Pinned);
        IntPtr   pointer     = pinnedArray.AddrOfPinnedObject();
        var      b1          = DLL_File_Read(ref filedata, pointer, size);

        pinnedArray.Free();

        DLL_File_CloseFile(ref filedata);
        return(a);
    }