Запись файлов Excel в формате .xlsx - Рабочий пример как записывать файлы Excel в формате .xlsx
====================================================
fopen - открывает файл. Принимает два параметра. Первый string (путь к файлу), второй string или char:
w - открыть файл для записи. Если такого файла нет он создается. Если есть он перезапишется.
a - открыть файл для записи. Если такого файла нет он создается. Если есть он будет дописываться.
r - открыть файл для чтения.
Синтаксис:
fopen ("c:\5.txt", "w");
Возвращает не 0 при удачном открытие..
====================================================
fclose - закрывает открытый файл.
Синтаксис:
fclose ();
====================================================
fwrite - записывает в открытый файл. Принимает в виде параметра string, char, double, int или ENDL - указание перевести строку.
Синтаксис:
fwrite ("Привет");
fwrite (5.25);
fwrite (ENDL);//перевести строку
fwrite ("новая строка");
====================================================
fread - читает с открытого файла. Принимает в виде параметра string, char, double, int.
Для string, double и int границами читаемого блока с файла являются начало, конец файла, пробел и перевод строки.
char читает все символы по одному считая пробелы.
Синтаксис:
int a;
fread (a);
Возвращает 1 если не конец файла, 0 если конец файла, -1 если в переменную double или int записывается не число.
====================================================
freadline - читает строку с открытого файла. Принимает в виде параметра string.
Синтаксис:
string a;
freadline (a);
Возвращает 1 если не конец файла, 0 если конец файла, -1 если в параметр не string.
====================================================
freadlineall - считывание за один вызов указанное количество строк с текстового файла или пока не будет достигнут конец файла.
Синтаксис:
CODE:
freadlineall(#stroka[0], 2000000);
Параметр первый = Указатель на массив string, в который будут считываться строки
Второй - количество строк которое надо считать.
Указывать можно больше чем есть в наличие. В таком случае будет считаен весь файл и функция завершит работу.
Если в файле больше строк чем выделен массив, это приведет к ошибке в программе.
Возвращает реально прочитанное количество строк.
Пример
CODE:
string slovar[500];
int k;
if (fopen ("C:\russian.txt", "r")!=0)
{
k=freadlineall(#slovar[0], 100);
fclose();
}
messagebox (k);
for (int n=0; n<k; n++)
{
messagebox (slovar[n]);
}
int k;
if (fopen ("C:\russian.txt", "r")!=0)
{
k=freadlineall(#slovar[0], 100);
fclose();
}
messagebox (k);
for (int n=0; n<k; n++)
{
messagebox (slovar[n]);
}
====================================================
Пример записи и чтения с файла
CODE:
//Инициализируем смешанные типы переменных
string a[8];
char b=' ';
double e=2.02;
a[0]="Демонстрация";
a[1]="записи";
a[2]="и";
a[3]="чтения";
a[4]="в";
a[5]="файл.";
a[6]="Кибор";
a[7]="версия";
//========================================================
//открываем файл для записи "w". Если файл существует он будет перезаписан.
//Для добавления в конец надо открывать с "a"
if (fopen ("c:\5.txt", "w")!=0)
{//если открылся
fwrite(a[0]);fwrite(b);//записываем в файл
fwrite(a[1]);fwrite(b);
fwrite(a[2]);fwrite(b);
fwrite(a[3]);fwrite(b);
fwrite(a[4]);fwrite(b);
fwrite(a[5]);
fwrite(ENDL);//записываем в файл перевод строки
fwrite(a[6]);fwrite(b);
fwrite(a[7]);fwrite(b);
fwrite(e);
fclose();//закрываем файл
}
//========================================================
string preiemnik_a[8];
double preiemnik_e;
//Чтение смешанными типами
if (fopen ("c:\5.txt", "r")!=0)//открываем файл для чтения "r"
{//если открылся
fread(preiemnik_a[0]);//чтение одного слова
fread(preiemnik_a[1]);
fread(preiemnik_a[2]);
fread(preiemnik_a[3]);
fread(preiemnik_a[4]);
fread(preiemnik_a[5]);
fread(preiemnik_a[6]);
fread(preiemnik_a[7]);
fread(preiemnik_e);//чтение числа double
//Вывод формотированной строки
messagebox(preiemnik_a[0]+" "+preiemnik_a[1]+" "+
preiemnik_a[2]+" "+preiemnik_a[3]+" "+
preiemnik_a[4]+" "+preiemnik_a[5]+" "+preiemnik_a[6]+" "+preiemnik_a[7]+" "+format(preiemnik_e));
fclose();//закрываем файл
}
//========================================================
string preiemnik;
//Чтение по целой строке
if (fopen ("c:\5.txt", "r")!=0)//открываем файл для чтения "r"
{//если открылся
l:if (freadline(preiemnik)!=0)//Читаем по целой строке пока не конец файла
{
messagebox(preiemnik);
goto l;
}
fclose();//закрываем файл
}
//========================================================
//Чтение по слову (пробелы пропускаются)
if (fopen ("c:\5.txt", "r")!=0)//открываем файл для чтения "r"
{//если открылся
l1:if (fread(preiemnik)!=0)
{
messagebox(preiemnik);
goto l1;
}
fclose();//закрываем файл
}
//========================================================
char pr_с;
//Чтение по символу
if (fopen ("c:\5.txt", "r")!=0)//открываем файл для чтения "r"
{//если открылся
l2:if (fread(pr_с)!=0)
{
messagebox(pr_с);
goto l2;
}
fclose();//закрываем файл
}
string a[8];
char b=' ';
double e=2.02;
a[0]="Демонстрация";
a[1]="записи";
a[2]="и";
a[3]="чтения";
a[4]="в";
a[5]="файл.";
a[6]="Кибор";
a[7]="версия";
//========================================================
//открываем файл для записи "w". Если файл существует он будет перезаписан.
//Для добавления в конец надо открывать с "a"
if (fopen ("c:\5.txt", "w")!=0)
{//если открылся
fwrite(a[0]);fwrite(b);//записываем в файл
fwrite(a[1]);fwrite(b);
fwrite(a[2]);fwrite(b);
fwrite(a[3]);fwrite(b);
fwrite(a[4]);fwrite(b);
fwrite(a[5]);
fwrite(ENDL);//записываем в файл перевод строки
fwrite(a[6]);fwrite(b);
fwrite(a[7]);fwrite(b);
fwrite(e);
fclose();//закрываем файл
}
//========================================================
string preiemnik_a[8];
double preiemnik_e;
//Чтение смешанными типами
if (fopen ("c:\5.txt", "r")!=0)//открываем файл для чтения "r"
{//если открылся
fread(preiemnik_a[0]);//чтение одного слова
fread(preiemnik_a[1]);
fread(preiemnik_a[2]);
fread(preiemnik_a[3]);
fread(preiemnik_a[4]);
fread(preiemnik_a[5]);
fread(preiemnik_a[6]);
fread(preiemnik_a[7]);
fread(preiemnik_e);//чтение числа double
//Вывод формотированной строки
messagebox(preiemnik_a[0]+" "+preiemnik_a[1]+" "+
preiemnik_a[2]+" "+preiemnik_a[3]+" "+
preiemnik_a[4]+" "+preiemnik_a[5]+" "+preiemnik_a[6]+" "+preiemnik_a[7]+" "+format(preiemnik_e));
fclose();//закрываем файл
}
//========================================================
string preiemnik;
//Чтение по целой строке
if (fopen ("c:\5.txt", "r")!=0)//открываем файл для чтения "r"
{//если открылся
l:if (freadline(preiemnik)!=0)//Читаем по целой строке пока не конец файла
{
messagebox(preiemnik);
goto l;
}
fclose();//закрываем файл
}
//========================================================
//Чтение по слову (пробелы пропускаются)
if (fopen ("c:\5.txt", "r")!=0)//открываем файл для чтения "r"
{//если открылся
l1:if (fread(preiemnik)!=0)
{
messagebox(preiemnik);
goto l1;
}
fclose();//закрываем файл
}
//========================================================
char pr_с;
//Чтение по символу
if (fopen ("c:\5.txt", "r")!=0)//открываем файл для чтения "r"
{//если открылся
l2:if (fread(pr_с)!=0)
{
messagebox(pr_с);
goto l2;
}
fclose();//закрываем файл
}