Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63

Избитая тема про StringGrid и числовую матрицу

21.02.2012, 17:32. Показов 3072. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, каким образом числовую матрицу из текстового файла отобразить в StringGrid.

Если не сложно то было бы хорошо если бы весь код был по пунктам ( в том числе и операция OpenDialog

Буду очень признательна.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.02.2012, 17:32
Ответы с готовыми решениями:

Избитая тема о хуках
нужно поставить хук на мышу. прочитал несколько умных статей о хуках. написал ДЛЛ с хук-процедурой, для мониторинга хука посылаю...

Составить программу, которая выводит с клавиатуры произвольную числовую матрицу А размером 4*4. в делфи
Составить программу в делфи, которая выводит с клавиатуры произвольную числовую матрицу А размером 4*4. Построить по ней матрицу В тех же...

Избитая тема про блокировку по условию
Прочитал на форуме о блокировке полей и форм по условию и никак не получается применить для своей базёнки. Короче о проблеме: в...

22
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
21.02.2012, 17:41
nuri, как информация организована в текстовом файле?
просто от способа организации информации зависит способ ее загрузки
1
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
21.02.2012, 17:57  [ТС]
DenNik,

1 2 7 0 3
3 4 8 7 0
5 6 9 6 3

Добавлено через 14 минут
но матрица не фиксированная, то есть если я ее буду изменять проблем не должно быть)
0
 Аватар для NIch
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
21.02.2012, 18:15
Предлагаю такой вариант:

Формат файла:
2 // кол-во строк
2 // кол-во столбцов
1 // 1 стр 1 столб
2 // 1 стр 2 столб
3 // 2 стр 1 столб
4 // 2 стр 2 столб
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  f : textfile;
  i, j, n, m : integer;
begin
  if OpenDialog1.Execute then
  begin
    AssignFile(f, OpenDialog1.FileName);
    Reset(f);
    ReadLn(f, n);// читаем кол-во строк
    ReadLn(f, m);// читаем кол-во столбцов
    for i := 0 to n-1 do
      for j := 0 to m-1 do
        ReadLn(f, StringGrid1.Cells[i, j]);// заполняем stringgrid
    CloseFile(f);
  end;
end;
PS Писал на коленке)
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
21.02.2012, 18:22
Цитата Сообщение от NIch Посмотреть сообщение
PS Писал на коленке)

Не по теме:

Интересно, чем это так можно писать на коленке, чтобы аж на форуме было видно :jokingly:

0
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
21.02.2012, 18:50  [ТС]
NIch, спасибо большое!
Но выдает ошибку: [Error] Unit1.pas(45): Left side cannot be assigned to

Я так понимаю это из-за того что мне в свойствах таблицы надо какие то значение true и false поставить, или нет? или что то другое?
0
 Аватар для NIch
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
21.02.2012, 19:00
Попробуй так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
  f : textfile;
  i, j, n, m : integer;
  Str : string;
begin
  if OpenDialog1.Execute then
  begin
    AssignFile(f, OpenDialog1.FileName);
    Reset(f);
    ReadLn(f, n);// читаем кол-во строк
    ReadLn(f, m);// читаем кол-во столбцов
    for i := 0 to n-1 do
      for j := 0 to m-1 do
      begin
        ReadLn(f, str);
        StringGrid1.Cells[i, j] := str;// заполняем stringgrid
      end;
    CloseFile(f);
  end;
end;
И в свойствах таблицы должно быть
ReadOnly = false
1
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
21.02.2012, 19:09  [ТС]
NIch, у меня выводит только 5693 при чем в одной ячейке.

в чем причина?
0
 Аватар для NIch
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
21.02.2012, 19:54
Скинь весь проект подправлю.
0
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
21.02.2012, 20:19  [ТС]
NIch,
Вложения
Тип файла: rar Новая папка.rar (188.3 Кб, 14 просмотров)
0
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
21.02.2012, 20:20  [ТС]
я сейчас на час отойду ( это просто если я отвечать не буду)
0
 Аватар для NIch
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
23.02.2012, 11:38
Кое что подправил.
Файл с матрицей 111.txt в папке с проектом
http://rghost.ru/36663495
Вложения
Тип файла: rar Новая папка.rar (191.7 Кб, 16 просмотров)
0
 Аватар для NIch
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
23.02.2012, 11:39
Если что будет непонятно, спрашивай)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.02.2012, 11:46
Код из поста номер 4.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
  f : textfile;
  i, j, n, m, x : integer;
begin
  if OpenDialog1.Execute then
  begin
    AssignFile(f, OpenDialog1.FileName);
    Reset(f);
    Read(f, n);// читаем кол-во строк
    Read(f, m);// читаем кол-во столбцов
    StringGrid1.ColCount:=m;
    StringGrid1.RowCount:=m;
    for i := 0 to n-1 do
    for j := 0 to m-1 do
     begin
      Read(f,x);
      StringGrid1.Cells[j,i]:=IntTostr(x);// заполняем stringgrid
     end;
   CloseFile(f);
  end;
end;
0
23.02.2012, 12:07

Не по теме:

Точно так же и я исправил)))

0
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
24.02.2012, 11:06  [ТС]
Спасибо горомное))) и еще вопрос как посчитать размерность матрицы?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.02.2012, 11:24
Удобнее всего в файле в первой строке указать количество строк и столбцов. Мой код под это и написан. Пример файл
4 3//это размер.
1 2 3
3 4 5
5 6 7
7 8 9

Добавлено через 6 минут
Если же размер не указан, то сначала читают 1 строку, определяют кол. столбцов,
затем читают построчно, кол. строк
Затем читают с начала уже саму матрицу.
Вот здесь мы обсасывали, не смотри что Паскаль, суть таже.
https://www.cyberforum.ru/pascal/thread448274.html
0
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
24.02.2012, 11:29  [ТС]
мне по заданию надо: ввести числовую матрицу из файла, определить ее размерность и отобазить в таблице на экранной форме
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.02.2012, 12:52
Для лодырей и .......
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var f:textfile;
    a,n,m,i,j:integer;
begin
if OpenDialog1.Execute then
 begin
   assignfile(f,OpenDialog1.FileName);
   reset(f);
 end;
n:=0;
while not eoln(f) do
 begin
  read(f,a);
  n:=n+1;
 end;
closefile(f);
with StringGrid1 do
 begin
  ColCount:=n;
  fixedcols:=0;
  fixedrows:=0;
  defaultcolwidth:=35;
  RowCount:=1;
 end;
Edit1.Text:='Количество столбцов='+IntToStr(n);
reset(f);
i:=-1;
j:=0;
m:=0;
while not eof(f) do
 begin
  read(f,a);
  i:=i+1;
  StringGrid1.Cells[i,j]:=IntToStr(a);
  if i=n-1 then
   begin
    j:=j+1;
    i:=-1;
    m:=m+1;
    StringGrid1.RowCount:=m;
   end;
 end;
closefile(f);
Edit2.Text:='Количество строк='+IntToStr(m);
end;
 
end.
1
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
24.02.2012, 15:38  [ТС]
Puporev, еще раз спасибо!!!!) не то, чтобы я лодырь, какие то отдельные знания по кодам имеются, но в целую картинку, увы, собрать не получается)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2012, 15:38
Помогаю со студенческими работами здесь

избитая тема кирилицы в qt
Вот уже ничего не могу понять: QStringList codecs; codecs.append("IBM 866"); codecs.append("KOI8-R"); ...

Избитая тема Treeview
Всем доброго дня! Улучшаю сделанную своими руками БД в MS Access и пришел к выводу, что без "дерева" (Treeview) не обойтись....

Избитая тема - перетаскивание формы
Добрый день всем! Вопрос такой, облазил уже весь интернет, но не могу найти то что надо. Есть форма, на ней куча контролов, которые...

Знаю что тема избитая но - ХП на ВИСТУ
Ноутбук АСУС точную модель сказать не могу - не мой. Была установлена Виста которая блогополучна сдохла - не грузиться не рекавериться...

Как сохранить string данные в DOC,PDF (избитая тема)?
Всем доброго времени суток. Есть класс контейнер в котором храняться данные я через ovveride ToString() все их собираю. И через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru