Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.02.2010, 17:17
Nothing Nothing вне форума
Прохожий
 
Регистрация: 23.02.2010
Сообщения: 32
Репутация: 9
По умолчанию Список

Нужно загрузить список в программу с типом Tlist?
Ответить с цитированием
  #2  
Старый 26.02.2010, 17:18
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

А в чем проблемы? Загружай!!!
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 26.02.2010, 17:22
Nothing Nothing вне форума
Прохожий
 
Регистрация: 23.02.2010
Сообщения: 32
Репутация: 9
По умолчанию

Я не пойму как, приведите кто нибудь пример плиз
Ответить с цитированием
  #4  
Старый 26.02.2010, 18:38
Аватар для Kotofff
Kotofff Kotofff вне форума
Прохожий
 
Регистрация: 30.09.2008
Адрес: 46°19"сш, 39°23"вд
Сообщения: 12
Репутация: 10
По умолчанию

Куда ты хочешь его загружать ?
Какой компонент ?
Или без разницы ?
Ответить с цитированием
  #5  
Старый 26.02.2010, 19:23
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Код:
procedure TForm1.btLoadClick(Sender: TObject);
var
  MyList: TStringList; // список строк
begin
  MyList := TStringList.Create;
  try
    MyList.LoadFromFile('MyFileName');
  finally
    MyList.Free;
  end;
  Memo1.Lines.LoadFromFile('MyFileName'); // Memo1.Lines - тоже список строк
end;
Ответить с цитированием
  #6  
Старый 26.02.2010, 19:55
Аватар для Ultras
Ultras Ultras вне форума
Начинающий
 
Регистрация: 09.02.2010
Адрес: Россия / Ставрополь
Сообщения: 138
Репутация: 475
По умолчанию

так ему TList надо, я когда то record загружал в TList через указатель на тот самый record:
Код:
type
TPluginInfo = record
  InitInfo: string;
  Handle: integer;
end;

PPluginInfo = ^TPluginInfo;

var
  list: TList;
  PluginInfo,test1: PPluginInfo;
begin
  list := TList.Create;
  New(PluginInfo);
  PluginInfo.InitInfo := 'test';
  PluginInfo.Handle := 123;
  list.Add(PluginInfo);

//  list.Count; // - получить кол-во добавленных элементов
  test1 := List[0]; // - получить 1ый элемент
  ShowMessage(test1.InitInfo); //обращение к первому элементу из списка
end;
как-то так ))

Последний раз редактировалось Ultras, 28.02.2010 в 01:37.
Ответить с цитированием
  #7  
Старый 26.02.2010, 22:06
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Цитата:
Сообщение от Ultras
так ему TList надо, я когда то record загружал в TList через указатель на тот самый record:
...// сократил
как-то так ))
и как-то так? где загрузка из файла?
или сразу после создания списка ссылок можно выбирать?
Ответить с цитированием
  #8  
Старый 26.02.2010, 22:10
Аватар для Ultras
Ultras Ultras вне форума
Начинающий
 
Регистрация: 09.02.2010
Адрес: Россия / Ставрополь
Сообщения: 138
Репутация: 475
По умолчанию

ну я тут просто показал работу с TList, это была работа с плагинами, создание их списка и обращение к ним через этот список (сократил для примера). Как загружать из файла? ну это уже вопрос к тому, кто создавал тему: что именно загружать надо и какой именно список, и откуда?

Последний раз редактировалось Ultras, 26.02.2010 в 22:14.
Ответить с цитированием
  #9  
Старый 26.02.2010, 23:19
Nothing Nothing вне форума
Прохожий
 
Регистрация: 23.02.2010
Сообщения: 32
Репутация: 9
По умолчанию

Мне нужно загрузить список через OpenDialog, взять первую строку проделать с ней определенные действия потом проделать это со следующей строкой, и так далее
Ответить с цитированием
  #10  
Старый 27.02.2010, 00:02
Аватар для Ultras
Ultras Ultras вне форума
Начинающий
 
Регистрация: 09.02.2010
Адрес: Россия / Ставрополь
Сообщения: 138
Репутация: 475
По умолчанию

а, ну тогда смотри 5ый пост от s0Creator (про TStringList).
пример:
Код:
var
  list: TStringList;
  i: integer;
  tmp_s: string;
