Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Реализация структуры хранения


Автор: Dino99rus 23.9.2008, 19:28
Суть такая.
Код

struct Jurnal
        {
            public string name;
            public Image[] masPic;
            public string[] pathPic;
        }
Jurnal[] masJurnal;
..............................
masJurnal = new Jurnal[ReadCoutCharter(sr)];
int i = 0;
while (!sr.EndOfStream)
 {
 masJurnal[i].name = ReadNameCharter(sr);  
 masJurnal[i].pathPic = ReadPathPic(sr);    
 masJurnal[i].masPic = new Image[masJurnal[i].pathPic.Length];

for (int j = 0; j < masJurnal[i].pathPic.Length - 1; j++)
{
try
{
 masJurnal[i].masPic[j] = Image.FromFile(masJurnal[i].pathPic[j]);                                    
}
catch
{
          MessageBox.Show("Не найден файл: \r" + masJurnal[i].pathPic[j],"", MessageBoxButtons.OK, MessageBoxIcon.Error);
          return;
 }
}
........................................


Первый вариант не подходит, т.к. в дальнейшем предусматриваю добавления новых элементов, удаление и т.п.. Все завязано на размерности массива. Можно написать доп. методы и там менять размерности массива при добавлении и удалении. Но хочется чтобы было проще.

Код

struct Jurnal
        {
            public string name;
            public List<Image> masPic;
            public List<string> pathPic;
        }        
        List<Jurnal> masJurnal; 

private void Add(string nameCharter, string pathPic)
        {
            Jurnal a = new Jurnal();
            a.masPic = new List<Image>();
            a.pathPic = new List<string>();
            masJurnal = new List<Jurnal>();
            a.name = nameCharter;
            for (int i = 0; i < 5; i++)
            {                
                a.pathPic.Add(pathPic);
                a.masPic.Add(Image.FromFile(pathPic));               
            }
            masJurnal.Add(a);           
        }

Тут бред по моемуsmile. Но при каждом добавлении приходиться создавать новый объект структуры. Да и доступ затруднителен будет.

Может, кто посоветуют как создать нормальную структуру хранения. Можно даже не через структуру.

Автор: Wizard_Memfis 24.9.2008, 10:30
А чем принципиально не нравится доступ к List?Непонятно

Автор: MasterOfCode 24.9.2008, 11:22
Код

class Jurnal
{
    public List<string> name;
    public List<Image> masPic;
    public List<string> pathPic;
    public Jurnal()
    {
        name = new List<string>();
        masPic= new List<Image>();
        pathPic= new List<string>();
    }
    public void Add(string pName, string pMasPic, string pPathPic)
    {
        name.Add(pName);
        masPic.Add(Image.FromFile(pathPic));
        pathPic.Add(pPathPic);
    }
}


дальше думаю догадываетесь как использовать? smile

P.S. Код писал от руки, могут быть ошибки.

Автор: Dino99rus 25.9.2008, 21:34
Цитата(Wizard_Memfis @  24.9.2008,  10:30 Найти цитируемый пост)
А чем принципиально не нравится доступ к List?Непонятно 

я был не правsmile

MasterOfCode, 
 спасибо, классом удобней.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)