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

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


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

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

Лучшие эксперты данной рассылки

Орловский Дмитрий
Статус: Профессор
Рейтинг: 2647
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2524
∙ повысить рейтинг »
Евгений/Genia007/
Статус: Профессионал
Рейтинг: 1116
∙ повысить рейтинг »

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

Номер выпуска:1564
Дата выхода:10.11.2010, 16:30
Администратор рассылки:Калашников О.А. (Руководитель)
Подписчиков / экспертов:279 / 194
Вопросов / ответов:1 / 1

Вопрос № 180577: Добрый день уважаемые эксперты! у меня есть код программы и сам исходник, мне надо дописать процедуру что бы полностью закончить программ, но что то я догнать не могу, прошу у вас помощи! сама программа выполняет: Действиями формы являются опер...



Вопрос № 180577:

Добрый день уважаемые эксперты!
у меня есть код программы и сам исходник, мне надо дописать процедуру что бы полностью закончить программ, но что то я догнать не могу, прошу у вас помощи!
сама программа выполняет: Действиями формы являются операции ввода и вывода в заданный файл, каждое из которых представляет собой последовательность операций открытия, чтения-записи и закрытия дескриптора файла.
надо написать процедуру что бы: Требуется вывести в выходной файл квадраты чисел, содержащихся во входном файле.
исходник в приложении!
заранее благодарю за помощ!

исходник!

Отправлен: 05.11.2010, 16:19
Вопрос задал: Андреев Дмитрий Фёдорович (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает cradlea (Практикант) :
Здравствуйте, Андреев Дмитрий Фёдорович!

изменяем обработчик нажатия на клавишу Read

procedure TForm1.btnReadClick(Sender: TObject);

var hFile : THandle;

a : array[0..1024] of char;
aa : array[0..1024] of char;

i, n : Cardinal;
l, j, m : integer;

begin


// открывае поток на чтение файла
hFile := CreateFile(PChar(txtInf.Text),

GENERIC_READ,

FILE_SHARE_READ or FILE_SHARE_WRITE,

nil,

OPEN_EXISTING,

0,

0);



if hFile = INVALID_HANDLE_VALUE then

begin
// реакция на ошибку открытия файла
Status.SimpleText :='Error during opening file: ' + inttostr(GetLastError());

exit;

end;



txtInput.Text := '';



n := 0;
m:=0;
// читаем файл (не совсем хорошо реализовано, но работает)
while ReadFile(hFile, a, sizeof(a), i, nil) do

begin

if i > 0 then // если вычитали не нулевую длину файла
begin
for j := 0 to i - 2 do // заполняем выходной массив
begin
l:= Byte(a[j ])-48;// получаем числовое значение текстовой переменной
if l>0 then
begin
if l<4 then
begin// если квадрат числа однозначное число
aa[m] := Char(l*l+48);// возводим в квадрат число и преобразовываем к тексту в ASCII
m:=m+1;
aa[ m]:=' ' ;// добавляем пробел после числа
m:=m+1;
i:=i+1;
end
else
begin
l:=l*l;// ЕСЛИ ДВУЗНАЧНОЕ
aa[m] := Char((l div 10)+48);// получаем старшую часть числа и преобразовываем в текст
m:=m+1;
aa[m] := Char((l mod 10)+48);// получаем младшую часть числа и преобразовываем в текст
m:=m+1;
i:=i+1;
aa[m]:=' ' ;// добовляем пробел после числа
m:=m+1;
i:=i+1;
end
end ;
end ;
txtInput.T ext := txtInput.Text + Copy(aa, 0, i-2) // выводим текст в нужную область
end

else

break;

n := n + i;

end;


CloseHandle(hFile);// закрываем поток работы с файлом

Status.SimpleText := Format('ReadFile: %d byte(s)', [n]);


end;

Ответ отправил: cradlea (Практикант)
Ответ отправлен: 09.11.2010, 17:50
Номер ответа: 263913

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

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


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

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

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

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

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

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

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


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

    В избранное