begin
  if OpenDialog1.Execute then
  begin
    list := TStringList.Create;
    list.LoadFromFile(OpenDialog1.FileName);
    if list.Count = 0 then
    begin
      MessageBox(Handle,'Список пуст','Ошибка',MB_OK + MB_ICONERROR);
      list.Free;
      Abort;
    end;
    // продолжаем, если в списке есть хотя бы одна строка

    for i:=0 to list.Count-1 do
    begin
      tmp_s := list[i] //получаем строку из списка по циклу

      // ...
      // тут делаем нужные действия с tmp_s или list
      // ...

      // двигаемся к следующей строке и так, до конца цикла
    end;
    list.Free;
  end;
end;

Последний раз редактировалось Ultras, 27.02.2010 в 00:28.
Ответить с цитированием
  #11  
Старый 27.02.2010, 19:24
Nothing Nothing вне форума
Прохожий
 
Регистрация: 23.02.2010
Сообщения: 32
Репутация: 9
По умолчанию

А можно выполнять цикл при нажатии другой кнопки?
Ответить с цитированием
  #12  
Старый 27.02.2010, 20:53
Аватар для Ultras
Ultras Ultras вне форума
Начинающий
 
Регистрация: 09.02.2010
Адрес: Россия / Ставрополь
Сообщения: 138
Репутация: 475
По умолчанию

Цитата:
Сообщение от Nothing
А можно выполнять цикл при нажатии другой кнопки?
по точнее задачу опишите, чота не пойму
__________________
Психических заболеваний НЕТ . Просто ДУРАК
Пусть лучше над тобой смеются, чем плачут...
Ответить с цитированием
  #13  
Старый 27.02.2010, 22:32
Nothing Nothing вне форума
Прохожий
 
Регистрация: 23.02.2010
Сообщения: 32
Репутация: 9
По умолчанию

Процедура нажатия на первую кнопку - (Загрузка файла в программу)
Процедура нажатия на вторую кнопку - (Проведение операций над строками поочередно)
Ответить с цитированием
  #14  
Старый 28.02.2010, 01:29
Аватар для Ultras
Ultras Ultras вне форума
Начинающий
 
Регистрация: 09.02.2010
Адрес: Россия / Ставрополь
Сообщения: 138
Репутация: 475
По умолчанию

стукни в аську 418018483, там объясню, потом сюда выложу (ибо если здесь объясню, появяцца исчо вопросы, и так до бесконечности)
__________________
Психических заболеваний НЕТ . Просто ДУРАК
Пусть лучше над тобой смеются, чем плачут...
Ответить с цитированием
  #15  
Старый 28.02.2010, 18:56
Аватар для Ultras
Ultras Ultras вне форума
Начинающий
 
Регистрация: 09.02.2010
Адрес: Россия / Ставрополь
Сообщения: 138
Репутация: 475
По умолчанию

ну раз в аське не хотите стучать, возьму и расскажу тут (на самом деле путей решения ваше проблемы очень много, это самый простой):
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  FList: TStringList; // обявляем глобальную переменную для списка (для этого юнита)

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  // тут загружаем файл при нажатии на кнопку Button1
  if OpenDialog1.Execute then
  begin
    Flist := TStringList.Create;
    Flist.LoadFromFile(OpenDialog1.FileName);
    if Flist.Count = 0 then
    begin
      MessageBox(Handle,'Список пуст','Ошибка',MB_OK + MB_ICONERROR);
      Abort;
    end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FList := TStringList.Create; // создаём список строк
end;

procedure TForm1.Button2Click(Sender: TObject);
{var
  j: integer;
  tmp_l: string;}
begin
  // тут работает со списком при нажатии на Button2
{  for j:=0 to FList.Count-1 do
  begin
    tmp_l := FList[j]; //получаем строку из списка по циклу
    // тут делаем нужные действия с tmp_s или list
  end;}

  ShowMessage(FList[0]); //получаем первую строку
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  FList.Free; // освобождаем память от списка при закритии программы
end;

end.
__________________
Психических заболеваний НЕТ . Просто ДУРАК
Пусть лучше над тобой смеются, чем плачут...

Последний раз редактировалось Ultras, 28.02.2010 в 19:12.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter