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

Запись содержимого TStringGrid в текстовый файл

29.05.2013, 20:09. Показов 3605. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
У меня есть программа подходящая к моей теме " базовый алгоритм для решения системы линейных уравнений методом обратных матриц "
за исключением того что мне нужно " вывод результатов в отдельный текстовый файл".
Помогите это сделать сколько читал ничего не выходит.
вот что имеется :

Кликните здесь для просмотра всего текста
C++
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include<math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int w=3, k, i, j, l, h, h1;
double **a, s, *b, t, temp;
bool ka=true;
void GaussMod ()
{a= new double *[w];
for(int i=0;i<w;i++)
{a[i]=new double [w];}
b= new double [w];
double *x=new double [w];
for(int i=0;i<w;i++)
{for(int j=0;j<w;j++)
{a[i][j]=StrToFloatDef(Form1->StringGrid1->Cells[j][i], 0);}
b[i]=StrToFloatDef(Form1->StringGrid3->Cells[0][i], 0);}
/*здесь проверка на линейную зависимость*/
for (int q = 0; q < w-1; q++)
{for (int u=q+1; u<w; u++)
{ka=false; h=h1=0;
for (int y=0; y<w; y++)
{h=a[u][y]-a[q][y];
if (h!=h1 && y!=0) {break;}
h1=h;
if (y==w-1 && ka==false)
{ShowMessage("Линейная зависимость, поэтому решать не хочу.");
return;}}}}
/**/
for (k = 0; k <= w-2; k++)
{/*от сих*/
temp=l=0;
for (int f = w-1; f >=k; f--)
{if (fabs(a[f][k])>fabs(temp))
{temp=a[f][k]; l=f;}}
for (int u=0; u < w; u++)
{temp=a[k][u];
a[k][u]=a[l][u];
a[l][u]=temp;}
temp=b[k];
b[k]=b[l];
b[l]=temp;
/*до сих идет выбор выбор наибольшего элемента столбца*/
for (i=k+1; i<= w-1; i++)
{if (a[k][k]==0){
ShowMessage("Не умею делить на ноль, а на главной диагонали 0.");
return;}
t=a[i][k]/a[k][k];
b[i]=b[i]-(t*b[k]);
for (j=k+1; j<=w-1; j++)
{a[i][j]=a[i][j]-(t*a[k][j]);}}}
for (k = w-1; k >=0; k--) {
s=0;
for (j=k+1; j <= w-1; j++) {
s=s+(a[k][j]*x[j]);}
x[k]=(b[k]-s)/a[k][k];}
for (i = 0; i < w; i++) {Form1->StringGrid2->Cells[0][i]=x[i];}
delete [ ] b;
delete [ ] x;
for(int i=0;i<w;i++)
delete [ ]a[i];
delete [ ] a;
}
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner) {}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{Application->Terminate();}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{w=StrToInt(Edit1->Text);
StringGrid1->RowCount=w;
StringGrid1->ColCount=w;
StringGrid2->RowCount=w;
StringGrid3->RowCount=w;}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{GaussMod ();}
//---------------------------------------------------------------------------
 void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{if(Button == mbLeft)
{long SC_DRAGMOVE = 0xF012;
ReleaseCapture();
SendMessage(Form1->Handle, WM_SYSCOMMAND, SC_DRAGMOVE, 0);}}




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

C++
1
2
3
4
5
for(int i = 0 ; i<StringGrid2->RowCount ; i++)   
  {     
    Table1->Strings[i] = StringGrid2->Rows[i]->DelimitedText  ; //присваиваем вспомог. табл. (построчно) обработанные данные с StringGrid2   
  } 
Table1->SaveToFile(file1) ;   // просто сохраняем.

2)
Кликните здесь для просмотра всего текста

C++
1
  AnsiString file1 = "с:\\temp.txt" ;

Лучше использовать ещё одну таблицу, помимо стрингрида, так сказать вспомогательную.
Что это значит и нужно ли для этого что-то вводить в этот temp.txt как все это дело обстоит с вспомогательной страницей?
3)Теперь создадим вспомогательную таблицу:
Кликните здесь для просмотра всего текста

C++
1
TStringList *Table1 = new TStringList ;

4)Но только обязательно надо ее удалять, при закрытии проги, потому что компоненты, которые мы объявляем вручную – нужно также и удалять (каждый объект создается в оперативной памяти, а если не удалить его, при завершении работы программы – он там и останется):
Кликните здесь для просмотра всего текста

C++
1
2
3
4
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{  
  delete Table1 ;  
}
Миниатюры
Запись содержимого TStringGrid в текстовый файл   Запись содержимого TStringGrid в текстовый файл   Запись содержимого TStringGrid в текстовый файл  

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.05.2013, 20:09
Ответы с готовыми решениями:

Запись в текстовый файл значения переменной
Ругается на 4-ой строке &quot;Cannot convert 'string' to 'const char *'. string a; a = Label1-&gt;Caption.c_str(); ... fputs (a, f); Как...

Запись объектов класса в текстовый файл
Подскажите пожалуйста, как записать объекты класса в текстовый файл... на C++ Builder Вот сам класс: class Films { public:...

Запись char-массива в текстовый файл
Нашел код для считывания из файла в char-массив: int FileIn=FileOpen(FileInName,fmOpenRead); int finsize=FileSeek(FileIn,0,2); char...

16
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
29.05.2013, 20:18
StringGrid Сохранение в файл в виде таблицы
Сохранение несколько StringGrid в один CSV файл
Сохранение/Загрузка StringGrid'a в файл
Сохранение из StringGrid массива в файл и загрузка из файла в StringGrid
и т.д., много...

C++
1
2
3
TStringList *Table1 = new TStringList ;
// много никому не нужных махинаций
delete Table1;
1
1 / 1 / 0
Регистрация: 09.05.2013
Сообщений: 15
29.05.2013, 20:24  [ТС]
Пробовал вот это:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <memory>
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{  // Сохранить
std::auto_ptr<TStringList> SL(new TStringList);
 
for(int i=0;i<StringGrid2->RowCount;i++)
 {
  StringGrid2->Rows[i]->Delimiter=L';'; // Разделитель
  SL->Add(StringGrid2->Rows[i]->DelimitedText);
 }
SL->SaveToFile("1.txt");
}
В итоге ругается на
C++
1
SL->SaveToFile("1.txt");
,а точнее само SL неизвестный символ подскажите что я прошляпил.

Добавлено через 4 минуты
C++
1
2
3
4
5
6
for(int i=0; i < StringGrid2->RowCount; i++)  {
            for (int j=0; j < StringGrid2->ColCount; j++)  {
               str1=str1+StringGrid2->Cells[j][i]+";";
            }
            pStrings->Add(str1);
            str1="";
может это подойдет на кнопку прикрепить ?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
29.05.2013, 20:26
C++
1
#include <memory>
есть?
или
C++
1
2
3
4
5
6
7
TStringList *SL = new TStringList;
for(int i=0;i<StringGrid2->RowCount;i++) {
  StringGrid2->Rows[i]->Delimiter=L';'; // Разделитель, не факт, что L нужнО
  SL->Add(StringGrid2->Rows[i]->DelimitedText);
}
SL->SaveToFile("1.txt");
delete SL;
1
1 / 1 / 0
Регистрация: 09.05.2013
Сообщений: 15
29.05.2013, 20:32  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
C++
1
#include <memory>
есть?
или
C++
1
2
3
4
5
6
7
TStringList *SL = new TStringList;
for(int i=0;i<StringGrid2->RowCount;i++) {
  StringGrid2->Rows[i]->Delimiter=L';'; // Разделитель, не факт, что L нужнО
  SL->Add(StringGrid2->Rows[i]->DelimitedText);
}
SL->SaveToFile("1.txt");
delete SL;
в этом случае на SL как на неизвестный символ что тут я прошляпил не пойму. Этот код не мой с форума выглядит не очень в тхт но работал в другой программе отдельно, а у меня не пашет.
0
1 / 1 / 0
Регистрация: 09.05.2013
Сообщений: 15
29.05.2013, 20:36  [ТС]
Кликните здесь для просмотра всего текста
https://www.cyberforum.ru/attachment.php?attachmentid=274954&stc=1 &d=1369845347
https://www.cyberforum.ru/atta... 1369845347

вот как работает отдельно.
Миниатюры
Запись содержимого TStringGrid в текстовый файл   Запись содержимого TStringGrid в текстовый файл  
0
1 / 1 / 0
Регистрация: 09.05.2013
Сообщений: 15
31.05.2013, 08:59  [ТС]
Все нашел решение вот как сделал если вдруг у кого нибудь такая же проблема :
Миниатюры
Запись содержимого TStringGrid в текстовый файл   Запись содержимого TStringGrid в текстовый файл  
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
31.05.2013, 09:17
молодец
0
31.05.2013, 13:42

Не по теме:

Цитата Сообщение от LK Посмотреть сообщение
молодец
:D Еще какой https://www.cyberforum.ru/blog... tom27.html :D

1
31.05.2013, 13:50

Не по теме:

Avazart, уважаемый Makssqrt молодец, что

Цитата Сообщение от Makssqrt Посмотреть сообщение
нашел решение
, а вам за ваши заслуги - отдельная ну очень большая мЕдать на пагоны :yes:

0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
31.05.2013, 13:52
Кривой копи-паст решение ?
Я думал, вы заметили утечку памяти в его коде ?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
31.05.2013, 13:59
сколько там той утечки ... да и вышее у него все правильно, допрет и тут
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
31.05.2013, 14:12
Цитата Сообщение от LK Посмотреть сообщение
сколько там той утечки

Не по теме:

Ну да плевать на склер O_oз, зато каждый раз что-то новенькое

1
31.05.2013, 14:17

Не по теме:

эт-точно :jokingly:

0
1 / 1 / 0
Регистрация: 09.05.2013
Сообщений: 15
31.05.2013, 17:37  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение

Не по теме:


:D Еще какой https://www.cyberforum.ru/blog... tom27.html :D

я это пробовал не работает.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
31.05.2013, 17:39
Цитата Сообщение от Makssqrt Посмотреть сообщение
я это пробовал не работает.
ну да конечно ..

Ctrl+Copy сломался
0
1 / 1 / 0
Регистрация: 09.05.2013
Сообщений: 15
16.06.2013, 12:57  [ТС]
очень смешно.

Всем спасибо за помощь.
Тему можно закрывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.06.2013, 12:57
Помогаю со студенческими работами здесь

Запись в текстовый файл числа на еденицу большего.
Здравствуйте, уважаемые знатоки! :) Подскажите, пожалуйста, новичку вот что: есть некий список, например: App1=C:\ App2=C:\ ...

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

Запись в текстовый файл - содержимого диапазона (построчно)
Добрый вечер, программисты vba. Помогите решить вопрос. Есть макрос, который вписывает текст с ячейки C6 - в первую строку...

Сохранение содержимого Memo в текстовый файл
Доброго времени суток. Нужно сохранить содержимое Memo в текстовый файл: procedure TForm1.Button3Click(Sender: TObject); var f:...

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


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru