IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Двусвязанный список
Lisher
сообщение Mar 2 2009, 17:45
Сообщение #1


Гость
*

Группа: Members
Сообщений: 49
Регистрация: 27.5.2005
Пользователь №: 617
Пол: Мужской



Вопрос таков: Уменя существует таблица TStringGrid и надо, чтобы ,используя линейный двусвязанный список, из этой таблицы информация сохранялась в файл


--------------------
То что нас не убивает делает нас сильнее.
Метал облагородит человека, так же как люди облагораживают метал.
Go to the top of the page
 
+Quote Post
Lisher
сообщение Mar 3 2009, 12:30
Сообщение #2


Гость
*

Группа: Members
Сообщений: 49
Регистрация: 27.5.2005
Пользователь №: 617
Пол: Мужской



Перевелись что ли программисты на нашем форуме?)


--------------------
То что нас не убивает делает нас сильнее.
Метал облагородит человека, так же как люди облагораживают метал.
Go to the top of the page
 
+Quote Post
Lost-One
сообщение Mar 4 2009, 11:14
Сообщение #3


Любопытный
***

Группа: Members
Сообщений: 176
Регистрация: 21.4.2005
Из: А вот тут вот..
Пользователь №: 79
Пол: Мужской



На чем пишешь ?
"...используя линейный двусвязанный список..."
Какая информация в StringGride ?
Как она там хранится (Описание полей).
В каком формате должен получится файл ?

ключевое слово struct должно помочь.

ЗЫ. Может быть уже есть какие-то идеи...
ЗЗЫ. Посмотри вот тут: http://algmet.narod.ru/theory_a4m/spiski/index.htm
Помоему очень наглядно.


--------------------
The Victory Favours Neither Righteus Nor The Wicked. It Favours The Prepared !
Go to the top of the page
 
+Quote Post
Lisher
сообщение Mar 4 2009, 12:17
Сообщение #4


Гость
*

Группа: Members
Сообщений: 49
Регистрация: 27.5.2005
Пользователь №: 617
Пол: Мужской




собственно так выгледит форма.Какой формат файла будет я думаю не принципиально, но где то читал что формат файла для StringGrid с расширением .GRD. А под описанием полей ты имеешь ввиду тип данных которые туда записывать надо?(если да то в ячейках фамилия видимо string а в остальных int) А язык на котором я пишу это С

Сообщение отредактировал Lisher - Mar 4 2009, 12:18


--------------------
То что нас не убивает делает нас сильнее.
Метал облагородит человека, так же как люди облагораживают метал.
Go to the top of the page
 
+Quote Post
Lost-One
сообщение Mar 4 2009, 14:49
Сообщение #5


Любопытный
***

Группа: Members
Сообщений: 176
Регистрация: 21.4.2005
Из: А вот тут вот..
Пользователь №: 79
Пол: Мужской



Ну и.....

Код
struct TPers                // <------Исправил
{
  AnsiString Fam;
  int Year, Mark, Degree;  // Год, Оценка, квалификация
  
  TPers *pNext;
  TPers *pPrev;
};                                    // <------Исправил

TPers *p0 = NULL;
TPers *pCurr = NULL;

void PersAdd()     /// Добавление Новой Записи
{
  TPers *pNew = new TPers;  // pNew - Новая Структура
  if(p0 == NULL) // р0 - указатель на ПЕРВУЮ структуру в списке.
     {p0 = pNew; // сохраняем указатель на ПЕРВУЮ структуру в списке.
       pNew->pPrev = NULL;}  // Предыдущей нет !
  else     // Уже существуюет Список структур
     {pCurr->pNext = pNew;   // pCurr указывает на последнюю добавленную
      // Сохраним в Последней структуре ссылку на вновь созданную.
     pNew->pPrev = pCurr;}   // Новая должна иметь ссылку на предыдущую

  pNew->pNext = NULL; // Следующей за НОВОЙ структурой нет (пока, возможно появится)
  //   Заполним Новую Структуру данными
  pNew->Fam = StringGrid.Cells[x][y] // возможно что-то там еще надо....
  pNew->Nam...........  
.........

  pCurr = pNew; // Переведем указатель последней структуры на вновь созданную.
}

void ReadStruct()  // Проход по всем структурам с чтением информации из них
{
  pCurr = p0;
  while(pCurr != NULL)
  {
     AnsiString Fam = pCurr->Fam;
     AnsiString Nam = pCurr->Nam;
     ......
     pCurr = pCurr->pNext;
     ShowMessageBox(Fam + Nam + ....);
   }
}

// Определенно где-то накосячил, но С++ под рукой нет.
// И вообще.... чо-то я давно в них не кодил.... надо взяться.
// Совет: Возьми книжку Архангельского C++ Builder там все очень хорошо разжевывается.
//


Сообщение отредактировал Lost-One - Mar 4 2009, 17:20


--------------------
The Victory Favours Neither Righteus Nor The Wicked. It Favours The Prepared !
Go to the top of the page
 
+Quote Post
Lisher
сообщение Mar 4 2009, 15:23
Сообщение #6


Гость
*

Группа: Members
Сообщений: 49
Регистрация: 27.5.2005
Пользователь №: 617
Пол: Мужской



Большое тебе спасибо Lost-One, обязательно почитаю а то не могу хороших авторов найти)


--------------------
То что нас не убивает делает нас сильнее.
Метал облагородит человека, так же как люди облагораживают метал.
Go to the top of the page
 
+Quote Post
Lost-One
сообщение Mar 4 2009, 18:06
Сообщение #7


Любопытный
***

Группа: Members
Сообщений: 176
Регистрация: 21.4.2005
Из: А вот тут вот..
Пользователь №: 79
Пол: Мужской



Ух-ты вроде даже работает..... Накосячил конечно, но не так сильно как мог. (см. выше там исправил)

ЗЫ. Так как работаешь с памятью и ее выделяешь для каждой из структур, не забудь потом, когда будешь удалять их, и освобождать память. =)


--------------------
The Victory Favours Neither Righteus Nor The Wicked. It Favours The Prepared !
Go to the top of the page
 
+Quote Post
Lisher
сообщение Mar 4 2009, 20:48
Сообщение #8


Гость
*

Группа: Members
Сообщений: 49
Регистрация: 27.5.2005
Пользователь №: 617
Пол: Мужской



А ещё(если тебе не трудно) это можешь написать функцию по загрузке информации из файла в StirngGrid


--------------------
То что нас не убивает делает нас сильнее.
Метал облагородит человека, так же как люди облагораживают метал.
Go to the top of the page
 
+Quote Post
Lost-One
сообщение Mar 4 2009, 22:52
Сообщение #9


Любопытный
***

Группа: Members
Сообщений: 176
Регистрация: 21.4.2005
Из: А вот тут вот..
Пользователь №: 79
Пол: Мужской



Формат файла скажи, на досуге набросаю или идейку кину.


--------------------
The Victory Favours Neither Righteus Nor The Wicked. It Favours The Prepared !
Go to the top of the page
 
+Quote Post
Lisher
сообщение Mar 5 2009, 17:55
Сообщение #10


Гость
*

Группа: Members
Сообщений: 49
Регистрация: 27.5.2005
Пользователь №: 617
Пол: Мужской



Формат если stringgrid может работать с .txt то чтоб не париться можно и с ним, а если нет то есть специальный формат .grd


--------------------
То что нас не убивает делает нас сильнее.
Метал облагородит человека, так же как люди облагораживают метал.
Go to the top of the page
 
+Quote Post
Lost-One
сообщение Mar 6 2009, 02:47
Сообщение #11


Любопытный
***

Группа: Members
Сообщений: 176
Регистрация: 21.4.2005
Из: А вот тут вот..
Пользователь №: 79
Пол: Мужской



Про grd не знаю, а искать в лом.... gaol.gif
Вот тебе функция с тхт.

В данном примере я сильно не заморачивался.
Каждая строчка файла = одна строчка в StringGrid.
Если еще что-то нужно - обрабатывай строчку так как надо и пихай в StringGrid.

Код
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TStrings *List1 = new TStringList;

  if(OpenDialog1->Execute())
  {
        List1->LoadFromFile(OpenDialog1->FileName);
  }
  int i = 0;
  while(i < List1->Count)
  {
   //                        c  r       c = Column; r = Row;
   Form1->StringGrid1->Cells[0][i] = List1->Strings[i];
   i++;
   // Либо добавь свою обработку каждой строки списка....;
  }

}


PS. А что это ? задача из школы/института ? или чего еще ?


--------------------
The Victory Favours Neither Righteus Nor The Wicked. It Favours The Prepared !
Go to the top of the page
 
+Quote Post
Lisher
сообщение Mar 9 2009, 01:30
Сообщение #12


Гость
*

Группа: Members
Сообщений: 49
Регистрация: 27.5.2005
Пользователь №: 617
Пол: Мужской



Это задание в вузе дали


--------------------
То что нас не убивает делает нас сильнее.
Метал облагородит человека, так же как люди облагораживают метал.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 19th June 2019 - 14:42