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

робота с файлами

02.03.2010, 17:35. Показов 2392. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
програма должна сохранять инфу введенную в StringGrid1 в файл table.txt при выходе и заносить с файла в StringGrid1 данные при открытии. если можно то с коментариями
спасибо
Вложения
Тип файла: 7z file.7z (574.4 Кб, 33 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.03.2010, 17:35
Ответы с готовыми решениями:

робота с файлами
У меня есть пример. Как мне сделать чтоб виводило ФАМИЛИИ всех учеников которие учатса на отлично, т.е все п*яторки?

Робота с файлами
В файл записано 3 числа, мне нужно 2 первых сложить и отнять от рузультата третье число.Помогите!

Робота с файлами
Добрый День! Начал разбиратся с файлами и есть вопросы. Сделал некоторые наброски. Правильно ? И не могу понять как все объединить в...

7
11 / 11 / 7
Регистрация: 23.12.2009
Сообщений: 300
02.03.2010, 18:41  [ТС]
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "stdio.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
 
int fp;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
int i,j,s;
i=1;
s=1;
 
StringGrid1->Cells[0][0]="№";
StringGrid1->Cells[1][0]="Фамилия";
StringGrid1->Cells[2][0]="Имя";
StringGrid1->Cells[3][0]="Отчество";
StringGrid1->Cells[4][0]="Группа";
StringGrid1->Cells[5][0]="Оценка";
StringGrid1->Cells[6][0]="Вариант";
StringGrid1->Cells[7][0]="Дата";
 
if(FileExists("table.txt")) fp=FileOpen("meteo.txt",fmOpenWrite);
 else fp=FileCreate("table.txt");
 
if(fp!=-1) {FileSeek(fp,0,0); // установить указатель на начало
           while(!fp.eof())
            {for(j=1;j<8;j++) {StringGrid1->Cells[i][j]=FileRead(f,st.c_str(),st.Length());
                               i++;} }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if(fp!=-1) {FileSeek(fp,0,0); // установить указатель на начало
            while(StringGrid1->Cells[i][j]=="")
               {for(j=1;j<8;j++) {StringGrid1->Cells[i][j]=FileWrite(f,st.c_str(),st.Length());
                                  i++;}
 
 
FileClose(fp);
}
//---------------------------------------------------------------------------
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
02.03.2010, 23:58
Hovercat,
Цитата Сообщение от Hovercat Посмотреть сообщение
сохранять инфу введенную в StringGrid1 в файл table.txt при выходе и заносить с файла в StringGrid1 данные при открытии.
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
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    StringGrid1->Options = StringGrid1->Options << goEditing;
    StringGrid1->ColCount = 8;
    StringGrid1->FixedCols = 0;
 
    StringGrid1->Cells[0][0]="№";
    StringGrid1->Cells[1][0]="Фамилия";
    StringGrid1->Cells[2][0]="Имя";
    StringGrid1->Cells[3][0]="Отчество";
    StringGrid1->Cells[4][0]="Группа";
    StringGrid1->Cells[5][0]="Оценка";
    StringGrid1->Cells[6][0]="Вариант";
    StringGrid1->Cells[7][0]="Дата";
    //*********************************************
 
    TStringList *sl = new TStringList;
    if ( !FileExists("table.txt") ){ delete sl;  return; }
    //-----------------------------------------------------
    // "1 Иванов Иван Иванович SiemensАТ12-a 12 с2 02032010"
 
    sl->LoadFromFile("table.txt");
    //-----------------------------------------------------
    for ( int i = 0; i < sl->Count; ++i )
    {
        String s = sl->Strings[i] + " ";
 
        for ( int j = 0; j < 8; ++j )
        {
            StringGrid1->Cells[j][i + 1] = s.SubString(1, s.Pos(" "));
            s.Delete( 1, s.Pos(' ') );
        }
    }
    //-----------------------------------------------------------------
    delete sl;
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TStringList *sl = new TStringList;
 
    if ( FileExists( "table.txt" ) )
        sl->LoadFromFile ( "table.txt" );
 
    String s;
    for ( int i = 0; i < StringGrid1->ColCount; ++i )
        s += StringGrid1->Cells[i][2 - 1] + " ";
 
    sl->Append( s );
    sl->SaveToFile ( "table.txt" );
 
    delete sl;
}
//---------------------------------------------------------------------------
вводишь данные во вторую строку (индекс 1 или легче записать 2-1) StringGrid1->Cells[i][2 - 1]
2
11 / 11 / 7
Регистрация: 23.12.2009
Сообщений: 300
03.03.2010, 01:49  [ТС]
mirso вы мой кумир
спасибо

Добавлено через 1 час 31 минуту
C++
1
2
3
4
5
String s;
for(j=1;StringGrid1->Cells[0][i]!="";j++)
for(i=0;i<StringGrid1->ColCount;++i) s+=StringGrid1->Cells[i][j]+" ";
sl->Append( s );
sl->SaveToFile( "table1.txt" );
нужно сделать чтоб сохраняло все данные в таблице но не выходит
и еще чтоб новый ряд таблицы в файле тоже начинался заново
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
03.03.2010, 14:27
сохраняло все данные в таблице
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
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    StringGrid1->Options = StringGrid1->Options << goEditing;
    StringGrid1->ColCount = 8;
    StringGrid1->FixedCols = 0;
 
    StringGrid1->Cells[0][0]="№"; StringGrid1->ColWidths[0] = 24;
    StringGrid1->Cells[1][0]="Фамилия";
    StringGrid1->Cells[2][0]="Имя";
    StringGrid1->Cells[3][0]="Отчество";
    StringGrid1->Cells[4][0]="Группа";  StringGrid1->ColWidths[4] = 100;
    StringGrid1->Cells[5][0]="Оценка";
    StringGrid1->Cells[6][0]="Вариант";
    StringGrid1->Cells[7][0]="Дата";
    //*********************************************
 
    TStringList *sl = new TStringList;
    if ( !FileExists("table.txt") ){ delete sl;  return; }
    //-----------------------------------------------------
    // "1 Иванов Иван Иванович SiemensАТ12-a 12 с2 02032010"
 
    sl->LoadFromFile("table.txt");
    //-----------------------------------------------------
    for ( int i = 0; i < sl->Count; ++i )
    {
        String s = sl->Strings[i] + " ";
 
        for ( int j = 0; j < 8; ++j )
        {
            StringGrid1->Cells[j][i + 1] = s.SubString(1, s.Pos(" ") - 1 );
            s.Delete( 1, s.Pos(' ') );
        }
    }
    //-----------------------------------------------------------------
    delete sl;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TStringList *sl = new TStringList;
 
    String s;
 
    for ( int i = 1; i < StringGrid1->RowCount; ++i, s = s.TrimRight() + "\r\n" )
    for ( int j = 0; j < StringGrid1->ColCount; ++j )
        s += StringGrid1->Cells[j][i] + " ";
 
    ShowMessage(s);
 
    sl->Append( s );
    sl->SaveToFile ( "table.txt" );
 
    delete sl;
}
//---------------------------------------------------------------------------
1
11 / 11 / 7
Регистрация: 23.12.2009
Сообщений: 300
03.03.2010, 20:10  [ТС]
Цитата Сообщение от mirso Посмотреть сообщение
s = s.TrimRight() + "\r\n" )
что значит TrimRight() ато я в справке смотрел и не понял
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
03.03.2010, 20:56
C++
1
AnsiString __fastcall TrimRight() const;
DSTRING.H
Цитата Сообщение от Hovercat Посмотреть сообщение
TrimRight()
удаление пробелов в конце строки
C++
1
2
3
4
5
    String s = "TrimRight   \r\n \t ";
    
    ShowMessage ( AnsiQuotedStr ( s , '"' ) );
    s = s.TrimRight();
    ShowMessage ( AnsiQuotedStr ( s , '"' ) );
1
11 / 11 / 7
Регистрация: 23.12.2009
Сообщений: 300
03.03.2010, 21:08  [ТС]
[QUOTE=mirso;579586]
удаление пробелов в конце строки

полезный сайт, хоть и на англ, спасибо. будем изучать)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.03.2010, 21:08
Помогаю со студенческими работами здесь

Робота с файлами
Как в типизорованый файл вставить заголовок с различной информацией?

Робота з файлами
Задан файл целых чисел F. Используя вспомогательный файл Н, переписать компоненты файла F в файл G так, чтобы сначала были записаны все...

Робота с файлами
В исходном файле имеется набор записей вида: Фамилия Полный адрес Домашний телефон 1)Сделать программу которая формирует исходный...

Робота с файлами
Пусть задан текстовый файл f1. Создать на его основе текстовый файл f2 в который записать все строки из файла f1, удалив первую букву из...

Робота с файлами и каталогами
Подскажите пожалуста как в c++ роботать с файлами,каталогами и подкаталогами?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru