51349

Расширенная работа с файлами

Лабораторная работа

Информатика, кибернетика и программирование

Цель работы: Написать программу, осуществляющую запись массива в файл и чтение из файла в массив с помощью потоков. Рабочие данные выбрать самостоятельно.

Русский

2014-02-09

127 KB

2 чел.

Лабораторная работа 8

Расширенная работа с файлами

 Выполнил: Шуклецов М.А.

              ФРТ, гр. 2106

Цель работы: Написать программу,  осуществляющую запись массива в файл и чтение из файла в массив с помощью потоков. Рабочие данные выбрать самостоятельно.

Общий вид программы следующий: 

Здесь мы видим следующие элементы управления:

«Заполнение массива» - заполнение массива 10х10 случайными числами в интервале до 99

«Сохранение в фаил» - считывание в поток и сохранение в фаил *.txt

«Чтение из файла» - считывание из файла в поток и заполнение массива 2 из потока

Код программы:

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

       : TForm(Owner)

{

}

TStringList *fil = new TStringList();  //инициализация потока

int a[10][10];    //массив 1

int b[10][10];    //массив 2(можно и без него)

AnsiString S;    //строковая переменная

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)   //заполнение случайными числами

{   for(int x=0; x<10; x++)

 { for(int y=0; y<10; y++)

       {

        StringGrid1->Cells[x][y] = random(99);

        a[x][y]=StrToInt( StringGrid1->Cells[x][y]);

       }

 }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{  fil = new TStringList();  //Открытие потока

for(int y=0; y<10; y++)

       {for(int x=0; x<10; x++)

               {S = IntToStr(a[x][y]);  //запоминание ячейки

                fil->Append(S);                } //добавление в конец нужной ячейки

       }

       fil->SaveToFile("Test.txt");  //Сохранение потока в файл

      fil->Free();    //закрытие потока

      S = "";    //Обнуление переменной

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{ fil = new TStringList();   //Открытие потока

fil->LoadFromFile("Test.txt");  //Загрузка потока из файла

for(int y=0; y<10; y++)

       {for(int x=0; x<10; x++)

               {

              b[x][y] =StrToInt( fil->Strings[y*10+x]);  //Заполнение массива 2

              StringGrid2->Cells[x][y] = b[x][y];  //Заполнение StringGrid2

               }

       }

}

//---------------------------------------------------------------------------

Вывод:  Мы научились использовать потоки


 

А также другие работы, которые могут Вас заинтересовать

68893. Дочерние окна. Общие сведения 68 KB
  Все сообщения приложению фактически обрабатывались оконной процедурой этого самого единственного окна. Предположим что на окно положили какой-либо объект обладающий совокупностью функций и особенностей отображения внутри вашего окна. Они получили название Дочерние окна управления.
68894. Ресурсы. Способы хранения данных программы 78 KB
  Общие сведения о файле ресурсов В большинство программ для Windows включаются пользовательские значки которые Windows выводит на экран в левом верхнем углу строки заголовка окна приложения. Кроме этого Windows выводит на экран значок программы в списках программ меню...
68895. Ресурсы (меню) 82 KB
  Вы просто определяете структуру меню в вашем описании ресурсов и присваиваете каждому пункту меню уникальный идентификатор. Вы определяете имя меню в структуре класса окна. Когда пользователь выбирает пункт меню.
68896. Ресурсы (быстрые клавиши) 48 KB
  Чаще всего быстрые клавиши используются в программах для дублирования действий обычных опций меню. Однако быстрые клавиши могут выполнять и такие функции которых нет в меню. Например в некоторых программах для Windows имеется меню Edit которое включает в себя опцию Delete...
68897. Многозадачность и многопоточность 61 KB
  Многозадачность (multitasking) – это способность операционной системы выполнять несколько программ одновременно. В основе реализации этого принципа на персональных ЭВМ лежит использование операционной системой аппаратного таймера для выделения отрезков времени (time sliced) для каждого из одновременно выполняемых процессов.
68898. Многооконный интерфейс 121.5 KB
  Эти дочерние окна выглядят совершенно так же как обычные окна приложений. Меню главного окна приложения относится и к окнам документов. В каждый конкретный момент времени только одно окно документа активно об этом говорит выделенная подсветкой строка заголовка и находится над всеми остальными...
68899. Динамически подключаемые библиотеки 47 KB
  До сих пор мы использовали множество функций API для создания окон и оконных процедур, рисования, работы с клавиатурой и мышью, ввода-вывода. Все эти функции работали исправно и вы не задумывались над вопросом: где расположены эти функции и каким образом они подключаются к вашей программе.
68900. Представление графической информации 56.5 KB
  Битовый образ это цифровое представление изображения. Каждому пикселю точке изображения соответствует один или более бит битового образа которые определяют цвет пикселя. К достоинствам можно отнести хорошую передачу изображения именно они чаще всего используются для хранения фотографий...