Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 8

StringGrid Сохранение в файл в виде таблицы ( через - и | )

04.12.2014, 16:27. Показов 1746. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Подскажите пожалуйста, как сохранять из StringGrid в текстовый файл,
чтобы в тхт файле был такой же вид таблицы, как и в StringGrid ?

Заранее благодарю!

P.S.
Нашла код программы( см. внизу +2 способа) только в Delphi((. я пыталась переделывать в С++ Builder, пока не получается, а времени очень мало осталось...
Код:

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
function tir(n: integer): string;
var
  i: integer;
  s: string;
begin
  s := '';
  for i := 1 to n do
    s := s + '-';
  tir := s;
end;
 
function adder(s: string; n: integer): string;
var
  i: integer;
  tmp: string;
begin
  tmp := '';
  for i := 1 to n - length(s) do
    tmp := tmp + ' ';
  adder := tmp + s;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  a: array of integer;
  i, j, dl: integer;
  s1, s2: string;
  str: tstringlist;
begin
  str := tstringlist.create;
  setlength(a, stringgrid1.ColCount);
  for i := 0 to stringgrid1.ColCount - 1 do
  begin
    a[i] := 0;
    for j := 0 to stringgrid1.rowcount - 1 do
      if length(stringgrid1.Cells[i, j]) > a[i] then
        a[i] := length(stringgrid1.Cells[i, j]);
  end;
  dl := 0;
  for i := 0 to stringgrid1.ColCount - 1 do
    dl := dl + a[i];
  s1 := tir(dl + stringgrid1.ColCount + 1);
  str.Append(s1);
  for i := 0 to stringgrid1.rowcount - 1 do
  begin
    s2 := '|';
    for j := 0 to stringgrid1.colcount - 1 do
      s2 := s2 + adder(stringgrid1.Cells[j, i], a[j]) + '|';
    str.Append(s2);
    str.Append(s1);
  end;
  str.SaveToFile('1.txt');
  setlength(a, 0);
  str.free;
end;
Получается вот такая таблица:
Код:


Чуть укороченный вариант:
Код:

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
procedure TForm1.Button1Click(Sender: TObject);
var
  a: array of integer;
  i, j, dl: integer;
  f: textfile;
  s1: string;
begin
  assignfile(f, '2.txt');
  rewrite(f);
  setlength(a, stringgrid1.ColCount);
  dl := 0;
  for i := 0 to stringgrid1.ColCount - 1 do
  begin
    a[i] := 0;
    for j := 0 to stringgrid1.rowcount - 1 do
      if length(stringgrid1.Cells[i, j]) > a[i] then
        a[i] := length(stringgrid1.Cells[i, j]);
    dl := dl + a[i];
  end;
  s1 := '';
  for i := 1 to dl + stringgrid1.ColCount + 1 do
    s1 := s1 + '-';
  write(f, s1);
  for i := 0 to stringgrid1.rowcount - 1 do
  begin
    writeln(f);
    write(f, '|');
    for j := 0 to stringgrid1.colcount - 1 do
      write(f, stringgrid1.Cells[j, i]: a[j], '|');
    writeln(f);
    write(f, s1);
  end;
  closefile(f);
  setlength(a, 0);
end;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.12.2014, 16:27
Ответы с готовыми решениями:

Сохранение StringGrid в файл в виде таблицы
По нажатию на кнопку нужно сохранить таблицу из StringGrid1 размером в файл в виде таблицы, например, в Excel. Сделал пока так, но...

StringGrid Сохранение в файл в виде таблицы
Здравствуйте! Подскажите пожалуйста, как сохранять из StringGrid в текстовый файл, чтобы в тхт файле был такой же вид таблицы, как...

Сохранение содержимого StringGrid-а в виде таблицы в текстовом документе
Есть заполненая таблица Stringgrid размером Nx2 (n>3) как сохранить в текстовом документе все эти элементы в виде той же самой условной...

4
04.12.2014, 18:58

Не по теме:

Kitten-konfetka и Alex Antonov близнецы-братья? Или за одной партой сидят и друг у друга код Delphi списывают?

0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
05.12.2014, 10:12
Перевод кодов из Делфи в С++
0
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 8
06.12.2014, 23:05  [ТС]
Спасибо за ссылку)) Но результат получился нет тот, что мне нужен (см.файл)
Skl2.txt
А мне надо не только " | ", но и "-" (см. файл)
https://www.cyberforum.ru/atta... 1417699552
Подскажите пожалуйста!
0
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 8
12.12.2014, 14:30  [ТС]
SatanaXIII, Добрый день!

Скажите, пожалуйста, как перевести в эту строчку в С++ Builder (что вставить вместо двоеточия?)

write(f, stringgrid1.Cells[j, i]: a[j], '|');
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.12.2014, 14:30
Помогаю со студенческими работами здесь

Сохранение StringGrid через SaveDialog в ini-файл
Нид сохранить StringGrid через кнопку в ини(*.ini) файл диалогом SaveDialog!Help!!! Оч нужно! проблема с написанием обработчика для...

Сохранение из StringGrid массива в файл и загрузка из файла в StringGrid
Всем доброго времени суток =) У меня есть загрузка массива из StringGrid на Delphi 2010: //загрузка из файла procedure...

Сохранение и загрузка таблицы (StringGrid)
Мне задали задание сохранить, сохранить как и открыть stringgrid. С диалогами умею делать ток memo. Помогите плиз сделать программу.

Сохранение таблицы StringGrid в картинку
Добрый день уважаемые форумчани , у меня возник вопрос по сохранению таблицы StringGrid в формат jpg например. После сохранение я буду...

Сохранение таблицы StringGrid вместе с объектами
Доброго времени суток. Есть StringGrid с закрашенными ячейками. Как сохранить таблицу вместе с цветами ячеек?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru