Как сделать калькулятор в Delphi?

Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.

Как Delphi реализует многоплатформенную разработку?

Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...

BlockRead и текстовый файл

Советы » Файлы » BlockRead и текстовый файл

Следующий код демонстрирует использование нетипизированного входного файла для блочного чтения (blockread) текстового файла, сканирование входного буфера в поисках любого символа и их замены на символы перевода строки и возврата каретки. Поскольку код использует входные и выходные буфера размером 16к, то получаемая скорость весьма приемлема.

Примечание: В процессе обработки, если длина строки выходного файла превышает 255 символов и вы хотите прочесть ее с помощью ReadLn, то просто используйте в запросе ReadLn несколько строк, например так:

ReadLn(infile,string1,string2);

Так можно прочесть вплоть до 510 символьных строк с 1-й по 255 символ в string1 и остальное в string2;

program

fixfile; { Компилируем из DOS-приглашения: DCC FIXFILE.PAS } uses

{ запускаем из File Manager } sysutils, dialogs, forms; type

bufptr = obufr; iobufr = array

[0..16384] of

char; var

infile: file

; oufile: textfile; inbufr, oubufr: bufptr; idx: integer; bytesread: integer; bytes2read: integer; totalbytesread: longint; actualfilesize: longint; OpenDialog1: TOpenDialog; infilename, oufilename: string

; begin

infilename := ''; OpenDialog1 := TOpenDialog.Create(Application); OpenDialog1.Options := []; OpenDialog1.Filter := 'Все файлы|*.*'; OpenDialog1.FilterIndex := 1; OpenDialog1.Title := 'Укажите исходный файл для преобразования'; if

OpenDialog1.execute then

infilename := OpenDialog1.filename; if

infilename = '' then

begin

OpenDialog1.free; halt; end

; OpenDialog1.Title := 'Укажите имя создаваемого целевого файла'; if

OpenDialog1.execute then

oufilename := OpenDialog1.filename; OpenDialog1.free; if

oufilename = '' then

halt; if

infilename = oufilename then

halt; new(inbufr); new(oubufr); assignfile(infile, infilename); reset(infile, 1); actualfilesize := filesize(infile); assignfile(oufile, oufilename); system.settextbuf(oufile, oubufr^); rewrite(oufile); totalbytesread := 0; bytesread := 0; bytes2read := 0; while

(totalbytesread < actualfilesize) and

(bytes2read = bytesread) and

(IOresult = 0) do

begin

if

(actualfilesize - totalbytesread) > sizeof(inbufr^) then

bytes2read := sizeof(inbufr^) else

bytes2read := actualfilesize - totalbytesread; blockread(infile, inbufr^, bytes2read, bytesread); totalbytesread := totalbytesread + bytesread; for

idx := 0 to

bytesread do

if

inbufr^[idx] = '''' then

{ <= преобразуемый символ } writeln(oufile) else

write(oufile, inbufr^[idx]); end

; closefile(infile); closefile(oufile); dispose(inbufr); dispose(oubufr); end

.

Другое по теме:

Категории

Статьи

Советы

Copyright © 2024 - All Rights Reserved - www.delphirus.com