Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi и Lazarus


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Boriss
Статус: Академик
Рейтинг: 2235
∙ повысить рейтинг »
star9491
Статус: Практикант
Рейтинг: 1806
∙ повысить рейтинг »
Евгений/Genia007/
Статус: Бакалавр
Рейтинг: 918
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Delphi и Lazarus

Номер выпуска:1527
Дата выхода:08.05.2010, 04:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:389 / 195
Вопросов / ответов:1 / 2

Вопрос № 178176: Уважаемые эксперты. Помогите в написании программы. Delphi 7. Программа: http://rfpro.ru/upload/2261 Данные из StringGrid1 должны сохраняться в файле типа *.dat (StringGrid.dat). ...



Вопрос № 178176:

Уважаемые эксперты. Помогите в написании программы. Delphi 7. Программа: http://rfpro.ru/upload/2261
Данные из StringGrid1 должны сохраняться в файле типа *.dat (StringGrid.dat).

Отправлен: 03.05.2010, 04:24
Вопрос задал: Спиридонов Данил Сергеевич, Посетитель
Всего ответов: 2
Страница вопроса »


Отвечает Akahaos, 1-й класс :
Здравствуйте, Спиридонов Данил Сергеевич.

Приложение:

Ответ отправил: Akahaos, 1-й класс
Ответ отправлен: 03.05.2010, 09:26
Номер ответа: 261172

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261172 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Отвечает Евгений/Genia007/, Бакалавр :
    Здравствуйте, Спиридонов Данил Сергеевич.
    Предлагаю свой вариант решения задачи:
    1. Сохранение в файл
    Код:
    procedure TForm1.N3Click(Sender: TObject);  //  Процедура сохранения сетки в файл
    var
    i, j: word;
    begin
    i:= 1;
    while StringGrid1.Cells[0, i] <> '' do
    begin // Запись данных о сотрудниках в массив
    Setlength(mas, i);
    mas[i - 1].Familiya:= StringGrid1.Cells[0, i];
    mas[i - 1].zarplata:= StrToFloat(StringGrid1.Cells[1, i]);
    inc(i);
    end;
    dec(i, 2);
    n:= i + 1;
    AssignFile(FileData, 'stringdrid.dat'); // Связали файловую переменную с файлом
    Rewrite(FileData); // Открыли файл для перезаписи
    for j:= 0 to i do
    Write(FileData, mas[j]); // Записали данные в файл
    CloseFile(FileData); // Закрыли файл
    end;

    2. Чтение из файла
    Код:
    procedure TForm1.N4Click(Sender: TObject);  //  Процедура чтения сетки из файла
    var
    i: integer;
    begin
    i:= 0;
    If not FileExists('stringdrid.dat') then // Проверяем существует или нет файл
    begin
    StatusBar1.Panels[1].Text:= 'Файла ' + ExtractFilePath(ParamStr(0)) + 'stringdrid.dat' + ' не существует'; // Выводим путь до файла
    exit;
    end;
    AssignFile(FileData, 'stringdrid.dat'); // Связали файловую переменную с файлом
    Reset(FileData); // Встали на начало файла
    while not eof(FileData) do
    begin // Делаем пока не дойдём до конца файла
    inc(i);
    SetLength(mas, i); // Устанавливаем новый размер массива
    Read(FileData, mas[i - 1]); // Читаем данные из файла в массив
    end;
    CloseFile(FileData); // Закрыли файл
    n:= i;
    StringGriD1.Font.Color:= clGreen; // Сделали цвет шрифта сетки зелённым
    for i:= 0 to n - 1 do
    begin // Заполняем сетку данными
    StringGrid1.Cells[0, i + 1]:= mas[i].Familiya;
    StringGrid1.Cells[1, i + 1]:= FloatToStr(mas[i].Zarplata);
    end;
    StatusBar1.Panels[0].Text:= 'n = ' + IntToStr(n); // Выводим информацию количестве записей в сетке
    StatusBar1.Panels[1].Text:= ExtractFilePath(ParamStr(0)) + 'stringdrid.dat'; // Выводим путь до файла
    end;

    3. Немного переделал объявление записи сотрудник
    Код:
    type sotrudnik = record
    Familiya: string[30];
    Zarplata: real;
    end;
    massiv = array of sotrudnik;
    fl = File Of sotrudnik;

    private
    { Private declarations }
    public
    { Public declarations }
    end;
    var
    FileData: fl;
    mas: massiv;
    n: word;
    Form1: TForm1;

    Весь проект.
    -----
    Помогли тебе, помоги и ты.

    Ответ отправил: Евгений/Genia007/, Бакалавр
    Ответ отправлен: 06.05.2010, 09:55
    Номер ответа: 261226

    Оценка ответа: 5
    Комментарий к оценке:
    Спасибо!

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261226 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.14 от 03.03.2010

    В избранное