Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2008, 15:57   #1
Cyberbest
Пользователь
 
Регистрация: 19.04.2008
Сообщений: 13
Радость Помогите с комментариями

Ребята - программисты, помогите написать комментарии к коду программы, попросил друг! очень надо!Зарание спасибо! вот код
Код:
CОХРАНЕНИЕ И ЗАГРУЗКА ФАЙЛА


void __fastcall TForm1::Button2Click(TObject *Sender)
{
if (SaveDialog1->Execute())
{
        int f;
        if (FileExists(SaveDialog1->FileName))
        {
                DeleteFile(SaveDialog1->FileName);
                f = FileCreate(SaveDialog1->FileName, fmOpenWrite);
        }
        else
                f = FileCreate(SaveDialog1->FileName);
        if (f != -1)
        {
                for (int i = 0; i < StringGrid1->RowCount; i++)
                {
                        AnsiString st = StringGrid1->Rows[i]->DelimitedText + "\r\n";
                        FileWrite(f,st.c_str(),st.Length());
                }
                FileClose(f);
        }
        else ShowMessage("Ошибка доступа");
}
}
//---------------------------------------------------------------------------

int GetLine(int f, AnsiString *st)
{
        unsigned char buf [256];
        unsigned char *p = buf;
        int n;
        int len=0;
        n = FileRead(f, p, 1);
        while(n != 0)
        {
                if (*p == '\r')
                {
                        n=FileRead(f,p,1);
                        break;
                }
                len++;
                p++;
                n=FileRead(f, p, 1);
        }
        *p = '\0';
        if (len != 0 )
                st->printf("%s", buf);
        return len;
        }

void __fastcall TForm1::Button3Click(TObject *Sender)
{
for (int i=0; i<StringGrid1->RowCount; i++)
        StringGrid1->Rows[i]->Clear();
StringGrid1->RowCount=0;
StringGrid1->ColCount=0;
if (OpenDialog1->Execute())
{
    int f;
    AnsiString st;
    bool fl = true;

    f = FileOpen(OpenDialog1->FileName, fmOpenRead);
    if (f == -1)
        exit;

    while (GetLine(f,&st) != 0)
    {
        if (fl)
        {
                for (int i=1; i<st.Length(); i++)
                        if (st[i]==',') StringGrid1->ColCount++;
                StringGrid1->Rows[StringGrid1->Row]->DelimitedText = st;
                fl = false;
                n = StringGrid1->ColCount;
                k = new int*[n];
                for (int i = 0; i < n; i++)
                        k[i] = new int[n];
        }
        else
        {
                StringGrid1->RowCount++;
                StringGrid1->Row = StringGrid1->RowCount - 1;
                StringGrid1->Rows[StringGrid1->Row]->DelimitedText = st;
        }
    }
    for (int i = 0; i < StringGrid1->ColCount; i++)
        for (int j = 0; j < StringGrid1->RowCount; j++)
                k[i][j] = StringGrid1->Cells[i][j].ToInt();
    FileClose(f);
}
}
Cyberbest вне форума Ответить с цитированием
Старый 26.04.2008, 16:46   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

CОХРАНЕНИЕ И ЗАГРУЗКА ФАЙЛА


Код:
void __fastcall TForm1::Button2Click(TObject *Sender)   
{  
if (SaveDialog1->Execute())  //если файл открыт - кнопка ок в окне выбора диалогового окна
{  
        int f;  
        if (FileExists(SaveDialog1->FileName))  // если файл существует
        {  
                DeleteFile(SaveDialog1->FileName);  //удаляем его
                f = FileCreate(SaveDialog1->FileName, fmOpenWrite);  //и создаём новый с тем же именем
        }   
        else   
                f = FileCreate(SaveDialog1->FileName);   //иначе сразу его создаём
        if (f != -1)   //если нам удалось создать новый файл
        {  
                for (int i = 0; i < StringGrid1->RowCount; i++)  //перебираем все строки из StringGrid1
                {  
                        AnsiString st = StringGrid1->Rows[i]->DelimitedText + "\r\n";  //форматируем строку для записи в файл
                        FileWrite(f,st.c_str(),st.Length());  //и записываем эту строку в наш файл
                }   
                FileClose(f);   //закрываем и сохраняем файл на диске
        }   
        else ShowMessage("Ошибка доступа");   //если создать не удалось
}   
}   
//---------------------------------------------------------------------------   
  
int GetLine(int f, AnsiString *st)   
{  
        unsigned char buf [256];  
        unsigned char *p = buf;  
        int n;  
        int len=0;  
        n = FileRead(f, p, 1);  //открываем файл
        while(n != 0)  //пока нет конца файла
        {  
                if (*p == '\r')  
                {  
                        n=FileRead(f,p,1);  //если больше в файле ничего нет
                        break;  
                }   
                len++;   //это количество участков длиной 256 символов в файле
                p++;   //передвигаемся дальше по файлу
                n=FileRead(f, p, 1);   //читаем из файла
        }   
        *p = '\0';   //закрываем буфер
        if (len != 0 )   //если файл имеет не нулевую длину
                st->printf("%s", buf);  //выводим его на печать  
        return len;   
        }   
  
void __fastcall TForm1::Button3Click(TObject *Sender)   
{  
for (int i=0; i<StringGrid1->RowCount; i++)  
        StringGrid1->Rows[i]->Clear();  //очищаем ячейки в StringGrid1
StringGrid1->RowCount=0;  //количество строк = 0
StringGrid1->ColCount=0;  //количество столбцов = 0
if (OpenDialog1->Execute())  
{  
    int f;  
    AnsiString st;  
    bool fl = true;  
 
    f = FileOpen(OpenDialog1->FileName, fmOpenRead);  
    if (f == -1)  //если не удалось открыть файл в выбранный диалоговом окне выбора файла
        exit;  
 
    while (GetLine(f,&st) != 0)  //пока не дошли до пустоты (конца)
    {  
        if (fl)  //только для первого чтения
        {  
                for (int i=1; i<st.Length(); i++)  
                        if (st[i]==',') StringGrid1->ColCount++; //увеличиваем число столбцов если обнаружена запятая в прочитанной строке
                StringGrid1->Rows[StringGrid1->Row]->DelimitedText = st;  //записываем прочитанное в строку StringGrid1
                fl = false;  
                n = StringGrid1->ColCount;  
                k = new int*[n];  //далее изменяем размер массива
                for (int i = 0; i < n; i++)  
                        k[i] = new int[n];  
        }   
        else   //при втором и дальнейшем чтениях
        {  
                StringGrid1->RowCount++;  //прибавляем строку в StringGrid1
                StringGrid1->Row = StringGrid1->RowCount - 1;  //устанавливаем туда курсор
                StringGrid1->Rows[StringGrid1->Row]->DelimitedText = st;  //и пишем туда то, что прочитали из файла
        }   
    }   
    for (int i = 0; i < StringGrid1->ColCount; i++)   
        for (int j = 0; j < StringGrid1->RowCount; j++)   
                k[i][j] = StringGrid1->Cells[i][j].ToInt();   //забиваем все ячейки в массив
    FileClose(f);   //и закрываем файл
}   
}
eoln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с комментариями Astor Фриланс 3 23.04.2008 16:09