示例#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);
    }
示例#2
0
    public string[] GetFiles(ref Cm3d2Dll.FSDATA fsdata)
    {
        var listdata = new LISTDATA();

        DLL_FileSystem_CreateList(ref fsdata, "", 3, ref listdata);

        var filenames = new string[listdata.size];

        for (int i = 0; i < listdata.size; i++)
        {
            string str = "";
            DLL_FileSystem_AtList(ref listdata, i, ref str);
            filenames[i] = str;
        }
        DLL_FileSystem_DeleteList(ref listdata);
        return(filenames);
    }
示例#3
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);
    }