Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2008, 10:41   #1
Almaas
Пользователь
 
Регистрация: 02.01.2008
Сообщений: 27
По умолчанию Выбор значения из массива по столбцу и строке

Здравствуйте.
Есть внешний файл с двухмерным массивом. Файл называется sort.txt и лежит в каталоге с проектом. Содержание (например) файла sort.txt:
dv_10 50 100 200 1
dv_20 100 200 300 2.5
dv_30 150 300 390 3.8
dv_40 200 400 410 4.7
Первый столбец - наименование профиля, второй - ширина, третий - высота, четвертый - площадь, пятый - погонная масса.
Т.е. известно количество строк и столбцов и что содержится в каждом столбце.
Необходимо сделать так, чтобы при присовении, допустим, параметру "а" названия, он выбирал нужный параметр из нужного слобца, ориентируясь на строку, указанного параметра первого столбца.
Ну, т.е., я пишу a:=dv_30, и мне надо, чтобы параметру b присвоилось, например, значение площади (из четвертого столбца), т.е. стало b:=390
Подскажите, как это осуществить?
Almaas вне форума Ответить с цитированием
Старый 14.01.2008, 12:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

В ListBox грузи весь файл. Когда задаш какую dv_ нуна взять, в цикле перебереш до этой dv_ или если у тебя dv_ имеют числа кратные 10 (как в примере) то просто перескочиш на ту строчку. Далее уж получиш эту строку и разделиш ее по пробелам.
Яснышко?

Вот пока чаек карпатский пил набросок тебе сделал:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var          s:TStringList;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.Items.LoadFromFile('file1.txt');

end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
i:=ListBox1.Perform(LB_FINDSTRING,0,integer(pchar('dv_'+Edit1.text)));
if i<> LB_ERR then begin
 ListBox1.ItemIndex:=i;
 if s=nil then s:=TStringList.Create;
 s.Delimiter:=' ';
 s.DelimitedText:=ListBox1.items[i];
 if s.Count>0 then Label1.Caption:='Профиль '+s[0];
 if s.Count>1 then Label1.Caption:=Label1.Caption+' ширина '+s[1];
end;

end;

end.
Тут в эдит вводиш цифру профиля и нажимай кнопку. Данные загоняются в метку. Вывод остальных данных запрограммируеш в метку сам
I'm learning to live...

Последний раз редактировалось Stilet; 14.01.2008 в 12:59.
Stilet вне форума Ответить с цитированием
Старый 14.01.2008, 14:16   #3
Almaas
Пользователь
 
Регистрация: 02.01.2008
Сообщений: 27
По умолчанию

Спасибо, попробую : )))
Almaas вне форума Ответить с цитированием
Старый 22.01.2008, 21:24   #4
Almaas
Пользователь
 
Регистрация: 02.01.2008
Сообщений: 27
По умолчанию

Я не разобрался с ListBox... Позже разберусь.
Этот пример хотел решить по-другому.
Исходные данные:
Есть файл massiv.txt следующего содержания:
1.1 10 11 12 13 14
1.2 20 21 22 23 24
1.3 30 31 32 33 34
1.4 40 41 42 43 44
1.5 50 51 52 53 54
Цифры могут быть любыми положительными, отличными от нуля.
Задача - при вводе параметра "z" сравнить его со значениями в первом столбце и при совпадении - считать всю строку с записью параметров.
Посмотрите, что не так:

Ошибку понял, вопрос снят.

Последний раз редактировалось Almaas; 23.01.2008 в 20:04. Причина: Понял в чём ошибся
Almaas вне форума Ответить с цитированием
Старый 25.01.2008, 14:56   #5
AstroFom
Новичок
Джуниор
 
Регистрация: 25.01.2008
Сообщений: 1
По умолчанию похожая задача

Здравствуйте! Видимо у меня схожая задача, но всё равно не понятно. Есть таблицы выбора расхода воды в зависимости от типа здания (жилое/нежилое) и типа водоразбирающих приборов (умывальники, ванны, души). В шапке тип здания, в строках приборы. Для некоторых типов зданий есть недопустимые приборы, поэтому эти пункты должны отсекаться. Каждое значение в таблице имеет вид гор. вода + хол. вода. Это надо тоже учесть в итоговых расчётах, результатом должно стать отдельно значение расхода гор. воды, хол. воды, и общий расход, причём в литрах в секунду, кубометрах в час и кубометрах в сутки. Также учитываются различные коэффициенты и кол-во приборов. Всё что я смог, это набросать примерный интерфейс в Делфи и складывать общее кол-во приборов. Выбор типов зданий и приборов, сделал Комбобоксами. Мне нужен дельный совет, как поступить дальше, в каком направлении. Может интерфейс стоит сделать по другому?
Изображения
Тип файла: jpg интерфейс.JPG (51.4 Кб, 124 просмотров)
AstroFom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указание последнего в строке значения прерывистого ряда значений. Baloo007 Microsoft Office Excel 10 06.08.2008 15:20
В каждой строке массива выбирается максимальный элемент sergeyfsd Общие вопросы Delphi 2 13.05.2008 00:10
выбор значения SveSve Microsoft Office Excel 2 16.04.2008 19:13
В двумерном массиве 4*5 найти сумму элементов по строке или столбцу. bkmz Помощь студентам 11 16.04.2008 11:17
Для вещественного массива А(20)вычислить наибольшее и наименьшее значения модуля раз-ти между сосед.эл-ми faix Помощь студентам 2 14.11.2007 13:25