Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Реализация структуры хранения 
V
    Опции темы
Dino99rus
Дата 23.9.2008, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 10.1.2007

Репутация: 1
Всего: 2



Суть такая.
Код

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. Но при каждом добавлении приходиться создавать новый объект структуры. Да и доступ затруднителен будет.

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

PM MAIL   Вверх
Wizard_Memfis
Дата 24.9.2008, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 12.2.2007
Где: г. Донецк, Украин а

Репутация: 1
Всего: 4



А чем принципиально не нравится доступ к List?Непонятно
--------------------
www.binary-studio.com
PM MAIL WWW ICQ Skype   Вверх
MasterOfCode
Дата 24.9.2008, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

Репутация: 4
Всего: 27



Код

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. Код писал от руки, могут быть ошибки.


--------------------
user posted image
PM ICQ   Вверх
Dino99rus
Дата 25.9.2008, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 10.1.2007

Репутация: 1
Всего: 2



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

я был не правsmile

MasterOfCode, 
 спасибо, классом удобней.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0670 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.